File manager - Edit - /home/wwwroot/camplus.hk/mts.camplus.hk/public_html_hk/files/quotation_files/470.mht
Back
From: =?big5?B?pdEgSW50ZXJuZXQgRXhwbG9yZXIgMTEgwHimcw==?= Subject: =?big5?B?rvi2T6rMqWWt+7d8?= Date: Wed, 3 Jan 2018 17:00:34 +0800 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0000_01D384B4.5ED25A20" X-MimeOLE: Produced By Microsoft MimeOLE This is a multi-part message in MIME format. ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/html; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/graph.php?action=volume&volume=1&amount=&grade=diesel&filtercompany=&cri%5B%5D=cash&show=10&filtercreditcard=&userebatepoint=&usebonus=0&usebonuspoint=&week=0 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML class=3D"js bootstrap-anchors-processed" lang=3D"zh-hant" = dir=3D"ltr" xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema#"=20 xmlns:skos=3D"http://www.w3.org/2004/02/skos/core#" = xmlns:sioct=3D"http://rdfs.org/sioc/types#"=20 xmlns:sioc=3D"http://rdfs.org/sioc/ns#" = xmlns:rdfs=3D"http://www.w3.org/2000/01/rdf-schema#"=20 xmlns:og=3D"http://ogp.me/ns#" xmlns:foaf=3D"http://xmlns.com/foaf/0.1/" = xmlns:dc=3D"http://purl.org/dc/terms/"=20 xmlns:content=3D"http://purl.org/rss/1.0/modules/content/"><HEAD = profile=3D"http://www.w3.org/1999/xhtml/vocab"><META=20 content=3D"IE=3D5.0000" http-equiv=3D"X-UA-Compatible"> <META http-equiv=3D"Pragma" content=3D"no-cache">=20 <META http-equiv=3D"X-UA-Compatible" content=3D"IE=3DEmulateIE10">=20 <META name=3D"viewport" content=3D"width=3Ddevice-width, = initial-scale=3D1.0">=20 <META http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dbig5"> = <SCRIPT language=3D"JavaScript" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/layout.js" = type=3D"text/javascript"></SCRIPT> =20 <SCRIPT language=3D"Javascript" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/flashyslideshow.js= " type=3D"text/javascript"></SCRIPT> =20 <SCRIPT>=0A= = (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=3Dr;i[r]=3Di[r]||func= tion(){=0A= (i[r].q=3Di[r].q||[]).push(arguments)},i[r].l=3D1*new = Date();a=3Ds.createElement(o),=0A= = m=3Ds.getElementsByTagName(o)[0];a.async=3D1;a.src=3Dg;m.parentNode.inser= tBefore(a,m)=0A= = })(window,document,'script','//www.google-analytics.com/analytics.js','ga= ');=0A= =0A= ga('create', 'UA-66359901-1', 'auto');=0A= ga('send', 'pageview');=0A= =0A= </SCRIPT> =20 <STYLE type=3D"text/css">=0A= =0A= body { font-family: "Arial","Microsoft = JhengHei","STHeiti","SimHei","sans-serif"; }=0A= =0A= .oiltooltips=0A= {=0A= background-color: #eeeeee ! important;=0A= font-size: 9pt ! important;=0A= border-radius: 0px ! important;=0A= -moz-border-radius: 0px ! important;=0A= -webkit-border-radius: 0px ! important;=0A= }=0A= =0A= #myslideshow{=0A= width: 200px; /*a width should be defined for transition to work*/=0A= }=0A= =0A= .flashclass{=0A= width: 70px; /*a width should be defined for transition to work*/=0A= }=0A= =0A= .flashclass img {=0A= border-width: 0;=0A= }=0A= =0A= .flashclassdetail img {=0A= margin-bottom: 5px;=0A= border-width: 0px;=0A= }=0A= =0A= #myslideshow0{=0A= width: 100px; /*a width should be defined for transition to work*/=0A= border-width: 0;=0A= }=0A= =0A= #myslideshow1{=0A= width: 100px; /*a width should be defined for transition to work*/=0A= border-width: 0;=0A= }=0A= =0A= #myslideshow2{=0A= width: 100px; /*a width should be defined for transition to work*/=0A= border-width: 0;=0A= }=0A= =0A= #myslideshow0 img{=0A= width: 100px; /*a width should be defined for transition to work*/=0A= border-width: 0;=0A= }=0A= =0A= #myslideshow1 img{=0A= width: 100px; /*a width should be defined for transition to work*/=0A= border-width: 0;=0A= }=0A= =0A= #myslideshow2 img{=0A= width: 100px; /*a width should be defined for transition to work*/=0A= border-width: 0;=0A= }=0A= =0A= #myslideshow img{=0A= border-width: 0;=0A= }=0A= =0A= </STYLE> =20 <STYLE type=3D"text/css">.style03 { font-family: "Arial","Microsoft = JhengHei","STHeiti","SimHei","sans-serif";=0A= font-size: 10px; font-weight:=0A= normal; color: #999999} .style02 { font-family:=0A= "s?"; font-size: 14px; font-weight: normal;=0A= color: #000000} .style01 { font-family:=0A= "s?"; font-size: 14px; font-weight: normal;=0A= color: #00CC00} .style04 { font-family: "Arial","Microsoft = JhengHei","STHeiti","SimHei","sans-serif";=0A= font-size: 16px; font-weight:=0A= bold; color: #009900} .style05 { font-family:=0A= "s?"; font-size: 13px; font-weight: bold;=0A= color: #006600} .title01 { font-family: "Arial","Microsoft = JhengHei","STHeiti","SimHei","sans-serif";=0A= font-size: 16px; font-weight:=0A= bold; color: #3FAD2A}=0A= =0A= =0A= a { =0A= font-weight:normal;=0A= text-decoration:none;=0A= color: #000000=0A= }=0A= .style10 {=0A= font-size: 10px;=0A= color: #0000FF=0A= }=0A= =0A= </STYLE> <LINK = href=3D"https://www.consumer.org.hk/pricewatch/oilwatch/style.css" = rel=3D"stylesheet"=20 type=3D"text/css">=20 <SCRIPT>=0A= =0A= (function ($) {=0A= = MM_preloadImages('images/bottom01_.gif','images/bottom02_.gif','images/bo= ttom03_.gif','images/bottom04_.gif','images/bottom05_.gif','images/bottom= 06_.gif','images/go_.gif','images/but01_.gif','images/but02_.gif','images= /but03_.gif','images/but04_.gif','images/but05_.gif','images/but06_.gif',= 'images/but07_.gif','images/but08_.gif','images/but09_.gif','images/but10= _.gif','images/but_sim_.gif','images/but_trad_text_.gif','images/but_eng_= .gif','images/but_print_.gif');=0A= });=0A= =0A= </SCRIPT> =20 <META http-equiv=3D"X-UA-Compatible" content=3D"IE=3Dedge"> =20 <META name=3D"viewport" content=3D"width=3Ddevice-width, = initial-scale=3D1.0"> <LINK=20 title=3D"=AE=F8=B6O=AA=CC=A9e=AD=FB=B7|" = href=3D"https://www.consumer.org.hk/ws_chi/rss.xml" rel=3D"alternate"=20 type=3D"application/rss+xml"> = <TITLE>=AE=F8=B6O=AA=CC=A9e=AD=FB=B7|</TITLE> =20 <STYLE>=0A= @import = url("https://www.consumer.org.hk/modules/system/system.base.css?nv614b");=0A= </STYLE> =20 <STYLE>=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/date/date_api/date.css= ?nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/date/date_popup/themes= /datepicker.1.7.css?nv614b");=0A= @import = url("https://www.consumer.org.hk/modules/field/theme/field.css?nv614b");=0A= @import url("https://www.consumer.org.hk/modules/poll/poll.css?nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/extlink/extlink.css?nv= 614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/views/css/views.css?nv= 614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/ckeditor/css/ckeditor.= css?nv614b");=0A= </STYLE> =20 <STYLE>=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/colorbox/styles/defaul= t/colorbox_style.css?nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/ctools/css/ctools.css?= nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/libraries/fancybox/source/jque= ry.fancybox.css?nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/lightbox2/css/lightbox= .css?nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/panels/css/panels.css?= nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/pollanon/pollanon.css?= nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/kanhan_text_resize/css= /text-resize.css?nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/modules/kanhan_language_switch= er/css/language_switcher.css?nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/libraries/superfish/css/superf= ish.css?nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/all/libraries/superfish/css/superf= ish-navbar.css?nv614b");=0A= </STYLE> =20 <STYLE>=0A= @import = url("https://www.consumer.org.hk/sites/consumer/themes/bootstrap/css/boot= strap.min.css?nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/consumer/themes/bootstrap/js/slick= /slick.css?nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/consumer/themes/bootstrap/css/font= .css?nv614b");=0A= @import = url("https://www.consumer.org.hk/sites/consumer/themes/bootstrap/css/over= rides.css?nv614b");=0A= </STYLE> =20 <STYLE media=3D"print">=0A= @import = url("https://www.consumer.org.hk/sites/consumer/themes/bootstrap/css/prin= t.css?nv614b");=0A= </STYLE> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_002.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/drupal.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_004.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_012.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_008.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/ajax.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_update.js"></SCRI= PT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/extlink.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/zh-hant_Dtwk8lwXOjJhFMjf= L2UWkd9bDgWgRtC_J6jZADtGnq0.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_007.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/colorbox.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/colorbox_style.js"></SCR= IPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/fancybox.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_010.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_005.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/lightbox.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_003.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/pollanon.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/text-resize.js"></SCRIPT= > =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/language_switcher.js"></= SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/base.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/_progress.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/ajax_view_002.js"></SCRI= PT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/better_exposed_filters.j= s"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/auto-submit.js"></SCRIPT= > =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/views_load_more.js"></SC= RIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_011.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/sfsmallscreen.js"></SCRI= PT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/supposition.js"></SCRIPT= > =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/superfish.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/supersubs.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/superfish_002.js"></SCRI= PT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/bootstrap_002.js"></SCRI= PT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jwplayer.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jwplayer_002.js"></SCRIP= T> <STYLE type=3D"text/css"></STYLE> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_009.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_013.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/slick.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jquery_006.js"></SCRIPT>= =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/common.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/layout.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/listDecorate.js"></SCRIP= T> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/ajax_view.js"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/ajax_002.js"></SCRIPT> =20 <SCRIPT>jQuery.extend(Drupal.settings, = {"basePath":"\/","pathPrefix":"ws_chi\/","ajaxPageState":{"theme":"bootst= rap","theme_token":"ZZsiUxSKG_UPNLgL3b5o18dZenyW7M3mEfoaogPai28","jquery_= version":"1.7","js":{"sites\/consumer\/themes\/bootstrap\/js\/bootstrap.j= s":1,"sites\/all\/modules\/jquery_update\/replace\/jquery\/1.7\/jquery.mi= n.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"misc\/jquery.cookie= .js":1,"sites\/all\/modules\/jquery_update\/replace\/ui\/external\/jquery= .cookie.js":1,"sites\/all\/modules\/jquery_update\/replace\/misc\/jquery.= form.min.js":1,"misc\/ajax.js":1,"sites\/all\/modules\/jquery_update\/js\= /jquery_update.js":1,"sites\/all\/modules\/extlink\/extlink.js":1,"public= :\/\/languages\/zh-hant_Dtwk8lwXOjJhFMjfL2UWkd9bDgWgRtC_J6jZADtGnq0.js":1= ,"sites\/all\/libraries\/colorbox\/jquery.colorbox-min.js":1,"sites\/all\= /modules\/colorbox\/js\/colorbox.js":1,"sites\/all\/modules\/colorbox\/st= yles\/default\/colorbox_style.js":1,"sites\/all\/modules\/fancybox\/fancy= box.js":1,"sites\/all\/libraries\/fancybox\/source\/jquery.fancybox.pack.= js":1,"sites\/all\/libraries\/fancybox\/lib\/jquery.mousewheel-3.0.6.pack= .js":1,"sites\/all\/modules\/lightbox2\/js\/lightbox.js":1,"sites\/all\/m= odules\/pollanon\/js\/jquery.cookie.min.js":1,"sites\/all\/modules\/polla= non\/js\/pollanon.pack.js":1,"sites\/all\/modules\/kanhan_text_resize\/js= \/text-resize.js":1,"sites\/all\/modules\/kanhan_language_switcher\/js\/l= anguage_switcher.js":1,"sites\/all\/modules\/views\/js\/base.js":1,"sites= \/consumer\/themes\/bootstrap\/js\/misc\/_progress.js":1,"sites\/all\/mod= ules\/views\/js\/ajax_view.js":1,"sites\/all\/modules\/better_exposed_fil= ters\/better_exposed_filters.js":1,"sites\/all\/modules\/ctools\/js\/auto= -submit.js":1,"sites\/all\/libraries\/superfish\/jquery.hoverIntent.minif= ied.js":1,"sites\/all\/libraries\/superfish\/sfsmallscreen.js":1,"sites\/= all\/libraries\/superfish\/supposition.js":1,"sites\/all\/libraries\/supe= rfish\/superfish.js":1,"sites\/all\/libraries\/superfish\/supersubs.js":1= ,"sites\/all\/modules\/superfish\/superfish.js":1,"sites\/consumer\/theme= s\/bootstrap\/js\/bootstrap.min.js":1,"sites\/consumer\/themes\/bootstrap= \/js\/jwplayer\/jwplayer.js":1,"sites\/consumer\/themes\/bootstrap\/js\/j= wplayer\/jwplayer.html5.js":1,"sites\/consumer\/themes\/bootstrap\/js\/jq= uery.als-1.7.js":1,"sites\/consumer\/themes\/bootstrap\/js\/jquery.zaccor= dion.js":1,"sites\/consumer\/themes\/bootstrap\/js\/slick\/slick.js":1,"s= ites\/consumer\/themes\/bootstrap\/js\/jquery.rwdImageMaps.min.js":1,"sit= es\/consumer\/themes\/bootstrap\/js\/common.js":1,"sites\/consumer\/theme= s\/bootstrap\/js\/layout.js":1,"sites\/consumer\/themes\/bootstrap\/js\/l= istDecorate.js":1,"sites\/consumer\/themes\/bootstrap\/js\/modules\/views= \/js\/ajax_view.js":1,"sites\/consumer\/themes\/bootstrap\/js\/misc\/ajax= .js":1},"css":{"modules\/system\/system.base.css":1,"sites\/all\/modules\= /date\/date_api\/date.css":1,"sites\/all\/modules\/date\/date_popup\/them= es\/datepicker.1.7.css":1,"modules\/field\/theme\/field.css":1,"modules\/= poll\/poll.css":1,"sites\/all\/modules\/extlink\/extlink.css":1,"sites\/a= ll\/modules\/views\/css\/views.css":1,"sites\/all\/modules\/ckeditor\/css= \/ckeditor.css":1,"sites\/all\/modules\/colorbox\/styles\/default\/colorb= ox_style.css":1,"sites\/all\/modules\/ctools\/css\/ctools.css":1,"sites\/= all\/libraries\/fancybox\/source\/jquery.fancybox.css":1,"sites\/all\/mod= ules\/lightbox2\/css\/lightbox.css":1,"sites\/all\/modules\/panels\/css\/= panels.css":1,"sites\/all\/modules\/pollanon\/pollanon.css":1,"sites\/all= \/modules\/kanhan_text_resize\/css\/text-resize.css":1,"sites\/all\/modul= es\/kanhan_language_switcher\/css\/language_switcher.css":1,"sites\/all\/= libraries\/superfish\/css\/superfish.css":1,"sites\/all\/libraries\/super= fish\/css\/superfish-navbar.css":1,"sites\/consumer\/themes\/bootstrap\/c= ss\/bootstrap.min.css":1,"sites\/consumer\/themes\/bootstrap\/js\/slick\/= slick.css":1,"sites\/consumer\/themes\/bootstrap\/css\/font.css":1,"sites= \/consumer\/themes\/bootstrap\/css\/overrides.css":1,"sites\/consumer\/th= emes\/bootstrap\/css\/print.css":1}},"colorbox":{"opacity":"0.85","curren= t":"{current} of {total}","previous":"\u00ab = Prev","next":"\u4e0b\u4e00\u9801 = \u00bb","close":"\u95dc\u9589","maxWidth":"98%","maxHeight":"98%","fixed"= :true,"mobiledetect":true,"mobiledevicewidth":"480px"},"fancybox":{"optio= ns":{"content":"\u003Cdiv = id=3D\u0022jwplayer_video\u0022\u003E\u003C\/div\u003E"},"callbacks":{"be= foreShow":"fancyBoxBeforeShow","afterShow":"fancyBoxAfterShow"}},"lightbo= x2":{"rtl":"0","file_path":"\/(\\w\\w\/)public:\/","default_image":"\/sit= es\/all\/modules\/lightbox2\/images\/brokenimage.jpg","border_size":10,"f= ont_color":"000","box_color":"fff","top_position":"","overlay_opacity":"0= .8","overlay_color":"000","disable_close_click":1,"resize_sequence":0,"re= size_speed":400,"fade_in_speed":400,"slide_down_speed":600,"use_alt_layou= t":0,"disable_resize":0,"disable_zoom":1,"force_show_nav":0,"show_caption= ":1,"loop_items":0,"node_link_text":"View Image = Details","node_link_target":"_blank","image_count":"Image !current of = !total","video_count":"Video !current of !total","page_count":"Page = !current of !total","lite_press_x_close":"press \u003Ca = href=3D\u0022#\u0022 onclick=3D\u0022hideLightbox(); return = FALSE;\u0022\u003E\u003Ckbd\u003Ex\u003C\/kbd\u003E\u003C\/a\u003E to = close","download_link_text":"","enable_login":false,"enable_contact":fals= e,"keys_close":"c x 27","keys_previous":"p 37","keys_next":"n = 39","keys_zoom":"z","keys_play_pause":"32","display_image_size":"original= ","image_node_sizes":"()","trigger_lightbox_classes":"","trigger_lightbox= _group_classes":"","trigger_slideshow_classes":"","trigger_lightframe_cla= sses":"","trigger_lightframe_group_classes":"","custom_class_handler":0,"= custom_trigger_classes":"","disable_for_gallery_lists":true,"disable_for_= acidfree_gallery_lists":true,"enable_acidfree_videos":true,"slideshow_int= erval":5000,"slideshow_automatic_start":true,"slideshow_automatic_exit":t= rue,"show_play_pause":true,"pause_on_next_click":false,"pause_on_previous= _click":true,"loop_slides":false,"iframe_width":600,"iframe_height":400,"= iframe_border":1,"enable_video":0},"better_exposed_filters":{"views":{"sh= opping_guide_views":{"displays":{"block_3":{"filters":[]},"block_sg_index= ":{"filters":[]}}},"focus_search_views":{"displays":{"block":{"filters":[= ]}}},"whats_new_views":{"displays":{"index_whats_new_header_block_chi":{"= filters":[]},"index_whats_new_tumb_block_chi":{"filters":[]}}},"choice_vi= ews":{"displays":{"block_choice_cover":{"filters":[]},"block_index_latest= _article":{"filters":{"field_serial_target_id_entityreference_filter":{"r= equired":true}}},"block_index_abstract":{"filters":{"field_serial_target_= id_entityreference_filter":{"required":false}}}}},"views_complaint_report= ":{"displays":{"block_complaintd_case":{"filters":[]}}},"policies_studies= ":{"displays":{"block_index_ps":{"filters":[]}}},"banner":{"displays":{"b= lock_bottom_banner":{"filters":[]}}}},"datepicker":false,"slider":false,"= settings":[]},"views":{"ajax_path":"\/ws_chi\/views\/ajax","ajaxViews":{"= views_dom_id:28c9a34915217af6d1545aed37a0290c":{"view_name":"choice_views= ","view_display_id":"block_choice_cover","view_args":"","view_path":"node= ","view_base_path":"choice\/list","view_dom_id":"28c9a34915217af6d1545aed= 37a0290c","pager_element":0},"views_dom_id:c042f718633229c71a365939cf24de= 1b":{"view_name":"choice_views","view_display_id":"block_index_latest_art= icle","view_args":"","view_path":"node","view_base_path":"choice\/list","= view_dom_id":"c042f718633229c71a365939cf24de1b","pager_element":0},"views= _dom_id:d4d4d47e5ff7d60135e2dac016bd15df":{"view_name":"choice_views","vi= ew_display_id":"block_index_abstract","view_args":"","view_path":"node","= view_base_path":"choice\/list","view_dom_id":"d4d4d47e5ff7d60135e2dac016b= d15df","pager_element":0}}},"extlink":{"extTarget":0,"extClass":0,"extLab= el":"(link is = external)","extImgClass":0,"extSubdomains":1,"extExclude":"","extInclude"= :"","extCssExclude":"","extCssExplicit":"","extAlert":0,"extAlertText":"T= his link will take you to an external web = site.","mailtoClass":0,"mailtoLabel":"(link sends = e-mail)"},"googleanalytics":{"trackOutbound":1,"trackMailto":1,"trackDown= load":1,"trackDownloadExtensions":"7z|aac|arc|arj|asf|asx|avi|bin|csv|doc= (x|m)?|dot(x|m)?|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(i= e)?|msi|msp|pdf|phps|png|ppt(x|m)?|pot(x|m)?|pps(x|m)?|ppam|sld(x|m)?|thm= x|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd|xls(x|m|b)?|x= lt(x|m)|xlam|xml|z|zip"},"superfish":{"2":{"id":"2","sf":{"pathClass":"ac= tive-trail","animation":{"opacity":"show"},"speed":"\u0027fast\u0027","au= toArrows":false,"dropShadows":false,"disableHI":false},"plugins":{"smalls= creen":{"mode":"window_width","addSelected":false,"menuClasses":false,"hy= perlinkClasses":false,"title":"\u4e3b\u9801"},"supposition":true,"bgifram= e":false,"supersubs":{"minWidth":"42.5","maxWidth":"42.5","extraWidth":1}= }}},"bootstrap":{"anchorsFix":1,"anchorsSmoothScrolling":1,"popoverEnable= d":1,"popoverOptions":{"animation":1,"html":1,"placement":"auto = top","selector":"","trigger":"click","title":"","content":"","delay":0,"c= ontainer":"body"},"tooltipEnabled":0,"tooltipOptions":{"animation":1,"htm= l":0,"placement":"auto left","selector":"","trigger":"hover = focus","delay":0,"container":"body"}}});</SCRIPT> =20 <STYLE type=3D"text/css">.fancybox-margin{margin-right:17px;}</STYLE> <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/jwpsrv.txt"></SCRIPT> <SCRIPT type=3D"text/javascript">=0A= (function ($) {=0A= $( document ).ready(function() {=0A= $('a.menuparent').hover(function() {=0A= var target_menu =3D $(this).parent();=0A= $('ul.sf-menu li.menuparent').removeClass('sfHover');=0A= $('ul.sf-menu li.menuparent').find('ul').addClass('sf-hidden');=0A= target_menu.addClass('sfHover');=0A= target_menu.find('ul').removeClass('sf-hidden');=0A= });=0A= $('a.menuparent').focus(function() {=0A= var target_menu =3D $(this).parent();=0A= $('ul.sf-menu li.menuparent').removeClass('sfHover');=0A= $('ul.sf-menu li.menuparent').find('ul').addClass('sf-hidden');=0A= target_menu.addClass('sfHover');=0A= target_menu.find('ul').removeClass('sf-hidden');=0A= });=0A= $('.main-container').hover(function() {=0A= $('ul.sf-menu li.menuparent').removeClass('sfHover');=0A= $('ul.sf-menu li.menuparent').find('ul').addClass('sf-hidden');=0A= });=0A= $('.main-container').focus(function() {=0A= $('ul.sf-menu li.menuparent').removeClass('sfHover');=0A= $('ul.sf-menu li.menuparent').find('ul').addClass('sf-hidden');=0A= });=0A= });=0A= })(jQuery); =0A= </SCRIPT> <META name=3D"GENERATOR" content=3D"MSHTML 11.00.10570.1001"></HEAD>=20 <BODY class=3D"html front not-logged-in one-sidebar sidebar-first = page-node i18n-zh-hant lightbox-processed"><!-- Header Start -->=20 <HEADER class=3D"navbar container navbar-default" id=3D"navbar" = role=3D"banner"> <DIV class=3D"navbar-header-left"></DIV> <DIV class=3D"navbar-header-right"></DIV> <DIV class=3D"container"> <DIV class=3D"navbar-header"><!-- .btn-navbar is used as the toggle for = collapsed navbar content -->=20 <BUTTON class=3D"navbar-toggle collapsed" type=3D"button" = data-toggle=3D"collapse"=20 data-target=3D".navbar-collapse"><SPAN class=3D"sr-only">Toggle = navigation</SPAN> =20 <SPAN class=3D"icon-bar"></SPAN><SPAN = class=3D"icon-bar"></SPAN><SPAN class=3D"icon-bar"></SPAN></BUTTON> <DIV class=3D"logo"><A title=3D"=AD=BA=AD=B6" = href=3D"https://www.consumer.org.hk/ws_chi"><IMG=20 alt=3D"=AD=BA=AD=B6" = src=3D"https://www.consumer.org.hk/www2015/files/logo.png"> = =20 </A> </DIV></DIV> <DIV class=3D"navbar-collapse collapse" style=3D"padding-right: 0px; = padding-left: 0px;"><NAV=20 class=3D"desktop-menu" role=3D"navigation"> <DIV class=3D"region region-navigation"><SECTION class=3D"block = block-superfish clearfix"=20 id=3D"block-superfish-2"> <UL class=3D"menu sf-menu sf-main-menu sf-navbar sf-style-none = sf-total-items-5 sf-parent-items-5 sf-single-items-0 nav = superfish-processed sf-js-enabled"=20 id=3D"superfish-2"> <LI class=3D"first odd sf-item-1 sf-depth-2 sf-total-children-6 = sf-parent-children-3 sf-single-children-3 menuparent sf-breadcrumb"=20 id=3D"menu-930-2"><A class=3D"sf-depth-2 menuparent" = href=3D"https://www.consumer.org.hk/ws_chi/news/articles/list"><SPAN>=B3=CC= =B7s=B8=EA=B0T</SPAN></A></LI> <LI class=3D"middle even sf-item-2 sf-depth-2 sf-total-children-7 = sf-parent-children-2 sf-single-children-5 menuparent"=20 id=3D"menu-877-2"><A class=3D"sf-depth-2 menuparent" = href=3D"https://www.consumer.org.hk/ws_chi/shopping-guide"><SPAN>=AE=F8=B6= O=AB=FC=ABn</SPAN></A></LI> <LI class=3D"middle odd sf-item-3 sf-depth-2 sf-total-children-7 = sf-parent-children-2 sf-single-children-5 menuparent"=20 id=3D"menu-879-2"><A class=3D"sf-depth-2 menuparent" = href=3D"https://www.consumer.org.hk/ws_chi/complaints_and_advices/how_to_= complain/howtocomplain.html"><SPAN>=A7=EB=B6D=A4=CE=ABO=BB=D9</SPAN></A><= /LI> <LI class=3D"middle even sf-item-4 sf-depth-2 sf-total-children-2 = sf-parent-children-2 sf-single-children-0 menuparent"=20 id=3D"menu-881-2"><A class=3D"sf-depth-2 menuparent" = href=3D"https://www.consumer.org.hk/ws_chi/competition_issues/policy_posi= tion/list"><SPAN>=ACF=B5=A6=A4=CE=AC=E3=A8s</SPAN></A></LI> <LI class=3D"last odd sf-item-5 sf-depth-2 sf-total-children-8 = sf-parent-children-4 sf-single-children-4 menuparent"=20 id=3D"menu-3024-2"><A class=3D"sf-depth-2 menuparent" = href=3D"https://www.consumer.org.hk/ws_chi/profile/mission/mission.html">= <SPAN>=C3=F6=A9=F3=A7=DA=AD=CC</SPAN></A></LI></UL></SECTION><!-- = /.block -->=20 </DIV></NAV> <NAV class=3D"mobile-menu" = role=3D"navigation"> <DIV class=3D"region region-navigation-mobile"><SECTION class=3D"block = block-block clearfix"=20 id=3D"block-block-43"> <DIV class=3D"mobile-login-block"> <DIV class=3D"en"><A class=3D"setLogin" = href=3D"https://www.consumer.org.hk/ws_chi/user/login">Login</A><A=20 class=3D"setAcc" = href=3D"https://www.consumer.org.hk/ws_chi/user/register">Sign=20 up</A></DIV> <DIV class=3D"chi"><A class=3D"setLogin" = href=3D"https://www.consumer.org.hk/ws_chi/user/login">=B5n=A4J</A><A=20 class=3D"setAcc"=20 href=3D"https://www.consumer.org.hk/ws_chi/user/register">=B5=F9=A5U</A><= /DIV> <DIV class=3D"gb"><A class=3D"setLogin" = href=3D"https://www.consumer.org.hk/ws_chi/user/login">=B5n=A4J</A><A=20 class=3D"setAcc"=20 href=3D"https://www.consumer.org.hk/ws_chi/user/register">=AA`?</A></DIV>= </DIV></SECTION><!-- /.block -->=20 <SECTION class=3D"block block-views clearfix" = id=3D"block-views-shopping-guide-views-block-3"> <DIV class=3D"block-title"><A = href=3D"https://www.consumer.org.hk/pricewatch/oilwatch/graph.php?action=3D= volume&volume=3D1&amount=3D&grade=3Ddiesel&filtercompany=3D= &cri%5B%5D=3Dcash&show=3D10&filtercreditcard=3D&userebate= point=3D&usebonus=3D0&usebonuspoint=3D&week=3D0#block-views-s= hopping-guide-views-block-3"=20 data-target=3D"">=B2=A3=AB~=A4=CE=AAA=B0=C8=C3=FE=A7O</A></DIV> <DIV class=3D"view view-shopping-guide-views = view-id-shopping_guide_views view-display-id-block_3 = view-dom-id-ba5c48adadf2d7ecc1c0eb0d4a0c7f3d"> <DIV class=3D"view-content"> <DIV class=3D"views-row views-row-1 views-row-odd views-row-first"> <DIV class=3D"views-field views-field-title"><SPAN = class=3D"field-content"><A class=3D"consumer-link"=20 href=3D"javascript:void(0)">=AEa=AEx=B9q=BE=B9</A></SPAN> </DIV></DIV> <DIV class=3D"views-row views-row-2 views-row-even"> <DIV class=3D"views-field views-field-title"><SPAN = class=3D"field-content"><A class=3D"consumer-link"=20 href=3D"javascript:void(0)">=B9q=A4l=A4=CE=BCv=AD=B5</A></SPAN> = </DIV></DIV> <DIV class=3D"views-row views-row-3 views-row-odd"> <DIV class=3D"views-field views-field-title"><SPAN = class=3D"field-content"><A class=3D"consumer-link"=20 href=3D"javascript:void(0)">=AD=B9=AA=AB=A4=CE=B6=BC=AB~</A></SPAN> = </DIV></DIV> <DIV class=3D"views-row views-row-4 views-row-even"> <DIV class=3D"views-field views-field-title"><SPAN = class=3D"field-content"><A class=3D"consumer-link"=20 href=3D"javascript:void(0)">=AEa=A9~=A5=CE=AB~</A></SPAN> </DIV></DIV> <DIV class=3D"views-row views-row-5 views-row-odd"> <DIV class=3D"views-field views-field-title"><SPAN = class=3D"field-content"><A class=3D"consumer-link"=20 href=3D"javascript:void(0)">=A8=E0=B5=A3=A5=CE=AB~</A></SPAN> = </DIV></DIV> <DIV class=3D"views-row views-row-6 views-row-even"> <DIV class=3D"views-field views-field-title"><SPAN = class=3D"field-content"><A class=3D"consumer-link"=20 href=3D"javascript:void(0)">=B0=B7=B1d=A4=CE=AC=FC=AEe</A></SPAN> = </DIV></DIV> <DIV class=3D"views-row views-row-7 views-row-odd"> <DIV class=3D"views-field views-field-title"><SPAN = class=3D"field-content"><A class=3D"consumer-link"=20 href=3D"javascript:void(0)">=A5i=AB=F9=C4=F2=AE=F8=B6O</A></SPAN> = </DIV></DIV> <DIV class=3D"views-row views-row-8 views-row-even"> <DIV class=3D"views-field views-field-title"><SPAN = class=3D"field-content"><A class=3D"consumer-link"=20 href=3D"javascript:void(0)">=AD=D3=A4H=B2z=B0]</A></SPAN> </DIV></DIV> <DIV class=3D"views-row views-row-9 views-row-odd"> <DIV class=3D"views-field views-field-title"><SPAN = class=3D"field-content"><A class=3D"consumer-link"=20 href=3D"javascript:void(0)">=AAA=B0=C8</A></SPAN> </DIV></DIV> <DIV class=3D"views-row views-row-10 views-row-even views-row-last"> <DIV class=3D"views-field views-field-title"><SPAN = class=3D"field-content"><A class=3D"consumer-link"=20 href=3D"javascript:void(0)">=AE=F8=B6=A2=A4=CE=A8T=A8=AE</A></SPAN> = </DIV></DIV></DIV></DIV></SECTION><!-- /.block -->=20 <SECTION class=3D"block block-block clearfix" id=3D"block-block-41"> <UL class=3D"menu nav"> <LI class=3D"first expanded mlid-930"><A = title=3D"news/press_releases=C0=B3=A6b=B6=C7=B4C=B1M=B0=CF" = href=3D"javascript:void(0)">=B3=CC=B7s=B8=EA=B0T</A> <UL class=3D"menu nav"></UL></LI> <LI class=3D"expanded mlid-877"><A title=3D"" = href=3D"javascript:void(0)">=AE=F8=B6O=AB=FC=ABn</A> <UL class=3D"menu nav"></UL></LI> <LI class=3D"expanded mlid-879"><A = href=3D"javascript:void(0)">=A7=EB=B6D=A4=CE=ABO=BB=D9</A> <UL class=3D"menu nav"></UL></LI> <LI class=3D"expanded mlid-881"><A title=3D"" = href=3D"javascript:void(0)">=ACF=B5=A6=A4=CE=AC=E3=A8s</A> <UL class=3D"menu nav"></UL></LI> <LI class=3D"last expanded mlid-3024"><A = href=3D"javascript:void(0)">=C3=F6=A9=F3=A7=DA=AD=CC</A> <UL class=3D"menu nav"></UL></LI></UL> <UL class=3D"menu nav"> <LI class=3D"first last expanded mlid-1754"><A title=3D"views gen" = class=3D"restricted"=20 href=3D"javascript:void(0)">=B6=C7=B4C=B1M=B0=CF</A> <UL class=3D"menu nav"></UL></LI></UL></SECTION><!-- /.block --> = <SECTION class=3D"block block-menu clearfix"=20 id=3D"block-menu-menu-mobile-footer-link"> <DIV class=3D"block-title"><A = href=3D"https://www.consumer.org.hk/pricewatch/oilwatch/graph.php?action=3D= volume&volume=3D1&amount=3D&grade=3Ddiesel&filtercompany=3D= &cri%5B%5D=3Dcash&show=3D10&filtercreditcard=3D&userebate= point=3D&usebonus=3D0&usebonuspoint=3D&week=3D0#block-menu-me= nu-mobile-footer-link"=20 data-target=3D"">Mobile Footer Link</A></DIV> <UL class=3D"menu nav"> <LI class=3D"first leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/contactus">=C1p=B5=B8=A7=DA=AD= =CC</A></LI> <LI class=3D"leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/archives">=C0=C9=AE=D7=AEw</A>= </LI> <LI class=3D"leaf"><A title=3D""=20 = href=3D"https://www.consumer.org.hk/ws_chi/sitemap">=BA=F4=AD=B6=A6a=B9=CF= </A></LI> <LI class=3D"leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/others/copyright/copyright.htm= l">=AA=A9=C5v=A9M=A7K=B3d=C1n=A9=FA</A></LI> <LI class=3D"leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/profile/codeonaccess/index.htm= l">=A4=BD=B6}=B8=EA=AE=C6=A6u=ABh</A></LI> <LI class=3D"leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/others/privacy_policy/pps.html= ">=A8p=C1=F4=ACF=B5=A6</A></LI> <LI class=3D"last leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/accessibility">=B5L=BB=D9=C3=AA= =C1n=A9=FA</A></LI></UL></SECTION><!-- /.block -->=20 <SECTION class=3D"block block-kanhan-language-switcher clearfix" = id=3D"block-kanhan-language-switcher-language-switcher-mobile"> <DIV class=3D"mobile-language-switcher" id=3D"language-buttons-wrapper"> <DIV id=3D"language-buttons"><SPAN=20 class=3D"mobile-language-switcher-title">=BBy=A8=A5=B3]=A9w</SPAN> =20 <UL> <LI><A class=3D"changeVerEng" href=3D"javascript:;">EN</A> </LI> = <!--<li>=0A= =C1c </li>--> =20 <LI><A class=3D"changeVerSc" href=3D"javascript:;">=C2=B2</A> = </LI> </UL></DIV></DIV></SECTION><!-- /.block --> <SECTION = class=3D"block block-kanhan-text-resize clearfix"=20 id=3D"block-kanhan-text-resize-text-resize-mobile"> <DIV class=3D"mobile-resize" id=3D"resize-buttons-wrapper"> <DIV id=3D"resize-buttons"><!-- <span class=3D"element-invisible">Text = size</span> --> <SPAN>=A6r=C5=E9=A4j=A4p</SPAN> =20 <UL> <LI class=3D"font-normal"><A class=3D"focus" = href=3D"https://www.consumer.org.hk/pricewatch/oilwatch/graph.php?action=3D= volume&volume=3D1&amount=3D&grade=3Ddiesel&filtercompany=3D= &cri%5B%5D=3Dcash&show=3D10&filtercreditcard=3D&userebate= point=3D&usebonus=3D0&usebonuspoint=3D&week=3D0#"> =B9w=B3] </A> </LI> <LI class=3D"font-large"><A = href=3D"https://www.consumer.org.hk/pricewatch/oilwatch/graph.php?action=3D= volume&volume=3D1&amount=3D&grade=3Ddiesel&filtercompany=3D= &cri%5B%5D=3Dcash&show=3D10&filtercreditcard=3D&userebate= point=3D&usebonus=3D0&usebonuspoint=3D&week=3D0#"> =B8=FB=A4j </A></LI> <LI class=3D"font-largest"><A = href=3D"https://www.consumer.org.hk/pricewatch/oilwatch/graph.php?action=3D= volume&volume=3D1&amount=3D&grade=3Ddiesel&filtercompany=3D= &cri%5B%5D=3Dcash&show=3D10&filtercreditcard=3D&userebate= point=3D&usebonus=3D0&usebonuspoint=3D&week=3D0#"> =B3=CC=A4j </A></LI></UL></DIV></DIV></SECTION><!-- /.block = --> =20 </DIV></NAV></DIV> <DIV class=3D"navbar-collapse-search collapse" style=3D"padding-right: = 0px; padding-left: 0px;"><NAV=20 class=3D"mobile-menu" role=3D"navigation" style=3D"padding: 10px;"> <DIV class=3D"region region-navigation-mobile-search"><SECTION = class=3D"block block-block clearfix"=20 id=3D"block-block-42"> <FORM action=3D"/ws_chi/keyword-search" method=3D"GET"> <TABLE style=3D"width: 100%;"> <TBODY> <TR> <TD><INPUT name=3D"keys" title=3D"=B7j=B4M" class=3D"form-control" = type=3D"text" placeholder=3D"=B7j=B4M" value=3D""></TD> <TD style=3D"width: 25px;"><BUTTON title=3D"=B7j=B4M" = class=3D"btn-search"><IMG style=3D"width: 100%;"=20 alt=3D"=B7j=B4M"=20 = src=3D"https://www.consumer.org.hk/www2015/files/icon_search.png"></BUTTO= N></TD></TR></TBODY></TABLE></FORM></SECTION><!-- /.block -->=20 </DIV></NAV></DIV></DIV></HEADER><!-- Header End -->=20 <DIV align=3D"center"> <P> <TABLE width=3D"780" height=3D"0" border=3D"0" cellspacing=3D"0" = cellpadding=3D"0"> <TBODY> <TR> <TD height=3D"50" valign=3D"middle"><!--a = href=3D"https://www.consumer.org.hk/"><img border=3D"0" src=3D"logo.jpg" = alt=3D"=AE=F8=B6O=AA=CC=A9e=AD=FB=B7| Consumer Counsil Logo"></a--></TD> <TD align=3D"right" valign=3D"bottom"><!--a = href=3D"http://www.consumer.org.hk/tele2010/index.html" = target=3D"_new"><img border=3D"0" src=3D"bds_ofta_consumer_c.gif"></a--> = <TABLE border=3D"0"> <TBODY> <TR> <TD><!--a = href=3D"http://www.consumer.org.hk/pricewatch/oilwatch/survey2011/" = target=3D"_ccoil_survey"><img src=3D"oilsurvey_v3.gif" = border=3D0></a--></TD></TR> <TR> <TD = height=3D"5"></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE> <TABLE width=3D"769" border=3D"0" cellspacing=3D"0" cellpadding=3D"0"> <TBODY> <TR> <TD valign=3D"top"> <TABLE width=3D"700" align=3D"left" border=3D"0" cellspacing=3D"0" = cellpadding=3D"0"> <TBODY> <TR> <TH width=3D"185" id=3D"thewcag10" valign=3D"top"><IMG = width=3D"17" height=3D"1"=20 alt=3D"space gif =AA=C5=AE=E6" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/images/1_pixel.gif= "></TH> <TD valign=3D"top"> <TD valign=3D"top" colspan=3D"2"> <TABLE width=3D"549" border=3D"0" cellspacing=3D"0" = cellpadding=3D"2"> <TBODY> <TR> <TD id=3D"thewcag12" = valign=3D"top"><!--/td></tr></table-->=20 <SCRIPT>=0A= =0A= function fixVols() {=0A= =0A= if (document.getElementById('fixVol').checked) {=0A= if (parseInt(document.getElementById('amount').value) >=3D = parseInt(document.getElementById('userebatepoint').value)) {=0A= if (parseInt(document.getElementById('userebatepoint').value) > 0) {=0A= = alert("=B9w=BA=E2=A4J=AAo=AA=F7=C3B=A5=B2=B6=B7=A4p=A9=F3=A5=BB=A4=EB=B9w= =BA=E2=C1`=C3=B1=B1b=C3B");=0A= return false;=0A= }=0A= }=0A= }=0A= =0A= =0A= return true;=0A= if (document.getElementById('fixVol').checked) {=0A= document.getElementById('cbusebonus').checked =3D false;=0A= document.getElementById('usebonus').selectedIndex =3D 0;=0A= document.getElementById('usebonuspoint').value =3D '';=0A= =0A= document.getElementById('cbusebonus').disabled=3D true;=0A= document.getElementById('usebonus').disabled =3D true;=0A= document.getElementById('usebonuspoint').disabled =3D true;=0A= } else {=0A= document.getElementById('cbusebonus').disabled=3D false;=0A= document.getElementById('usebonus').disabled =3D false;=0A= document.getElementById('usebonuspoint').disabled =3D false;=0A= }=0A= =0A= }=0A= =0A= =0A= =0A= var LastName;=0A= =0A= function toggleup(name) {=0A= if (document.getElementById)=0A= if (document.getElementById(name).style.display =3D=3D '')=0A= document.getElementById(name).style.display =3D 'none';=0A= else=0A= document.getElementById(name).style.display =3D '';=0A= =0A= }=0A= =0A= =0A= function openWin(url,width,height) { =0A= c =3D = window.open(url,"dialog","location=3Dno,scrollbars=3Dyes,status=3Dyes,res= izable=3Dyes,width=3D"+width+",height=3D"+height+",toolbar=3Dno,left=3D0,= top=3D0");=0A= c.opener =3D self;=0A= }=0A= =0A= function useBonus() {=0A= if (!document.getElementById('cbusebonus').checked) {=0A= document.getElementById('usebonuspoint').value =3D "";=0A= }=0A= }=0A= =0A= function useRebate() {=0A= if (!document.getElementById('cbuserebate').checked) {=0A= document.getElementById('userebatepoint').value =3D "";=0A= } else {=0A= if (!document.getElementById('cbcreditcard').checked) {=0A= document.getElementById('cbcreditcard').checked =3D true;=0A= = alert("=BB=DD=BF=EF=BE=DC=C5=E3=A5=DC=A9=D2=A6=B3=ABH=A5=CE=CD=FC=BB=F9=AE= =E6");=0A= }=0A= }=0A= }=0A= function va1() {=0A= =0A= // if (document.getElementById('cbfiltercompany').checked) {=0A= // document.getElementById('filtercompany').disabled =3D false;=0A= // } else {=0A= // document.getElementById('filtercompany').disabled =3D true;=0A= // }=0A= =0A= if (document.getElementById('cbfiltercreditcard').checked) {=0A= document.getElementById('filtercreditcard').disabled =3D false;=0A= } else {=0A= document.getElementById('filtercreditcard').disabled =3D true;=0A= }=0A= }=0A= =0A= function va2() {=0A= =0A= // if (document.getElementById('filtercompany').value !=3D "") {=0A= // document.getElementById('cbfiltercompany').checked =3D true;=0A= // } else {=0A= // document.getElementById('cbfiltercompany').checked =3D false;=0A= // }=0A= =0A= if (document.getElementById('filtercreditcard').value !=3D "") {=0A= document.getElementById('cbfiltercreditcard').checked =3D true;=0A= } else {=0A= document.getElementById('cbfiltercreditcard').checked =3D false;=0A= }=0A= =0A= if (document.getElementById('filtercreditcard').value.indexOf('Shell = Citibank') > -1)=0A= {=0A= document.getElementById('fbshellvalue').style.display =3D '';=0A= } else {=0A= document.getElementById('fbshellvalue').style.display =3D 'none';=0A= document.getElementById('userebatepoint').value =3D '';=0A= }=0A= =0A= }=0A= =0A= function va3() {=0A= if (document.getElementById('cbfiltercreditcard').checked)=0A= {=0A= if (document.getElementById('filtercreditcard').value.indexOf('Shell = Citibank') > -1)=0A= {=0A= document.getElementById('fbshellvalue').style.display =3D '';=0A= } else {=0A= document.getElementById('fbshellvalue').style.display =3D 'none';=0A= document.getElementById('userebatepoint').value =3D '';=0A= }=0A= } else {=0A= document.getElementById('fbshellvalue').style.display =3D 'none';=0A= document.getElementById('userebatepoint').value =3D '';=0A= }=0A= }=0A= =0A= function isIE() {=0A= return (navigator.appVersion.indexOf("MSIE") >=3D 0);=0A= }=0A= =0A= function checkActive() {=0A= if (findName() && (LastName !=3D findName())) {=0A= =0A= for (i=3D1;i<=3DTotalCount;i++) {=0A= if (isIE())=0A= document.getElementById("row"+i).setAttribute("class", "");=0A= else=0A= document.getElementById("row"+i).className=3D"";=0A= }=0A= if (isIE())=0A= document.getElementById("row"+findName()).setAttribute("class", = "activeRow");=0A= else=0A= = document.getElementById("row"+findName()).className=3D"activeRow"; =0A= window.scrollBy(0,-20); =0A= }=0A= LastName =3D findName();=0A= }=0A= =0A= function findName()=0A= {=0A= var theAddress =3D decodeURI(window.location); =0A= var thePound =3D theAddress.indexOf("#");=0A= if (thePound >=3D 0) {=0A= theSection =3D theAddress.substring(thePound + 1);=0A= return theSection;=0A= }=0A= return false;=0A= }=0A= =0A= window.onscroll =3D checkActive;=0A= =0A= </SCRIPT> =20 <FORM onsubmit=3D"if (this.volume.value =3D=3D '') = this.volume.value =3D 0; if (this.volume.value < 1 && = this.amount.value < 10) { = alert('=BD=D0=BF=E9=A4J=BC=C6=A6r(1=A4=BD=A4=C9/HKD10 =A5H=A4W)'); = return false; } return fixVols();"=20 action=3D"graph.php#result" method=3D"get"><IMG = height=3D"5" alt=3D"space gif =AA=C5=AE=E6"=20 = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/spacer.gif"><BR> <TABLE width=3D"780" border=3D"0"> <TBODY> <TR> <TD> <H1><SPAN style=3D"display: = none;">=AAo=BB=F9=ADp=BA=E2=BE=F7</SPAN> =20 <IMG alt=3D"=AAo=BB=F9=ADp=BA=E2=BE=F7" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/hl3.gif">=20 </H1></TD> <TD align=3D"right"><IMG alt=3D"=C1c=C5=E9=AA=A9" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/eng/b5.jpg"=20 order=3D"0"><A = href=3D"https://www.consumer.org.hk/pricewatch/oilwatch/eng/graph.php"><I= MG=20 alt=3D"English" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/eng/eng.jpg"=20 border=3D"0"></A> </TD> <TD width=3D"80" align=3D"right" = bgcolor=3D"#eeeeee"> <CENTER><A = href=3D"https://www.consumer.org.hk/pricewatch/oilwatch/index.php"><FONT = size=3D"2">=A6^=A8=EC=AD=BA=AD=B6</FONT></A> = =20 </CENTER></TD></TR></TBODY></TABLE><!-- = (=B3=CC=AB=E1=A7=F3=B7s=AE=C9=B6=A1=A1G2018-01-03 09:29) -->=20 <IMG width=3D"780" height=3D"2" alt=3D"divide line = =A4=C0=AC=C9=BDu" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/images/line2.gif">= <BR> <TABLE width=3D"780" border=3D"0" cellspacing=3D"0"=20 cellpadding=3D"0"><TBODY> <TR> <TD width=3D"172" valign=3D"top"><BR><BR><BR><IMG = alt=3D"=ADp=BA=E2=BE=F7=B9=CF=A4=F9"=20 = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/leftcalc.jpg"=20 border=3D"0"> </TD> <TD> <DIV style=3D"color: rgb(64, 135, 165); = font-size: 12px;"> <UL> = <LI>=C5w=AA=EF=A8=CF=A5=CE=AAo=BB=F9=ADp=BA=E2=BE=F7=A1A=A5i=AB=F6=A7A=AA= =BA=ADn=A8D=ADp=BA=E2=A9=D2=B1o=AA=BA=BB=F9=AE=E6=A4=CE=C0u=B4f=B8=EA=AE=C6= =A1C<BR></LI> <LI> =BD=D0=A6b=A4U=A6C=C4=E6=A5=D81 - 5 = =BF=E9=A4J/=BF=EF=BE=DC=A7A=AA=BA=B3]=A9w=A1C<IMG = alt=3D"=B3=E6=BF=EF=AB=F6=B6s" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/radio.jpg"=20 border=3D"0"> = =AA=ED=A5=DC=A5u=BF=EF=A4@=B6=B5=A1A<IMG alt=3D"=BD=C6=BF=EF=AE=D8" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/checkbox.jpg"=20 order=3D"0"> = =AA=ED=A5=DC=A5i=A6P=AE=C9=BF=EF=A6h=A9=F3=A4@=B6=B5=A1C = </LI></UL></DIV> <TABLE width=3D"100%" border=3D"0" = cellspacing=3D"0"=20 cellpadding=3D"0"> <TBODY> <TR> <TD class=3D"oil"> <TABLE width=3D"520" align=3D"center" = border=3D"1"=20 cellspacing=3D"5" cellpadding=3D"10"> <TBODY> <TR> <TD class=3D"nothing" = style=3D"background-color: rgb(218, 231, 231);"> <TABLE border=3D"0"> <TBODY> <TR> <TD class=3D"nothing" = valign=3D"top">1)</TD> <TD class=3D"nothing"=20 = colspan=3D"3">=BD=D0=BF=EF=A4@=B6=B5=A1A=A6A=BF=E9=A4J=B9w=BA=E2=A4J=AAo=B6= q=A9=CE=AA=F7=C3B=A1G</TD></TR> <TR> <TD> </TD> <TD class=3D"nothing" valign=3D"top"> = =20 <LABEL = style=3D"display: none;"=20 = for=3D"theradiobut1">=A4J=AAo=B6q</LABEL><INPUT name=3D"action"=20 id=3D"theradiobut1" = onchange=3D"fixVols();" type=3D"radio"=20 checked=3D"" value=3D"volume"> <LABEL = for=3D"thevolume1"><B>=B9w=BA=E2=A4J=AAo=B6q=A1G</B></LABEL>=20 </TD> <TD class=3D"nothing"><INPUT = name=3D"volume" id=3D"thevolume1" type=3D"text" size=3D"10" = maxlength=3D"8" value=3D"1">=20 (=A4=BD=A4=C9) = </TD></TR> <TR> <TD> </TD> <TD class=3D"nothing" valign=3D"top"> = =20 <LABEL = style=3D"display: none;"=20 = for=3D"fixVol">=A4J=AAo=AA=F7=C3B</LABEL><INPUT name=3D"action"=20 id=3D"fixVol" onchange=3D"fixVols();" = type=3D"radio"=20 maxlength=3D"8" value=3D"amount"> <LABEL = for=3D"amount"><B>=B9w=BA=E2=A4J=AAo=AA=F7=C3B=A1G</B></LABEL>=20 </TD> <TD class=3D"nothing"><INPUT = name=3D"amount" id=3D"amount" type=3D"text" size=3D"10">=20 (HKD)<BR> <DIV style=3D"margin-top: 5px;">=20 = (=A5i=BF=E9=A4J=B3=E6=A6=B8=A4J=AAo=B9w=BA=E2=C3B=A1A=A9=CE=BE=E3=A4=EB=A5= =CE=AAo=B9w=BA=E2=C3B=A7@=B0=D1=A6=D2)</DIV></TD></TR> <TR> <TD class=3D"nothing">2)</TD> <TD class=3D"nothing"><LABEL=20 = for=3D"thegrade1"><NOBR>=C5=E3=A5=DC=A8T=A8=AE=BFU=AAo=BA=D8=C3=FE=A1G</N= OBR></LABEL> =20 </TD> <TD><SELECT name=3D"grade" = id=3D"thegrade1"><OPTION=20 value=3D"all"> = =B4=B6=B3q=AF=C5=A4=CE=AFS=AF=C5=A8T=AAo</OPTION> =20 <OPTION value=3D"0"> = =B4=B6=B3q=AF=C5=A8T=AAo</OPTION> =20 <OPTION=20 value=3D"1"> =AFS=AF=C5=A8T=AAo</OPTION> = =20 <OPTION value=3D"diesel"=20 selected=3D"">=AE=E3=AAo </OPTION> = =20 </SELECT> = </TD></TR> <TR> <TD class=3D"nothing">3)</TD> <TD class=3D"nothing"><LABEL=20 = for=3D"filtercompany"><NOBR>=C5=E3=A5=DC=AB=FC=A9w=AAo=A4=BD=A5q=A1G</NOB= R></LABEL>=20 </TD> <TD><INPUT id=3D"cbfiltercompany" = onclick=3D"va1()" type=3D"hidden">=20 <SELECT = name=3D"filtercompany"=20 id=3D"filtercompany" = onchange=3D"va2()"><OPTION=20 = value=3D"">=A5=FE=B3=A1=AAo=A4=BD=A5q</OPTION> <OPTION=20 value=3D"Caltex">=A5[=BCw=A4h = Caltex</OPTION><OPTION value=3D"Esso">=AEJ=AF=C1=20 Esso</OPTION><OPTION = value=3D"Petrochina">=A4=A4=B0=EA=A5=DB=AAo=20 Petrochina</OPTION><OPTION = value=3D"Shell">=B8=C3=B4=DF=20 Shell</OPTION><OPTION = value=3D"Sinopec">=A4=A4=A5=DB=A4=C6=20 Sinopec</OPTION> =20 </SELECT> = </TD></TR> <TR> <TD class=3D"nothing"></TD> <TD class=3D"nothing"=20 = colspan=3D"3">=A1]=A5=BB=BA=F4=AF=B8=A6=B3=C3=F6=A8T=A8=AE=BFU=AE=C6=BA=D8= =C3=FE=A1u=B4=B6=B3q=AF=C5=A1v=A8T=AAo=A9=CE=A1u=AFS=AF=C5=A1v=A8T=AAo=BB= P=A8T=AAo=A8=AF=D6J=AD=C8=B5L=C3=F6=A1C=AE=DA=BE=DA=B3=A1=A4=C0=AAo=A4=BD= =A5q=BA=F4=AD=B6=A4W=AA=BA=C1n=BA=D9=A1A=A1u=AFS=AF=C5=A1v=A8T=AAo=A4@=AF= =EB=A4=F1=A1u=B4=B6=B3q=AF=C5=A1v=A8T=AAo=A6=B3=B8=FB=B0=AA=A7t=B6q=AA=BA= =B2K=A5[=BE=AF=A1C=A1^=20 </TD></TR> <TR> <TD class=3D"nothing" = valign=3D"top">4)</TD> <TD class=3D"nothing" = colspan=3D"3"><INPUT name=3D"cri[]"=20 id=3D"thecash1" type=3D"checkbox" = checked=3D"" value=3D"cash">=20 <LABEL=20 = for=3D"thecash1"><NOBR>=C5=E3=A5=DC=B2{=AA=F7=A4=CE=A4@=AF=EB=ABH=A5=CE=CD= =FC=BB=F9=AE=E6</NOBR></LABEL><BR><INPUT=20 name=3D"cri[]" id=3D"thebonus1" = type=3D"checkbox"=20 value=3D"bonus"> <LABEL=20 = for=3D"thebonus1"><NOBR>=C5=E3=A5=DC=BFn=A4=C0=A9=CE=C0u=B4f=CD=FC=BB=F9=AE= =E6</NOBR></LABEL><BR><INPUT=20 name=3D"cri[]" id=3D"cbcreditcard" = type=3D"checkbox"=20 value=3D"creditcard"> <LABEL=20 = for=3D"cbcreditcard"><NOBR>=C5=E3=A5=DC=A9=D2=A6=B3=ABH=A5=CE=CD=FC=BB=F9= =AE=E6</NOBR></LABEL>=20 </TD></TR> <TR> <TD class=3D"nothing">5)</TD> <TD class=3D"nothing"><LABEL=20 = for=3D"theshow1"><NOBR>=C5=E3=A5=DC=B5=B2=AAG=A1G</NOBR></LABEL> =20 </TD> <TD><SELECT name=3D"show" = id=3D"theshow1"><OPTION=20 value=3D"10">=AD=BA 10 =AD=D3</OPTION> = =20 <OPTION value=3D"20">=AD=BA 20 = =AD=D3</OPTION> =20 <OPTION = value=3D"all">=A5=FE=B3=A1</OPTION> =20 </SELECT> = =20 =20 = </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE> <TABLE border=3D"0"> <TBODY> <TR> <TD valign=3D"top"><B><BR><FONT = color=3D"#ff775f"=20 = size=3D"2">=A8=E4=A5L=C3B=A5~=BF=EF=B6=B5=A1G</FONT> = </B> =20 </TD> <TD class=3D"nothing"> <TABLE> <TBODY> <TR> <TD class=3D"nothing" = valign=3D"top"><INPUT id=3D"cbfiltercreditcard"=20 onclick=3D"va1();" onchange=3D"va3();" = type=3D"checkbox">=20 <LABEL id=3D"cbfiltercreditcardlabel" = for=3D"cbfiltercreditcard">=C5=E3=A5=DC=AB=FC=A9w=ABH=A5=CE=CD=FC=A1G</LA= BEL>=20 </TD> <TD class=3D"nothing"><SELECT = name=3D"filtercreditcard"=20 id=3D"filtercreditcard"><OPTION=20 = value=3D"">=C5=E3=A5=DC=A5=FE=B3=A1</OPTION> <OPTION value=3D"Shell = Citibank=A5=D5=AA=F7=CD=FC ">Shell=20 Citibank=A5=D5=AA=F7=CD=FC = </OPTION><OPTION=20 value=3D"Shell = =A8p=A4H=AB=C8=A4=E1=A5d">Shell =A8p=A4H=AB=C8=A4=E1=A5d</OPTION><OPTION = = value=3D"=A4=A4=BB=C8Esso=B8U=A8=C6=B9F=A5d">=A4=A4=BB=C8Esso=B8U=A8=C6=B9= F=A5d</OPTION><OPTION=20 = value=3D"=A4=A4=BB=C8=ABH=A5=CE=A5d">=A4=A4=BB=C8=ABH=A5=CE=A5d</OPTION><= OPTION = value=3D"=B6=D7=C2=D7=ABH=A5=CE=A5d">=B6=D7=C2=D7=ABH=A5=CE=A5d</OPTION><= OPTION=20 = value=3D"=F9=DA=A5=CD=ABH=A5=CE=A5d">=F9=DA=A5=CD=ABH=A5=CE=A5d</OPTION> = =20 </SELECT> = <LABEL=20 style=3D"display: none;"=20 = for=3D"filtercreditcard">=AB=FC=A9w=ABH=A5=CE=CD=FC</LABEL> =20 <LABEL style=3D"display: = none;" for=3D"theConfirmLockId">=BDT=A9w</LABEL>=20 <INPUT = id=3D"theConfirmLockId" style=3D"font-size: 10pt;" onclick=3D"va2();" = type=3D"button" value=3D"=BDT=A9w">=20 </TD></TR> <TR id=3D"fbshellvalue" = style=3D"display: none;"> <TD class=3D"nothing" valign=3D"top"> = =20 = =20 <LABEL=20 = for=3D"userebatepoint">=BD=D0=BF=E9=A4J=A5=BB=A4=EB=B9w=BA=E2=C1`=C3=B1=B1= b=C3B=A1G</LABEL><BR><!-- Please input expected total spending this = month -->=20 =20 = =A1]=A5=B2=B6=B7=A5]=ACA Shell=20 = =BFU=AAo=C3=B1=B1b=A4=CE=B9s=B0=E2=C3=B1=B1b=A1^ = </TD> <TD class=3D"nothing" = valign=3D"top"><INPUT name=3D"userebatepoint" id=3D"userebatepoint" = type=3D"text" size=3D"5" maxlength=3D"8" value=3D"0">=20 (HKD) </TD></TR> <TR> <TD class=3D"nothing" = valign=3D"top"><INPUT name=3D"cbusebonus"=20 id=3D"cbusebonus" = onchange=3D"useBonus()" type=3D"checkbox"=20 value=3D"1"> <LABEL=20 = for=3D"cbusebonus">=B1=FD=B4=AB=A8=FA=BFn=A4=C0=CD=FC=C0u=B4f=A1G</LABEL>= =20 </TD> <TD class=3D"nothing"><SELECT = name=3D"usebonus" id=3D"usebonus1"><OPTION=20 value=3D"0">---</OPTION> = <!--<option value=3D"Caltex" >Caltex = =A8p=A4H=AF=E0=B7=BD=A5d</option>-->=20 <!--<option = value=3D"Caltex" >Caltex No.1 =BFn=A4=C0=A5d</option> -->=20 <!--<option = value=3D"Petrochina" = >=A4=A4=B0=EA=A5=DB=AAo=BFn=A4=C0=CD=FC</option>-->=20 <OPTION = value=3D"Petrochina2">=A4=A4=B0=EA=A5=DB=AAo=A7=E9=A6=A9=CD=FC</OPTION>=20 <OPTION=20 value=3D"Esso">SMILES Card</OPTION> = =20 </SELECT> /=20 <INPUT name=3D"usebonuspoint" id=3D"usebonuspoint" type=3D"text" = size=3D"5" maxlength=3D"8"><LABEL=20 style=3D"display: none;"=20 for=3D"usebonuspoint">=BFn=A4=C0</LABEL> = =20 <BR> <DIV style=3D"margin-top: 5px;"><LABEL = for=3D"usebonus1">(=BD=D0=BF=E9=A4J=A5=CE=A8=D3=B4=AB=A8=FA=C0u=B4f=AA=BA= =BFn=A4=C0)</LABEL></DIV></TD></TR> <TR> <TD class=3D"nothing" = colspan=3D"2"><BR><INPUT name=3D"cri[]"=20 id=3D"thecr1" type=3D"checkbox" = value=3D"period">=20 <LABEL = for=3D"thecr1">=B1N=AD=AD=B4=C1=C0u=B4f=A4]=ADp=BA=E2=A6b=A4=BA</LABEL> = =20 <INPUT name=3D"cri[]" = id=3D"thecr2"=20 type=3D"checkbox" value=3D"location"> = <LABEL = for=3D"thecr2">=B1N=AFS=A9w=AAo=AF=B8=A7=E9=A6=A9=A4]=ADp=BA=E2=A6b=A4=BA= </LABEL>=20 <!--<input = type=3Dcheckbox name=3D"cri[]" value=3D"special"> = =B1N=AFS=B3\=AB=C8=A4=E1=A4]=ADp=BA=E2=A6b=A4=BA-->=20 =20 </TD></TR></TBODY></TABLE><INPUT name=3D"week" type=3D"hidden" = value=3D"0">=20 </TD></TR> <TR> <TD width=3D"100"><A = onclick=3D'toggleup("help");'=20 href=3D"javascript:;"> <CENTER><IMG = alt=3D"=A8=CF=A5=CE=C1n=A9=FA" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/help.gif"=20 border=3D"0"></CENTER></A> = </TD> <TD> <TABLE width=3D"100%" align=3D"center" = class=3D"oil"=20 id=3D"help" style=3D"border: 1px solid = currentColor; display: none;"> <TBODY> <TR> <TD class=3D"nothing" = valign=3D"top">1.</TD> <TD=20 = class=3D"nothing">=A5=BB=ADp=BA=E2=BE=F7=A5=CE=A7@=ADp=BA=E2=B0=F2=C2=A6=AA= =BA=BB=F9=AE=E6=A1B=C0u=B4f=B5=A5=BC=C6=BE=DA=A5H=AD=BA=AD=B6=C5=E3=A5=DC= =A4=A7=A7=F3=B7s=A4=E9=B4=C1=A9=D2=BEA=A5=CE=AA=BA=BC=C6=BE=DA=A1C=A8=FC=A4= =A3=A6P=A6]=AF=C0=A1]=A8=D2=A6p=A5=BB=B7|=B1=B5=A6=AC=A8=EC=C0u=B4f=C5=DC= =A7=F3=B8=EA=AE=C6=AA=BA=AE=C9=B6=A1=A1B=AE=D6=B9=EA=A4=CE=A7=F3=B7s=BB=DD= =AE=C9=B5=A5=A1^=AD=AD=A8=EE=A1A=A5=CE=B8=D3=B5=A5=BC=C6=BE=DA=ADp=BA=E2=A5= X=AA=BA=B5=B2=AAG=A5=BC=A5=B2=A4=CF=ACM=A7Y=AE=C9=A6b=AAo=AF=B8=A4J=AAo=B7= |=A8=FA=B1o=AA=BA=B5=B2=AAG=A1C=20 </TD></TR> <TR> <TD class=3D"nothing" = valign=3D"top">2.</TD> <TD=20 = class=3D"nothing">=A5=BB=ADp=BA=E2=BE=F7=AA=BA=B9B=BA=E2=A5u=A8=D1=AE=F8=B6= O=AA=CC=B0=D1=A6=D2=A4=A7=A5=CE=A1A=C1=CA=B6R=A8T=A8=AE=BFU=AAo=AE=C9=BB=DD= =A4=E4=A5I=AA=BA=B9=EA=BB=DA=BC=C6=C3B=A9M=A9=D2=B1o=BFn=A4=C0=A1A=C0=B3=A5= H=B7=ED=AE=C9=BEA=A5=CE=AA=BA=AAo=A4=BD=A5q=ADp=B1b=A8t=B2=CE=AA=BA=B9B=BA= =E2=AC=B0=B7=C7=A1C=20 </TD></TR> <TR> <TD class=3D"nothing" = valign=3D"top">3.</TD> <TD=20 = class=3D"nothing">=BB=F9=AE=E6=A5H2=AD=D3=A4p=BC=C6=A6=EC=A8=C3=B1=C4=A8=FA= =A5|=B1=CB=A4=AD=A4J=C5=E3=A5=DC=A1A=BBP=AD=D3=A7O=AAo=A4=BD=A5q=AA=BA=C5= =E3=A5=DC=A4=E8=AAk=A5i=AF=E0=A6=B3=B2=A7=A1A=ADp=BA=E2=B5=B2=AAG=A5=E7=A6= ]=A6=D3=A5X=B2{=A8=C7=B7L=AEt=B6Z=A1C=20 </TD></TR> <TR> <TD class=3D"nothing" = valign=3D"top">4.</TD> <TD=20 = class=3D"nothing">=B0=A3=B2{=AA=F7=A1B=BFn=A4=C0/=C0u=B4f=CD=FC=A9=CE=ABH= =A5=CE=CD=FC=C0u=B4f=A5~=A1A=AAo=A4=BD=A5q=A9|=A6=B3=A8=E4=A5L=C0u=B4f=A5= i=A8=D1=BF=EF=BE=DC=A1A=B8=D4=B1=A1=BD=D0=B0=D1=BE\=AD=B6=AD=BA=A4=A7"=A4= =AD=B6=A1=AAo=A4=BD=A5q=C0u=B4f=AA=ED"=A1C=20 =20 = </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE> <SCRIPT>va2();</SCRIPT> <BR> <DIV align=3D"right"><INPUT = style=3D"padding: 3px; border: 0px outset rgb(204, 204, 204); color: = white; font-size: 12pt; font-weight: bold; background-color: rgb(255, = 96, 0);" type=3D"submit" value=3D" =ADp=BA=E2 ">=20 <INPUT style=3D"padding: = 3px; border: 0px outset rgb(204, 204, 204); color: white; font-size: = 12pt; font-weight: bold; background-color: rgb(255, 96, 0);" = onclick=3D"location=3D'graph.php';" type=3D"button" value=3D" = =AD=AB=B3] ">=20 =20 = </DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></FORM><A=20 = name=3D"#result"><BR><BR><B>=A5H=A4U=A6C=A5X=ADp=BA=E2=A9=D2=B1o=B5=B2=AA= G=A1G</B><BR></A> <SCRIPT = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries= /RGraph.common.core.js" type=3D"text/javascript"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries= /RGraph.common.effects.js" type=3D"text/javascript"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries= /RGraph.common.key.js" type=3D"text/javascript"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries= /RGraph.common.dynamic.js" type=3D"text/javascript"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries= /RGraph.common.tooltips.js" type=3D"text/javascript"></SCRIPT> =20 <SCRIPT = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries= /RGraph.bar.js" type=3D"text/javascript"></SCRIPT> <!--[if lt IE 9]><script = src=3D"./chart/RG/excanvas/excanvas.js"></script><![endif]-->=20 <SCRIPT language=3D"javascript" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/fc/JSClass/FusionC= harts.js"></SCRIPT> <CENTER> <TABLE width=3D"710" align=3D"center" border=3D"0"> <TBODY> <TR> <TD width=3D"10" align=3D"right" = class=3D"nothing"> =B4=E4<BR> =B9=F4<BR>$ </TD> <TD> <DIV><CANVAS width=3D"700" height=3D"200" = id=3D"cvs">[No=20 canvas support]</CANVAS></DIV> <SCRIPT>=0A= =0A= function goto_calc(e, shape)=0A= {=0A= var index =3D shape[5];=0A= var urls =3D ['#1','#2','#3','#4','#5'];=0A= =0A= if (urls[index] !=3D undefined)=0A= window.location =3D urls[index];=0A= }=0A= =0A= function set_cvs()=0A= {=0A= var bar =3D new RGraph.Bar('cvs', [[10.25,10.75,10.75,10.75,10.75]]);=0A= bar.Set('background.grid', true);=0A= bar.Set('background.grid.vlines', false);=0A= bar.Set('background.grid.autofit', true);=0A= bar.Set('background.grid.autofit.numhlines', 5);=0A= bar.Set('background.grid.autofit.align', true);=0A= bar.Set('background.grid.border', true);=0A= bar.Set('title', '=B9w=BA=E2=A4J=AAo=B6q(1 =A4=BD=A4=C9)');=0A= bar.Set('title.size', 9);=0A= bar.Set('title.bold', true);=0A= bar.Set('title.y', 20);=0A= bar.Set('noendxtick', true);=0A= bar.Set('noyaxis', true);=0A= bar.Set('ylabels.count', 5);=0A= bar.Set('yaxisboldfirst', true);=0A= bar.Set('yaxisboldlast', true);=0A= bar.Set('numxticks', 0);=0A= bar.Set('numyticks', 5);=0A= bar.Set('labels', = ['=AEJ=AF=C1','=A5[=BCw=A4h','=A4=A4=B0=EA=A5=DB=AAo','=B8=C3=B4=DF','=A4= =A4=A5=DB=A4=C6']);=0A= //bar.Set('labels.above', true);=0A= //bar.Set('labels.above.decimals', 2);=0A= //bar.Set('labels.above.size', 9);=0A= bar.Set('colors', = ['#F6BB00','#AFD9FA','#8DB900','#A471E0','#F885A3']);=0A= bar.Set('shadow', true);=0A= bar.Set('shadow.blur', 2);=0A= bar.Set('shadow.offsetx', 3);=0A= bar.Set('shadow.offsety', 0);=0A= bar.Set('gutter.left', 60);=0A= bar.Set('gutter.right', 5);=0A= bar.Set('gutter.bottom', 35);=0A= bar.Set('gutter.top', 50);=0A= bar.Set('tooltips', ['Esso - =A5=FD=A4O=AE=E3=AAo = (=BD=D0=AB=F6=A6=B9=B8=D4=BE\=C0u=B4f=B8=D4=B1=A1), 10.25','Caltex - = =A5[=BCw=A4h=AE=E3=AAo=AFS=B0tTechronR D = (=BD=D0=AB=F6=A6=B9=B8=D4=BE\=C0u=B4f=B8=D4=B1=A1), 10.75','Petrochina - = =A4O=ABl=AE=E3=AAo (=BD=D0=AB=F6=A6=B9=B8=D4=BE\=C0u=B4f=B8=D4=B1=A1), = 10.75','Shell - Shell =E1=C7=AAo=B0t=A4=E8=AE=E3=AAo = (=BD=D0=AB=F6=A6=B9=B8=D4=BE\=C0u=B4f=B8=D4=B1=A1), 10.75','Sinopec - = =A4=A4=A5=DB=A4=C6=AE=E3=AAo = (=BD=D0=AB=F6=A6=B9=B8=D4=BE\=C0u=B4f=B8=D4=B1=A1), 10.75']);=0A= bar.Set('tooltips.event', 'onmousemove');=0A= bar.Set('tooltips.highlight', false);=0A= bar.Set('tooltips.css.class', 'oiltooltips');=0A= bar.Set('text.font', 'Verdana, Arial, Helvetica, sans-serif');=0A= bar.Set('text.size', 8);=0A= bar.Set('ymax', 11);=0A= bar.Set('ymin', 10);=0A= bar.Set('scale.decimals', 2);=0A= bar.Set('hmargin.grouped', 38);=0A= bar.Set('events.click', goto_calc);=0A= RGraph.Effects.Bar.Grow(bar, {'frames': 60});=0A= }=0A= =0A= window.onload =3D function() {=0A= set_cvs();=0A= }=0A= =0A= </SCRIPT> </TD></TR></TBODY></TABLE> <TABLE width=3D"750" align=3D"center" border=3D"0" = cellspacing=3D"0"=20 cellpadding=3D"0"> <TBODY> <TR> <TD><FONT color=3D"#666666"=20 = size=3D"2">=A6p=ADp=BA=E2=A9=D2=B1o=AA=BA=B5=B2=AAG=AC=DB=A6P=A1A=A5H=AAo= =A4=BD=A5q=AD^=A4=E5=A6W=BA=D9=B1=C6=A7=C7=A1C=A6U=AAo=AF=B8=A6=EC=B8m=B8= =D4=B1=A1=A1A=A5i=AB=F6=A4U=AA=ED=AAo=AF=B8=B9=CF =20 </FONT><IMG width=3D"10" = align=3D"absmiddle" alt=3D"=AAo=AF=B8=B9=CF"=20 = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/images/gas2.gif"=20 border=3D"0"> = </TD></TR></TBODY></TABLE></CENTER> <TABLE width=3D"750" align=3D"center" border=3D"0" = cellspacing=3D"0"=20 cellpadding=3D"0"> <TBODY> <TR> <TH class=3D"oil">-</TH> <TH = class=3D"oil">=AAo=A4=BD=A5q/=B2=A3=AB~/=C0u=B4f=B1=F8=A5=F3</TH> <TH width=3D"80" = class=3D"oil">=A7=E9=BA=E2=AB=E1<BR>=C1`=A4=E4=A5I=C3B</TH> <TH width=3D"80" = class=3D"oil">=A7=E9=BA=E2=AB=E1<BR>=A5=AD=A7=A1=A8C=A4=BD=A4=C9=BB=F9</T= H> <TH = class=3D"oil"><NOBR>=A5i=C0=F2=B1o=BFn=A4=C0</NOBR><BR>(=A5=B2=B6=B7=A5X=A5= =DC=BFn=A4=C0=CD=FC)</TH></TR> <TR id=3D"row1"> <TH class=3D"spec" rowspan=3D"2">1</TH> <TD class=3D"oil"><A name=3D"1"><B>=AEJ=AF=C1 / = Esso</B></A><B> /=20 =A5=FD=A4O=AE=E3=AAo </B> <A = onclick=3D'openWin("map/index.php?map=3DEsso", 550,350);'=20 href=3D"javascript:;"><IMG width=3D"10" = alt=3D"=AAo=AF=B8=B9=CF" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/images/gas2.gif"=20 border=3D"0">=A5=B4=B6}=AAo=AF=B8=B9=CF</A><BR>- = =A5I=B4=DA=A4=E8=A6=A1=A1G=B2{=AA=F7(=A9=CE=ABH=A5=CE=CD=FC) <BR>- <FONT = = color=3D"#d200c1">=B4=A3=B4=A3=A7A=A1G</FONT>=B2{=AA=F7=A5i=A8=C9=A8C=A4=BD= =A4=C9=A7Y=B4=EEHK$2.5=A7=E9=A6=A9=C0u=B4f=A1C </TD> <TD class=3D"oil">$ 10.25</TD> <TD class=3D"oil">$ 10.25</TD> <TD class=3D"oil">-</TD></TR> <TR scope=3D"row"> <TH class=3D"specalt" colspan=3D"6"> <CENTER>(=A8C=A4=BD=A4=C9=B0=E2=BB=F9 $ 12.75 - = =A8C=A4=BD=A4=C9=A7=E9=A6=A9 $ 2.50) x 1.00=20 =A4=BD=A4=C9</CENTER></TH></TR> <TR id=3D"row2"> <TH class=3D"spec" rowspan=3D"2">2</TH> <TD class=3D"oil"><A name=3D"2"><B>=A5[=BCw=A4h / = Caltex</B></A><B> /=20 =A5[=BCw=A4h=AE=E3=AAo=AFS=B0tTechronR D</B> <A = onclick=3D'openWin("map/index.php?map=3DCaltex", 550,350);'=20 href=3D"javascript:;"><IMG width=3D"10" = alt=3D"=AAo=AF=B8=B9=CF" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/images/gas2.gif"=20 border=3D"0">=A5=B4=B6}=AAo=AF=B8=B9=CF</A><BR>- = =A5I=B4=DA=A4=E8=A6=A1=A1G=B2{=AA=F7(=A9=CE=ABH=A5=CE=CD=FC) <BR>- <FONT = = color=3D"#d200c1">=B4=A3=B4=A3=A7A=A1G</FONT>=B2{=AA=F7=CD=FC=C0u=B4f=A8C= =A4=BD=A4=C9HK$2.00 =A7=E9=A6=A9=20 = (=B2{=AA=F7=CD=FC=A5i=C0H=AE=C9=A9=F3=A5=F4=A6=F3=A5[=BCw=A4h=AAo=AF=B8=A5= =D3=BD=D0) </TD> <TD class=3D"oil">$ 10.75</TD> <TD class=3D"oil">$ 10.75</TD> <TD class=3D"oil">-</TD></TR> <TR scope=3D"row"> <TH class=3D"specalt" colspan=3D"6"> <CENTER>(=A8C=A4=BD=A4=C9=B0=E2=BB=F9 $ 12.75 - = =A8C=A4=BD=A4=C9=A7=E9=A6=A9 $ 2.00) x 1.00=20 =A4=BD=A4=C9</CENTER></TH></TR> <TR id=3D"row3"> <TH class=3D"spec" rowspan=3D"2">3</TH> <TD class=3D"oil"><A = name=3D"3"><B>=A4=A4=B0=EA=A5=DB=AAo /=20 Petrochina</B></A><B> / =A4O=ABl=AE=E3=AAo</B> = <A onclick=3D'openWin("map/index.php?map=3DPetrochina", 550,350);'=20 href=3D"javascript:;"><IMG width=3D"10" = alt=3D"=AAo=AF=B8=B9=CF" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/images/gas2.gif"=20 border=3D"0">=A5=B4=B6}=AAo=AF=B8=B9=CF</A><BR>- = =A5I=B4=DA=A4=E8=A6=A1=A1G=B2{=AA=F7(=A9=CE=ABH=A5=CE=CD=FC) <BR>- <FONT = = color=3D"#d200c1">=B4=A3=B4=A3=A7A=A1G</FONT>=AA=F9=A5=AB=A7=E9=A6=A9=A5i= =A8=C9=A8C=A4=BD=A4=C9 HK$2.00 </TD> <TD class=3D"oil">$ 10.75</TD> <TD class=3D"oil">$ 10.75</TD> <TD class=3D"oil">-</TD></TR> <TR scope=3D"row"> <TH class=3D"specalt" colspan=3D"6"> <CENTER>(=A8C=A4=BD=A4=C9=B0=E2=BB=F9 $ 12.75 - = =A8C=A4=BD=A4=C9=A7=E9=A6=A9 $ 2.00) x 1.00=20 =A4=BD=A4=C9</CENTER></TH></TR> <TR id=3D"row4"> <TH class=3D"spec" rowspan=3D"2">4</TH> <TD class=3D"oil"><A name=3D"4"><B>=B8=C3=B4=DF / = Shell</B></A><B> /=20 Shell =E1=C7=AAo=B0t=A4=E8=AE=E3=AAo </B> <A = onclick=3D'openWin("map/index.php?map=3DShell", 550,350);'=20 href=3D"javascript:;"><IMG width=3D"10" = alt=3D"=AAo=AF=B8=B9=CF" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/images/gas2.gif"=20 border=3D"0">=A5=B4=B6}=AAo=AF=B8=B9=CF</A><BR>- = =A5I=B4=DA=A4=E8=A6=A1=A1G=B2{=AA=F7(=A9=CE=ABH=A5=CE=CD=FC) <BR>- <FONT = = color=3D"#d200c1">=B4=A3=B4=A3=A7A=A1G</FONT>=A9=D2=A6=B3=B2{=AA=F7=A4=CE= =ABH=A5=CE=A5d=AB=C8=A4=E1=A7=A1=A5i=A8=C9=A8C=A4=BD=A4=C9HK$2.00=A7=E9=A6= =A9=C0u=B4f<BR>(=BB=DD=A6P=AE=C9=A5X=A5=DCShell=20 FuelSave = =AE=E3=AAo=CD=FC=A1A=A5i=A7K=B6O=A6b=A5=FE=BDu=AAo=AF=B8=A7Y=AE=C9=A5=D3=BD= =D0) </TD> <TD class=3D"oil">$ 10.75</TD> <TD class=3D"oil">$ 10.75</TD> <TD class=3D"oil">-</TD></TR> <TR scope=3D"row"> <TH class=3D"specalt" colspan=3D"6"> <CENTER>(=A8C=A4=BD=A4=C9=B0=E2=BB=F9 $ 12.75 - = =A8C=A4=BD=A4=C9=A7=E9=A6=A9 $ 2.00) x 1.00=20 =A4=BD=A4=C9</CENTER></TH></TR> <TR id=3D"row5"> <TH class=3D"spec" rowspan=3D"2">5</TH> <TD class=3D"oil"><A = name=3D"5"><B>=A4=A4=A5=DB=A4=C6 / Sinopec</B></A><B>=20 / =A4=A4=A5=DB=A4=C6=AE=E3=AAo</B> <A = onclick=3D'openWin("map/index.php?map=3DSinopec", 550,350);'=20 href=3D"javascript:;"><IMG width=3D"10" = alt=3D"=AAo=AF=B8=B9=CF" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/images/gas2.gif"=20 border=3D"0">=A5=B4=B6}=AAo=AF=B8=B9=CF</A><BR>- = =A5I=B4=DA=A4=E8=A6=A1=A1G=B2{=AA=F7(=A9=CE=ABH=A5=CE=CD=FC) <BR>- <FONT = = color=3D"#d200c1">=B4=A3=B4=A3=A7A=A1G</FONT>=A7=E9=A6=A9=A8C=A4=BD=A4=C9= HK$2.0 </TD> <TD class=3D"oil">$ 10.75</TD> <TD class=3D"oil">$ 10.75</TD> <TD class=3D"oil">-</TD></TR> <TR scope=3D"row"> <TH class=3D"specalt" colspan=3D"6"> <CENTER>(=A8C=A4=BD=A4=C9=B0=E2=BB=F9 $ 12.75 - = =A8C=A4=BD=A4=C9=A7=E9=A6=A9 $ 2.00) x 1.00=20 =A4=BD=A4=C9</CENTER></TH></TR></TBODY></TABLE> <SCRIPT>=0A= var TotalCount =3D 6 -1;=0A= </SCRIPT> =20 <TR> <TD valign=3D"top"><BR> <TABLE width=3D"100%"> <TBODY> <TR> <TD align=3D"left">=A8=E4=A5L=B8=EA=AE=C6=A1G <P>- <A = href=3D"http://www.enb.gov.hk/tc/about_us/policy_responsibilities/financi= al_monitoring.html#monitor3"=20 = target=3D"poplink">=A8=AE=A5=CE=BFU=AAo=B9s=B0=E2=BB=F9=AE=E6=AA=BA=BA=CA= =B9=EE</A> <FONT=20 = size=3D"2">(=AD=BB=B4=E4=AFS=A7O=A6=E6=ACF=B0=CF=ACF=A9=B2=A1=D0=C0=F4=B9= =D2=A7=BD)</FONT></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>= </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></P></DIV><!-- = Footer Start -->=20 <DIV class=3D"main-container container"> <DIV class=3D"clearfix"></DIV> <HR class=3D"hidden-xs hidden-sm footer-hr"> =20 <DIV class=3D"col-md-12 hidden-xs hidden-sm"> <DIV id=3D"botMenu"> <DIV class=3D"region region-footer"><SECTION class=3D"block block-block = clearfix"=20 id=3D"block-block-32"> <UL class=3D"menu nav"> <LI class=3D"first expanded"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/profile/mission/mission.html">= =C3=F6=A9=F3=A7=DA=AD=CC</A> <UL class=3D"menu nav"> <LI class=3D"first leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/contactus">=C1p=B5=B8=A7=DA=AD= =CC</A></LI> <LI class=3D"leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/archives">=C0=C9=AE=D7=AEw</A>= </LI> <LI class=3D"last leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/sitemap">=BA=F4=AD=B6=A6a=B9=CF= </A></LI></UL></LI> <LI class=3D"expanded"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/news/articles/list">=B3=CC=B7s= =B8=EA=B0T</A> <UL class=3D"menu nav"> <LI class=3D"first leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/news/articles/list">=A4=E5=B3=B9= </A></LI> <LI class=3D"last leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/news/events">=AC=A1=B0=CA</A><= /LI></UL></LI> <LI class=3D"expanded"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/shopping-guide">=AE=F8=B6O=AB=FC= =ABn</A> <UL class=3D"menu nav"> <LI class=3D"first leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/choice-article/list">=BF=EF=BE= =DC=A4=EB=A5Z</A></LI> <LI class=3D"leaf"><A title=3D"" = href=3D"http://www3.consumer.org.hk/pricewatch/supermarket/"=20 target=3D"_blank">=BA=F4=A4W=AE=E6=BB=F9=A4@=C4=FD=B3q</A></LI> <LI class=3D"last leaf"><A title=3D"" = href=3D"http://www.consumer.org.hk/pricewatch/oilwatch/index.php"=20 target=3D"_blank">=AAo=BB=F9=ADp=BA=E2=BE=F7</A></LI></UL></LI> <LI class=3D"expanded"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/complaint/reports">=A7=EB=B6D=A4= =CE=ABO=BB=D9</A> <UL class=3D"menu nav"> <LI class=3D"first leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/complaints_and_advices/how_to_= complain/howtocomplain.html">=A7=EB=B6D=B3~=AE|</A></LI> <LI class=3D"leaf"><A title=3D""=20 = href=3D"https://www.consumer.org.hk/ws_chi/faq">=B1`=A8=A3=B0=DD=C3D</A><= /LI> <LI class=3D"last leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/complaint/reports">=A7=EB=B6D=B9= =EA=BF=FD</A></LI></UL></LI> <LI class=3D"last expanded"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/competition_issues/policy_posi= tion/list">=ACF=B5=A6=A4=CE=AC=E3=A8s</A> <UL class=3D"menu nav"> <LI class=3D"first leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/competition_issues/policy_posi= tion/list">=B7N=A8=A3=AE=D1</A></LI> <LI class=3D"last leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/competition_issues/reports/lis= t">=AC=E3=A8s=B3=F8=A7i</A></LI></UL></LI></UL> <UL class=3D"menu nav"> <LI class=3D"first last expanded"><A title=3D"views gen" = class=3D"restricted" = href=3D"https://www.consumer.org.hk/ws_chi/news/press_releases/list">=B6=C7= =B4C=B1M=B0=CF</A> <UL class=3D"menu nav"> <LI class=3D"first collapsed"><A title=3D"" class=3D"restricted" = href=3D"https://www.consumer.org.hk/ws_chi/news/press_releases/list">=B7s= =BBD=BDZ</A></LI> <LI class=3D"collapsed"><A title=3D"" class=3D"restricted" = href=3D"https://www.consumer.org.hk/ws_chi/media/videos">=A6h=B4C=C5=E9=AE= w</A></LI> <LI class=3D"last leaf"><A class=3D"restricted" = href=3D"https://www.consumer.org.hk/ws_chi/media/statistics/complaints">=A7= =EB=B6D=BC=C6=A6r</A></LI></UL></LI></UL></SECTION><!-- /.block -->=20 </DIV></DIV></DIV><FOOTER class=3D"footer"> <DIV class=3D"container nopadding"> <DIV class=3D"row"> <DIV class=3D"col-md-8 col-sm-12 hidden-xs hidden-sm nopadding-left"> <DIV class=3D"region region-footer-one"><SECTION class=3D"block = block-menu clearfix"=20 id=3D"block-menu-menu-footer-link"> <DIV class=3D"block-title">Footer Link</DIV> <UL class=3D"menu nav"> <LI class=3D"first leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/archives">=C0=C9=AE=D7=AEw</A>= </LI> <LI class=3D"leaf"><A title=3D""=20 = href=3D"https://www.consumer.org.hk/ws_chi/sitemap">=BA=F4=AD=B6=A6a=B9=CF= </A></LI> <LI class=3D"leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/others/copyright/copyright.htm= l">=AA=A9=C5v=A9M=A7K=B3d=C1n=A9=FA</A></LI> <LI class=3D"leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/profile/codeonaccess/index.htm= l">=A4=BD=B6}=B8=EA=AE=C6=A6u=ABh</A></LI> <LI class=3D"leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/others/privacy_policy/pps.html= ">=A8p=C1=F4=ACF=B5=A6</A></LI> <LI class=3D"last leaf"><A title=3D"" = href=3D"https://www.consumer.org.hk/ws_chi/accessibility">=B5L=BB=D9=C3=AA= =C1n=A9=FA</A></LI></UL></SECTION>=20 <!-- /.block --> </DIV></DIV> <DIV class=3D"col-md-4 col-sm-12 text-right nopadding"> <DIV class=3D"region region-footer-two"><SECTION class=3D"block = block-block clearfix"=20 id=3D"block-block-25"> <P class=3D"copyright">=AA=A9=C5v=A9=D2=A6=B3 (C) 2015 = =AE=F8=B6O=AA=CC=A9e=AD=FB=B7|=A1A=A8=C3=ABO=AFd=A4@=A4=C1=C5v=A7Q=A1C</P= ></SECTION><!-- /.block -->=20 </DIV></DIV></DIV></DIV></FOOTER></DIV> <SCRIPT = src=3D"https://www.consumer.org.hk/www2015/files/bootstrap.js"></SCRIPT> <!-- Footer End -->=20 <SCRIPT language=3D"JavaScript" = src=3D"https://www.consumer.org.hk/pricewatch/oilwatch/HM_Loader_arrayUni= code.js" type=3D"text/javascript"></SCRIPT> </BODY></HTML> ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/www2015/files/logo.png iVBORw0KGgoAAAANSUhEUgAAAQ4AAAA3CAYAAAD9s6R0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1 NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJ RD0ieG1wLmlpZDpBNkM1NEE4QjM3NUUxMUU1QjUwRjhGMzk3REE4RjJFOSIgeG1wTU06RG9jdW1l bnRJRD0ieG1wLmRpZDpBNkM1NEE4QzM3NUUxMUU1QjUwRjhGMzk3REE4RjJFOSI+IDx4bXBNTTpE ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE2QzU0QTg5Mzc1RTExRTVCNTBG OEYzOTdEQThGMkU5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE2QzU0QThBMzc1RTExRTVC NTBGOEYzOTdEQThGMkU5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBt ZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+RNYGdAAAGbdJREFUeNrsnQd8VFX2x+9MQkJCFxBQpIiy CjYQQarYEdeyWFnL6t/G33V3QWHXgmvBhru2v679Lwqsrii6YpQi+gdFbCgCYgEERVAgkRSSEEKS +d+TfB9z8+a1SQayyDt8zifDmzdvbjn3d37n3DKRWCymQgkllFCSkWjYBKGEEkoIHKGEEkoIHKGE EkoIHKGEEkoIHKGEEkoIHKGEEkooIXCEEkooIXCEEkoo/xGS7vbGMU8Ntl8apvVXWgu0buJvidYt Wku1FmvdqrVqN2uDNK1NtDblbzP+ttHaltf/0vpTAupmRlXxZ8Xq5xfzql87SGOtPbV+6vH98h1z tD6p9bF61mWR1rlar+f/z9BnQ7VuT1F73a11iNbhWgtt70lblWmtDPCcbMNWpA8yaK8M+qCd1s5a D9J6tNZZWu/VWhGwnMdpfSCgc/wfrU/Vs12O0Pqo1ilaH9e626+sXPXdmuSBw0HO03oJANHUuF6C sZRiSAIkRbyWv7m8LjD+Wq+38jlL6wo6UQzR1BZaW/G3JdoKQGjO9ebGazHaLP5aks9n3nMCjpj+ V76uXEXcTUQG7WytH2q9WutarR0YAKO1/sz3idHlGZ97WusXWh/0Af3ntXZhoEa09tLaXutg/n8I bTqfNorR5lKWr+vY1h357kKH96YbtlLo85yLtN5O+dJ4Zrox4MrQH7V+o3VvrV21rgxYTgHkw7SO pCwRl/smaz2wnmPsFK0vUI+HtM7T+tUeyTgcJIbnHIYHO1PrsVr3wdO01rpfEs/bbgBOGQCUTyeb mgdYxQCEtgYYmKDQlIFvaXod22SZ1plaX+EZ/+cKaPpq9qHZqviTLTWlSzTNJXi+SVoXa/011wbC Csbx7O3Gd3TTeqnWM3zKKfdP09oI4JC//9D6bwxX8Xwx5vspXSetfwcMg8g5Wg83vLz8PZS+vhkw igKA0vcna32YfvIDDmFYGymfZQfbtL6h9TmtNwBydZUYNjXNxyFtrIfDkjqPx6EKa7lH6220/19h MVV7OnBYlFIG8suoDNj+Wk/VeqLW7kk8qxHaLMC9YkDlAEWqpYpB/abWHMDRotr9qLOjRNIiqny9 LtZ2baMZbg5NLaWN7mPwygC5SetUBnqJYegyCCcCLjk+5RamdJbW72kbqz33Y3BHaK8onlfBRpLJ bR2Gc7CMv5JnCDCfwHdswZEIWFwHSHlJhPbIZtCa1y1wErs6UmumrazyernWdQFZaBMY3zYXxiFt 3kPr60najHxmFAAvjOh8ra8xnkbjfG7RegX9/irguMcCh10K8M4zodxHASLD8FSpkP/VOpYBdj2I HkkBWHzK4MwBOGIu4Ob4XZFoRFUUVqgt7xdVv3Yxrr20LmBg/8F4T2jtNVDkeXz3FuJ7Ad8xAepw AAb7EuFgRwZjKawsxvOiMIQIzGZiEjT6ZtQUK29yjBGWDIUh3B/Q5u6i/CYgFfFcAYvfAUyFMMmI 4bgEdJ8N8D3CFP+bNvGylze5N0jocyX23QsAyyEc/DNhV4R2t8LwzVrv1DqB3NP8XwqIJAMc5T6J qTJyAe9B344ggSbxX2+MOFlZR+f3Jlk2gef1r8Ozykke5gB0nwf4zDb+lrqSYW36sSpHyxwOyM0F +MzYvBeDTDzixbTNyXjyuxggTQnR3OR0Bt7L5F+GcS0HTx7je9IIu9KMUvfR+gFgVVebicAw7qG/ 70kiRB1OeaxwtTVAei11SsfWbiJ0ieGYogHDlwxCvuVGbseN/cQAhfWAl5tIefrSZn8EbDKxzTTK XUnZLZBeTJ+eBCPfYuSBdmuJuG2rt82qtKUDu+FpvqgDtTsJtD7allz1EunMznROW7zDwiSAo4zE pAymWRhSMjIesBrjlKiMNNKhytpylTtlk6oqrar+v016E/v2JhloGc0C2FmuMRgyMbhG1PUogM5J WlOXMtpoH5Kk68gTWYa8P/evNq41ph8PJ4xyAobpeP9KB6bWgYH5kxGaLqDcjdEvyI/4zSxISDKC 9m0MED1I6BDDaUjf3e3RFm65hxWw1M0e4abVHh1hTfMDMr23eGYFDqmSNmkCOFg5p6hxn4R8P+xO 4FDfWRUZ6P/ECAvowMuJ0YPKl6gYRVdoqHjHQRiPm+RA9z/h/22gqUd6MJhSvOlrxLcr6tBmkht4 ROuFWjeommm9nnjEHV46tj2mMrtmqrYX761yJzuCx2eqZoZjPAPa9IhTiYGjNkPuy0CM+DChMbTp /sTTS0nE/mzcNwkDvtC4dhB9WOwxmJ6h3WPGtTIGwXH0/yaSgoWUZR/CoDwGrBtoDAIUxQMPADSf JmlbCBMrJLmYA9X/iNBS2ux9gDDfJzEq7XoBNuAlnWCD0SRsowvlPw0guRLgmUL4uBpbTydBmoOd 71bAUZ9Q5Rqy5BsY7KvIhk/B649zpfHusobGFN2XBv81TKaDYaijGHjvqPg0Yju80vEYUWfuL7aB xap6tImA0mRY0p3U/yrCjr4MlsU7RllZlcrsXAMeeVNzVWVpZXXS1GbEExwMO5MEZ5pt0AZhY8Ww krdhH4pcx19sgJoFAD0IDd+PfitSDtPLRhlec0mUjqPtHyA02WSEgdeRx7nDJ7E7EFB4n0TiK0aI sBdhpPX9c1EBq8toRwGVM32Aw0qo3wvYRz3q2lTFZ6aSyZGtxQZn0x/f8owVgPcg+mNlks/e7YFj EoNkOgCygevDSFLexSA7l0asi6yHzYi2wjtL/DuD/79Lh9wJpRxOTH8fr68mgy2d910K2uMc6p2L R5nL9dvJ3TxDmS4xY9WqbRo8umSq1he0UbnPbHKbmpWB9THP2UK7DbMZdcyguH7GNhPvfhb5pLmq 9hoUkW94poDTjTCBFSRnvXIFEYCtOyHmOYCmxXYGktRNN4AsDfZzFm3j9vyJAE+5w3sCRr+BcZmL 5t5BrUViRQFteyHOx83OK2FK/ZJIuEfon5dh4C1xWtv5nhkAdjvGzXUeodIvEjgugT6Oc/CWEnN+ jbfoVw/gMCWfRp+BYY3munTSi7w+1RiEA4iPN6SwPS7Gi/ZVtRdkWVn6o8gtXJWQ5KqqCV1iVTEV iSTYYAfA73KAowkD/w4HxtED6u5HnVeiA/Bu3fhMxKG/rAVis1Xt2R0nkYH5KKFkawC5iITr1ZQx 08EDn8+AGeGT25AZkzOMslpTuk24vglGcQGDsYT3rIRpGbaR61MPef4SFV/T4iZdKX/QUGUFbdOB +k412kPKlm0w5MZc2wDT3iOAoxS0dpMFUMpUx20nGqAh0gxKX2TQcgXl/ivGnCoppz55Lu/nwTpK EtxQekSVLitVsXINHI0TgONvPPclo91/MHI3dgBVSXjATIx0tcdnTEMOklCeRB1zAMyrcCCv+OQK +hjJQK8wK99gVAWwx54woR/p783ktC4irFkC4yhTwZadl8EUx3mAgjVlnUyoUkTyVhzHoS7Mycxl fQ673GMYh3LwLKbk4hlSLUNs/28CihepxMViR2MUVbuwTW5IcG2No6pkWYkq/bzEac/KcXjP01V8 ereYtuvsEKq0TLJOVbTPoS6AY3n/7CSeaU2rm20iC7/e5BkRhzIcRL38AG+6ja3JbMN/Mchvcbh3 Bc4k2VWk2QzYGR59WkU4tqQO4YTMSr1FHsVtcdkN1E/tacDREDLYATisJJ995WgP4upVDVXYSKZm GstL1c8v5NWEKbUTo3uRaJ2laq9OTMOjLncAjvYAYlDGkQbVf9cnVDmxHrG2tS7hKxfPXKXi+4CS kVGERVZ+6WDASfIbf4JVHlMH0IjCIu4m5E4nCWquZSmmTu1hBskuKiwhTPyLC6Opoh+3hMCx86W9 Slxx2hgvnA6FtTOioxsKOGTqdduabSrv+dxqU7SBhrAj2YQmsx+/t300i1DveofHdtH62yQM2RoU B6v4Zr+oLUTZDgDXVRoRpl3ncc8YFWzFqymbyYlISDxU1SRGJxnvT1F129W7FkYnbSJrQWSdxq3G IJZ2uZlwRmYJZWPawjqMnZXkUNwYR0cVn/kLgWMnSm/lvK6jJQPRaV/LUJXcmpLUAUc0Ur12Q6Zk 07ISnLmAgqwGvZL8g3IARFNkaroboU16EsDxCHH2rfx/vIpPkceg/y2h/a/UsaoV5Jf+7JJfEO86 TAVfSr0fXl7AswN0vj8MMhfwKCfEW0XY9ISqOX5gs489t8OOhpE7aUHdJ9vycS0IkaR/5tMfwnS+ V8Fmbaz8SDOXvrJWwMZC4Nj5MsTlekvYhlPOpT8dWL6rCyvTsFkHZalWp7RSBbMLavIbcROaxKB4 1sWDpzswjfkYnMTO3/p8veQ0zofKi2eT6UE5B+Jt233iSUdyn6xilYTyq8TmQY26koF1torP0Njf 75YELZeyT6PfpAySLJW1MbLeRBLuP3KfhBoyHSzTmpI4vc0ASCcR8J1Ne0ji+T7lnsCXGa2HARhp x/vpl1MJ+/xCt3TqYa0SdQJbSfhaW/pjIXDsPBnkARzNXMp7ILq8IQocq4ypFie0rLaNwrkF5srR VXg0J7lcJc7MfEjYla+CrXYtJ4ciA2qmC6sR+RiVQdqHgbg0SUN+AUBa5nGPRcuDzHi8STmEpslU 5TqXPIYwp3+jPQxAcZPvCXfyVbBpehnUL6KtAJ4g2yli9O0PyntWsRPP/MWxjvoAR0fo4wSMvr6y j4rPDNillXLffi9oP3AXAsf90OU7LBMS5tHihBaqfN02tfXLrdUJUx9Z5OLVP0qiHN8QvweVctjH wjrUeaOqvQXeSdapYNvdTSaUjHwZ8L66HqCTr/xXoyZb/rUqNWuc/uMk6kPH/JaTD2fAp0L6qMTk pyVt8a5uckyq0hYBPOYQZd9kxy7ZZoOa/4Kj2lBCCcY4ZBCdC92KuAxmy1PuzPyGFars6/G+UPws Vb8ToywIkHn9sco7U/5dQr6jvEpl7p+psg/JVqVLSlUkIxJaVyh7JHAsZUC65R0kiScJvKIUlCNK uOEmwja81gh0Jgb+tJ7lWA3zGetxjyziWuMEs7J61GFrfSih7FHAMUgFmxKsSEE5OnrkN6wchxdw pFHe+gKHrPQb7xNsRBJYVqTmxPOieUWqZHGJF3ikU9ZtSQBqI5/7k32mm2Sm4BmWNCWn4jXTlaXi Z1k0pEi9zTNf/cSaCUrVqfFp9HGqTgVLdfmSznFsNzrfS1Ox3Fs2j3ktULJOLPeSoSkoRwWDx6u+ 22qBpQUa84tUQc7mmg1uibghO0ZlJmEVbEUA7mYj3LOLrEiUtSnfEBZJYlCmDg92MTyZZvU7KFrW NrzmEPLJWhNZTyEzErL0+jLb+5I/kunbdi4AIT8dYd96ILmvs33Kc5NDmcfSTvMMlSnqO4x7ZHGc tYdG1qXIvqbWSfazTB3LVO0y+kP6ZZqHDcnzZYXox9wvTFt2I490ca5yfTLg6OQkpR/6GY7oAeV/ Xu8hfK6bi2OV8n1E+YQ5v01bmVPF/XhGR+OabHp8NJXAsStliM/7QU5QF/BptktLvYNpFKr8NzRo ZETtLSrJXplKfAmAFQORtQifwW5m2QxPXsuOZNnUJVPMk2BAMkBOxND/5BA69ccgvMBVBv7ptjY6 mTLI8utbVc1MgezMvd0WBp7pAuwZ5MHsRt/ToZymSEJ9lEpMrA8BNFcyACw1Z3TkCIFTuZ5GWWXA dA3Ya5eomhk42Ykrp9rJuhY517YLYHSyA/P+nP76nO+TPioB3GW7fwfbZ3rgLJyW+DdX8d21lrPq BRi28xkD8jn7Asn+tvLdRvmEwchxFdfbQOt0VfvMl34AfcpClV0pgwIAh98+i33xyB/vMtzQIYmE J/lv5qtoRtTuezIY8L2onzl99wQDdRReyZq9EuYgi50uUomrYeV+Wbn5IGzQ9BKFfIcY3ykueacK tWP+Z4fcyKAbZlwT0NpsY55uVN7a82EPSQRI+sJynHZYX0ifHqgSpzWl/67waPYY7MhaI9OJfNyN Pp8TOQ8wnkh7muGBdexBmg2kBBhm8p65lV/66kj6eDYD2FqbU67iP+nhlBu0h/hFDGD5nhOU8+rY Sttfi4W8TRmlPTYZ7z2EsznAIa1g9mWZctjtvTswjlPoIOUTqgT5zZYrdlWhZUds6dKSaqYRbRR1 IqyyxuJ4PJjTnP96Fd8vIXIsoPE75byEXjpdDk+6F6PtYssXzMGjCHhkB6xGG5WY6J1KuFCfmP1g ow3sIitQr+L14Q6g4OcgrHssp7eWuvvZkPyg05MAx/UuOYWnjbqnw0QElEYo5/M/JOQ8jvreVI82 k/57FzY4S7kvS7CP3acIm35jAw1LZAXyYzvF/hsYNP4IYks8KOdcfKGcf8gn4mJQZeQAZoKwI4m5 W+zMQstmtorN21XBrILqmRSHVhS2cS318jtk10L/MYQik33un4CHuNyW4PsKb9WL8CgzQFVkE975 xLkZKWqeDoD8Ejy8Pacywni/TwCbdJsWr7CFU34L1M4n3LoxYD0GwJjG+iRwZeDKosCr6xEqZwDg xxNyvaH8NyUKozua8m3f1QO3oUKVLJJ9koj7hEHWHIPqiiF0wCNmqfjW+nXE9Pkg7Do8zjo6sIoB uD+JoZ2ya1ZClC0fFquKvAoVzXLE3i5Q6FeTMJx+KtjvlxaTMBxqG0jNyA0ci/d6GU/kNes1EZB9 CBB/GAAvrkfzdCcOH0luRzaR3WJLgM6EJdxJua09LiWETV8ZAGId+HuPUddGhDnNYZl9HXITdjme MCjoiXGDsLMgq3lnEEYepJwPZ/KTGHmHtfTfe4D/acp9tmUwTvaDhhjADQEc3TFOa93GARiGGNJi ElSllM06J+FAPve8EedVASZtoLxy0tNJRqJ0HsA0O6WgkS5so0KVfFrstbTc8jw/B3xsY8BxY8D7 N9piV1MWwTzmGYzCbearAoOX7eujyZ9cA+guqmMT9aL/pB+fwxNP5NpA3h9NH7YA5JfwWQGEH7GP iGGjH9uSwe1JcMozvqGOc3zKJWuB8pKoR0sV/2ElP7FYcqt6mJaVD/mC8McC/xHKeVq7NYC7dU8A juHEje2Na9LYZ6FiyKsxhm/JA2zAe8tAKeCz7WEm3bne1CVZOoOB8FRqUENVH9ZTODtfVRZX1iRE nWWzwTzeC/Bk63dzg/748YG0jZssJHf0Fu19qQ/zWAbIyhGH1gldh5K0i9gM26Vldkgf+k7o8yOE QWcBTnKexwoGRUee2dMAjkxY0988viuT588hHyReOcjxlQJIPZLobbm/Hfbpt4fFmt78ySO8UgHa 0ZLFJDbnA/5nO4Qj63GaLZX/+au7dY7jRgZyex8g644xjMaApkBpxfhll6ZMacqc9bkkxJr6hADW QS31BslIZlSVLCpRxZ8Ue4GGyPcMxksCPrqSQX5ugNxEJ2jqGz73Sbb9dMpwL57ab83N1yQuOxmJ ywrlfLKYCRpmDuAIFf/5CAGJ1wGPLoROEw3WtB52aA4qv36yThkfS37rnwHtWMohsxCHBeyTd2C0 pwW491LAa4XRn1EfkPXriw8Jv0aQ4Ky0feZtmOqZqgFkVwBHSzr3TtVwx8RbSdh2dQYNObRHs4zi D4qczhV1SnjeCuW81AfYrAU6f6d8d/s8+wko9+QAxc7BW43juaW2GH6GA722aLHl4dbSb11dWF1T gFJkb+5bZMujyIB9llzUv4znS7hxZB2TiVKXCwDRIAnP6Sr+u0Be4GwlJZeSZ3hAee+TOhXAv0PF V96ugQ042dsBBmPwk3k8fxQJWDPfIYsCp3Hdaw1L090ROA4n1v2tang5jY44rE7A0Siitn61VZVv 0PaeHmg/yitQ9WfII9g78BTuSTcMQfIBY/AwezuEJ2+QPLxQeZ+EZR8w0v6yuCrboMpbaJO/2ozs Lgx/iUGbl8LaOhn3tqN+P6j4jzZ3Y1Cav8v7PgnGY0i+ltryMQer2issg1B5i5nI98g0qMw0+f0s 6FYSttbaB/sWB0nGy1TtGca1UYTHC1XiocPZ9FcO4YQZDs8hv/WIqr2r+wCA6EMV/BiImbCOwSrx wOnfA+wLCG3seTbp2/EBGFzS+7l3Vo4jA4r8uKr/L8unUqyfPxyFxw6+zyZSc+5Gkk38B+LeCcT3 H2HAhxBvT7Ultx4j0SZJSlkE9gGUXmaZ+kHNj1WJvxVinQTvJi/w/uNGny/B8P6hamZoVjL4mhDi bDWSkedB9b+GwldSDutX1awFZ9ZB0/bZrMdgFs85xPJtGFDLsJXjeJ1m2OgcclUKkDFBWGZb5JcA ZeVsb+V9JsgiyigA8RlJ1+8AwQHU42Hj/o20zePUeznJyyxCLAm77yN0Ni3D+qGsabTFfAD1ePJ3 I22210R5T7++Cvg/p2pPm+dRvidpo2U4oCbYi7B9c22TxW7tzL8n9YoYoWC+FxgH/dHpZEXml69V /r9w31AJ4TQMbklg3NAso/zHcrXp6Y3OPxDgLV0xpP4M4OXQ4AUu97chHyBG0VbFFzm9rpyz6Jdi 5H4Lt66CAZinXA0gydiFgfWkEXqY0hymY52WPg/wNWcqTqauT9o8Y2u8pj1JLQP2YpjXtwDWIar2 /ooIgGWFOAJYv7J9Rycc1SwVbOVwOiHAcOqdR32mezC5IZSvJ2D6kYr/fIObtKd+g/nMHMJ2+0rN C7nmN31/GTbrNOM1EBDvqeI/ti6zMqttrPVMWLA14ydg1tcGSNVn8az6bs29SQNHKKGEEkpDJkdD CSWUEDhCCSWUEDhCCSWUUELgCCWUUELgCCWUUELgCCWUUELgCCWUUELgCCWUUEIJgSOUUELZCfL/ AgwAJdHiGOj0qDUAAAAASUVORK5CYII= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/png Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/icon_search.png =89PNG =1A=0A= =00=00=00=0DIHDR=00=00=00=19=00=00=00=19=08=06=00=00=00=C4=E9=85c=00=00=00= pHYs=00=00=0B=13=00=00=0B=13=01=00=9A=9C=18=00=00=0A= OiCCPPhotoshop ICC = profile=00=00x=DA=9DSgTS=E9=16=3D=F7=DE=F4BK=88=80=94KoR=15=08 = RB=8B=80=14=91&*! = =10J=88!=A1=D9=15Q=C1=11EE=04=1B=C8=A0=88=03=8E=8E=80=8C=15Q,=0C=8A=0A= =D8=07=E4!=A2=8E=83=A3=88=8A=CA=FB=E1{=A3k=D6=BC=F7=E6=CD=FE=B5=D7>=E7=AC= =F3=9D=B3=CF=07=C0=08=0C=96H3Q5=80=0C=A9B=1E=11=E0=83=C7=C4=C6=E1=E4.@=81=0A= $p=00=10=08=B3d!s=FD#=01=00=F8~<<+"=C0=07=BE=00=01x=D3=0B=08=00=C0M=9B=C0= 0=1C=87=FF=0F=EAB=99\=01=80=84=01=C0t=918K=08=80=14=00@z=8EB=A6=00@F=01=80= =9D=98&S=00=A0=04=00`=CBcb=E3=00P-=00`'=7F=E6=D3=00=80=9D=F8=99{=01=00[=94= !=15=01=A0=91=00 = =13e=88D=00h;=00=AC=CFV=8AE=00X0=00=14fK=C49=00=D8-=000IWfH=00=B0=B7=00=C0= =CE=10=0B=B2=00=08=0C=000Q=88=85)=00=04{=00`=C8##x=00=84=99=00=14F=F2W<=F1= +=AE=10=E7*=00=00x=99=B2<=B9$9E=81[=08-q=07WW.=1E(=CEI=17+=146a=02a=9A@.=C2= y=99=192=814=0F=E0=F3=CC=00=00=A0=91=15=11=E0=83=F3=FDx=CE=0E=AE=CE=CE6=8E= =B6=0E_-=EA=BF=06=FF"bb=E3=FE=E5=CF=ABp@=00=00=E1t~=D1=FE,/=B3=1A=80;=06=80= m=FE=A2%=EE=04h^=0B=A0u=F7=8Bf=B2=0F@=B5=00=A0=E9=DAW=F3p=F8~<<E=A1=90=B9= =D9=D9=E5=E4=E4=D8J=C4B[a=CAW}=FEg=C2_=C0W=FDl=F9~<=FC=F7=F5=E0=BE=E2$=81= 2]=81G=04=F8=E0=C2=CC=F4L=A5=1C=CF=92 = =84b=DC=E6=8FG=FC=B7=0B=FF=FC=1D=D3"=C4Ib=B9X*=14=E3Q=12q=8ED=9A=8C=F32=A5= "=89B=92)=C5%=D2=FFd=E2=DF,=FB=03>=DF5=00=B0j>=01{=91-=A8]c=03=F6K'=10Xt=C0= =E2=F7=00=00=F2=BBo=C1=D4(=08=03=80h=83=E1=CFw=FF=EF?=FDG=A0%=00=80fI=92q= =00=00^D$.T=CA=B3?=C7=08=00=00D=A0=81*=B0A=1B=F4=C1=18,=C0=06=1C=C1=05=DC= =C1=0B=FC`6=84B$=C4=C2B=10B=0A= d=80=1Cr`)=AC=82B(=86=CD=B0=1D*`/=D4@=1D4=C0Qh=86=93p=0E.=C2U=B8=0E=3Dp=0F= =FAa=08=9E=C1(=BC=81 = =04A=C8=08=13a!=DA=88=01b=8AX#=8E=08=17=99=85=F8!=C1H=04=12=8B$ = =C9=88=14Q"K=915H1R=8AT = UH=1D=F2=3Dr=029=87\F=BA=91;=C8=002=82=FC=86=BCG1=94=81=B2Q=3D=D4=0C=B5C=B9= =A87=1A=84F=A2=0B=D0dt1=9A=8F=16=A0=9B=D0r=B4=1A=3D=8C6=A1=E7=D0=ABh=0F=DA= =8F>C=C70=C0=E8=18=073=C4l0.=C6=C3B=B18, = =93c=CB=B1"=AC=0C=AB=C6=1A=B0V=AC=03=BB=89=F5c=CF=B1w=04=12=81E=C0 = 6=04wB a=1EAHXLXN=D8H=A8 =1C$4=11=DA 7 = =03=84Q=C2'"=93=A8K=B4&=BA=11=F9=C4=18b21=87XH,#=D6=12=8F=13/=10{=88C=C47= $=12=89C2'=B9=90=02I=B1=A4T=D2=12=D2F=D2nR#=E9,=A9=9B4H=1A#=93=C9=DAdk=B2= =079=94, +=C8=85=E4=9D=E4=C3=E43=E4=1B=E4!=F2[=0A= =9Db@q=A4=F8S=E2(R=CAjJ=19=E5=10=E54=E5=06e=982AU=A3=9AR=DD=A8=A1T=115=8F= ZB=AD=A1=B6R=AFQ=87=A8=134u=9A9=CD=83=16IK=A5=AD=A2=95=D3=1Ah=17h=F7i=AF=E8= t=BA=11=DD=95=1EN=97=D0W=D2=CB=E9G=E8=97=E8=03=F4w=0C=0D=86=15=83=C7=88g(= =19=9B=18=07=18g=19w=18=AF=98L=A6=19=D3=8B=19=C7T071=EB=98=E7=99=0F=99oUX= *=B6*|=15=91=CA=0A= =95J=95&=95=1B*/T=A9=AA=A6=AA=DE=AA=0BU=F3U=CBT=8F=A9^S}=AEFU3S=E3=A9 = =D4=96=ABU=AA=9DP=EBS=1BSg=A9;=A8=87=AAg=A8oT?=A4~Y=FD=89=06Y=C3L=C3OC=A4= Q=A0=B1_=E3=BC=C6 = =0Bc=19=B3x,!k=0D=AB=86u=815=C4&=B1=CD=D9|v*=BB=98=FD=1D=BB=8B=3D=AA=A9=A1= 9C3J3W=B3R=F3=94f?=07=E3=98q=F8=9CtN = =E7(=A7=97=F3~=8A=DE=14=EF)=E2)=1B=A64L=B91e\k=AA=96=97=96X=ABH=ABQ=ABG=EB= =BD6=AE=ED=A7=9D=A6=BDE=BBY=FB=81=0EA=C7J'\'Gg=8F=CE=05=9D=E7S=D9S=DD=A7=0A= =A7=16M=3D:=F5=AE.=AAk=A5=1B=A1=BBDw=BFn=A7=EE=98=9E=BE^=80=9ELo=A7=DEy=BD= =E7=FA=1C}/=FDT=FDm=FA=A7=F5G=0CX=06=B3=0C$=06=DB=0C=CE=18<=C55qo<=1D/=C7= =DB=F1QC]=C3@C=A5a=95a=97=E1=84=91=B9=D1<=A3=D5F=8DF=0F=8Ci=C6\=E3$=E3m=C6= m=C6=A3&=06&!&KM=EAM=EE=9ARM=B9=A6)=A6;L;L=C7=CD=CC=CD=A2=CD=D6=995=9B=3D= 1=D72=E7=9B=E7=9B=D7=9B=DF=B7`ZxZ,=B6=A8=B6=B8eI=B2=E4Z=A6Y=EE=B6=BCn=85Z= 9Y=A5XUZ]=B3F=AD=9D=AD%=D6=BB=AD=BB=A7=11=A7=B9N=93N=AB=9E=D6g=C3=B0=F1=B6= =C9=B6=A9=B7=19=B0=E5=D8=06=DB=AE=B6m=B6}agb=17g=B7=C5=AE=C3=EE=93=BD=93}= =BA}=8D=FD=3D=07=0D=87=D9=0E=AB=1DZ=1D~s=B4r=14:V:=DE=9A=CE=9C=EE?}=C5=F4= =96=E9/gX=CF=10=CF=D83=E3=B6=13=CB)=C4i=9DS=9B=D3Gg=17g=B9s=83=F3=88=8B=89= K=82=CB.=97>.=9B=1B=C6=DD=C8=BD=E4Jt=F5q]=E1z=D2=F5=9D=9B=B3=9B=C2=ED=A8=DB= =AF=EE6=EEi=EE=87=DC=9F=CC4=9F)=9EY3s=D0=C3=C8C=E0Q=E5=D1?=0B=9F=950k=DF=AC= ~OCO=81g=B5=E7#/c/=91W=AD=D7=B0=B7=A5w=AA=F7a=EF=17>=F6>r=9F=E3>=E3<7=DE2= =DEY_=CC7=C0=B7=C8=B7=CBO=C3o=9E_=85=DFC=7F#=FFd=FFz=FF=D1=00=A7=80%=01g=03= =89=81A=81[=02=FB=F8z|!=BF=8E?:=DBe=F6=B2=D9=EDA=8C=A0=B9A=15A=8F=82=AD=82= =E5=C1=AD!h=C8=EC=90=AD!=F7=E7=98=CE=91=CEi=0E=85P~=E8=D6=D0=07a=E6a=8B=C3= ~=0C'=85=87=85W=86?=8Ep=88X=1A=D11=975w=D1=DCCs=DFD=FAD=96D=DE=9Bg1O9=AF-= J5*>=AA.j<=DA7=BA4=BA?=C6.fY=CC=D5X=9DXIlK=1C9.*=AE6nl=BE=DF=FC=ED=F3=87=E2= =9D=E2=0B=E3{=17=98/=C8]py=A1=CE=C2=F4=85=A7=16=A9.=12,:=96@L=88N8=94=F0A= =10*=A8=16=8C%=F2=13w%=8E=0A= y=C2=1D=C2g"/=D16=D1=88=D8C\*=1EN=F2H*Mz=92=EC=91=BC5y$=C53=A5,=E5=B9=84'= =A9=90=BCL=0DL=DD=9B:=9E=16=9Av = m2=3D:=BD1=83=92=91=90qB=AA!M=93=B6g=EAg=E6fv=CB=ACe=85=B2=FE=C5n=8B=B7/=1E= =95=07=C9k=B3=90=AC=05Y-=0A= =B6B=A6=E8TZ(=D7*=07=B2geWf=BF=CD=89=CA9=96=AB=9E+=CD=ED=CC=B3=CA=DB=907=9C= =EF=9F=FF=ED=12=C2=12=E1=92=B6=A5=86KW-=1DX=E6=BD=ACj9=B2<qy=DB=0A= =E3=15=05+=86V=06=AC<=B8=8A=B6*m=D5O=AB=EDW=97=AE~=BD&zMk=81^=C1=CA=82=C1= =B5=01k=EB=0BU=0A= =E5=85}=EB=DC=D7=ED]OX/Y=DF=B5a=FA=86=9D=1B>=15=89=8A=AE=14=DB=17=97=15=7F= =D8(=DCx=E5=1B=87o=CA=BF=99=DC=94=B4=A9=AB=C4=B9d=CFf=D2f=E9=E6=DE-=9E[=0E= =96=AA=97=E6=97=0En=0D=D9=DA=B4=0D=DFV=B4=ED=F5=F6E=DB/=97=CD(=DB=BB=83=B6= C=B9=A3=BF<=B8=BCe=A7=C9=CE=CD;?T=A4T=F4T=FAT6=EE=D2=DD=B5a=D7=F8n=D1=EE=1B= {=BC=F64=EC=D5=DB[=BC=F7=FD>=C9=BE=DBU=01UM=D5f=D5e=FBI=FB=B3=F7?=AE=89=AA= =E9=F8=96=FBm]=ADNmq=ED=C7=03=D2=03=FD=07#=0E=B6=D7=B9=D4=D5=1D=D2=3DTR=8F= =D6+=EBG=0E=C7=1F=BE=FE=9D=EFw-=0D6=0DU=8D=9C=C6=E2#pDy=E4=E9=F7 = =DF=F7=1E=0D:=DAv=8C{=AC=E1=07=D3=1Fv=1Dg=1D/jB=9A=F2=9AF=9BS=9A=FB[b[=BA= O=CC>=D1=D6=EA=DEz=FCG=DB=1F=0F=9C4<YyJ=F3T=C9i=DA=E9=82=D3=93g=F2=CF=8C=9D= =95=9D}~.=F9=DC`=DB=A2=B6{=E7c=CE=DFj=0Fo=EF=BA=10t=E1=D2E=FF=8B=E7;=BC;=CE= \=F2=B8t=F2=B2=DB=E5=13W=B8W=9A=AF:_m=EAt=EA<=FE=93=D3O=C7=BB=9C=BB=9A=AE= =B9\k=B9=EEz=BD=B5{f=F7=E9=1B=9E7=CE=DD=F4=BDy=F1=16=FF=D6=D5=9E9=3D=DD=BD= =F3zo=F7=C5=F7=F5=DF=16=DD~r'=FD=CE=CB=BB=D9w'=EE=AD=BCO=BC_=F4@=EDA=D9C=DD= =87=D5?[=FE=DC=D8=EF=DC=7Fj=C0w=A0=F3=D1=DCG=F7=06=85=83=CF=FE=91=F5=8F=0F= C=05=8F=99=8F=CB=86=0D=86=EB=9E8>99=E2?r=FD=E9=FC=A7C=CFd=CF&=9E=17=FE=A2= =FE=CB=AE=17=16/~=F8=D5=EB=D7=CE=D1=98=D1=A1=97=F2=97=93=BFm|=A5=FD=EA=C0= =EB=19=AF=DB=C6=C2=C6=1E=BE=C9x31^=F4V=FB=ED=C1w=DCw=1D=EF=A3=DF=0FO=E4| = =7F(=FFh=F9=B1=F5S=D0=A7=FB=93=19=93=93=FF=04=03=98=F3=FCc3-=DB=00=00:6iT= XtXML:com.adobe.xmp=00=00=00=00=00<?xpacket begin=3D"=EF=BB=BF" = id=3D"W5M0MpCehiHzreSzNTczkc9d"?>=0A= <x:xmpmeta xmlns:x=3D"adobe:ns:meta/" x:xmptk=3D"Adobe XMP Core 5.5-c021 = 79.155772, 2014/01/13-19:44:00 ">=0A= <rdf:RDF xmlns:rdf=3D"http://www.w3.org/1999/02/22-rdf-syntax-ns#">=0A= <rdf:Description rdf:about=3D""=0A= xmlns:xmp=3D"http://ns.adobe.com/xap/1.0/"=0A= xmlns:xmpMM=3D"http://ns.adobe.com/xap/1.0/mm/"=0A= = xmlns:stEvt=3D"http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"=0A= xmlns:dc=3D"http://purl.org/dc/elements/1.1/"=0A= xmlns:photoshop=3D"http://ns.adobe.com/photoshop/1.0/"=0A= xmlns:tiff=3D"http://ns.adobe.com/tiff/1.0/"=0A= xmlns:exif=3D"http://ns.adobe.com/exif/1.0/">=0A= <xmp:CreatorTool>Adobe Photoshop CC 2014 = (Macintosh)</xmp:CreatorTool>=0A= <xmp:CreateDate>2015-05-15T12:00:51+08:00</xmp:CreateDate>=0A= <xmp:MetadataDate>2015-05-15T12:00:51+08:00</xmp:MetadataDate>=0A= <xmp:ModifyDate>2015-05-15T12:00:51+08:00</xmp:ModifyDate>=0A= = <xmpMM:InstanceID>xmp.iid:560cfb58-ba9a-4bc5-8b1c-10e452494662</xmpMM:Ins= tanceID>=0A= = <xmpMM:DocumentID>adobe:docid:photoshop:67311634-3b45-1178-abb8-c4ccb075e= 35f</xmpMM:DocumentID>=0A= = <xmpMM:OriginalDocumentID>xmp.did:5ae1fba8-5258-4404-a006-4089fa1eb2f0</x= mpMM:OriginalDocumentID>=0A= <xmpMM:History>=0A= <rdf:Seq>=0A= <rdf:li rdf:parseType=3D"Resource">=0A= <stEvt:action>created</stEvt:action>=0A= = <stEvt:instanceID>xmp.iid:5ae1fba8-5258-4404-a006-4089fa1eb2f0</stEvt:ins= tanceID>=0A= <stEvt:when>2015-05-15T12:00:51+08:00</stEvt:when>=0A= <stEvt:softwareAgent>Adobe Photoshop CC 2014 = (Macintosh)</stEvt:softwareAgent>=0A= </rdf:li>=0A= <rdf:li rdf:parseType=3D"Resource">=0A= <stEvt:action>saved</stEvt:action>=0A= = <stEvt:instanceID>xmp.iid:560cfb58-ba9a-4bc5-8b1c-10e452494662</stEvt:ins= tanceID>=0A= <stEvt:when>2015-05-15T12:00:51+08:00</stEvt:when>=0A= <stEvt:softwareAgent>Adobe Photoshop CC 2014 = (Macintosh)</stEvt:softwareAgent>=0A= <stEvt:changed>/</stEvt:changed>=0A= </rdf:li>=0A= </rdf:Seq>=0A= </xmpMM:History>=0A= <dc:format>image/png</dc:format>=0A= <photoshop:ColorMode>3</photoshop:ColorMode>=0A= <photoshop:ICCProfile>sRGB IEC61966-2.1</photoshop:ICCProfile>=0A= <tiff:Orientation>1</tiff:Orientation>=0A= <tiff:XResolution>720000/10000</tiff:XResolution>=0A= <tiff:YResolution>720000/10000</tiff:YResolution>=0A= <tiff:ResolutionUnit>2</tiff:ResolutionUnit>=0A= <exif:ColorSpace>1</exif:ColorSpace>=0A= <exif:PixelXDimension>25</exif:PixelXDimension>=0A= <exif:PixelYDimension>25</exif:PixelYDimension>=0A= </rdf:Description>=0A= </rdf:RDF>=0A= </x:xmpmeta>=0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= = =0A= =0A= <?xpacket end=3D"w"?>=E5=EA=F4J=00=00=00 = cHRM=00=00z%=00=00=80=83=00=00=F9=FF=00=00=80=E9=00=00u0=00=00=EA`=00=00:= =98=00=00=17o=92_=C5F=00=00=02=13IDATx=DA=DC=96AHVA=10=80=BF'=0A= RTV=A2=A7$=88<=E5)=90=84 =CB=A4C=A0^=BA& = =95=8B=EB=E2%:=88'=F5=D2=C9=B6=FDY=C1=A8.B=17=0F=9E=0A= =04=CD=83=88=A7=82D=A9=E8G=C8=88=EA=90=1E=FE=83=1A=BC.=F3=C7=F3O=DF=DB=1F= =B2Cs=997=BBo=E7=DB=1Dff7=8A=E3=98=83=96=0A= =FE=81T=16?=A2(=DA5a=9D=AF=07=EE=00]=C0Y=E0=08=F0=0Dx=0D<=07&=8DV;i=CE=8B= Q=8A~=7F$ =D6=F9~`T=1C=EF'=EF=81=1E=A3=D5B=16=E4=8FpY=E7-`=05=B0=0A= =F4=01M=C0)=A0E=E0=9B@#0g=9D=BF=9E=15=AE]'=B1=CE=DF=05=C6e=EE=010h=B4=FA=B9= =C7F=EA=80)=E0"P=00=CE=1B=AD=DEe=86=EBQn=BC=06=F8=08=9C=00=1E=1A=AD=06=D2= vg=9D?=0C,=CA)=A7=8DV]!=E1=BA%=80O=C0=FD=AC=10=18=AD=0A= =C0m1;=AD=F3=8D!)=DC)z=C2h=B5=15=92=9AF=AB%`I=CC=8E=10=C89=D1se=96=C1=AB=92= =F5=A9=90=93=A2=BF=94 = =F9*=BA.=04R=10}=BCL=C81=D1=9B!=90=0F=A2=9B=CB=844=97=ACO=85=BC=10=DDm=9D= =8FB=BC[=E7=1B=80=ABb=BE=0C=81<=06vdg=3D=01=80=08x=02T=01o=A4f=D2!F=AB<=90= =133g=9D=EFH=01TH=C5=B7=C9=D0=88=D1*=0Em+=D5=C0=8C=B4=8B=18x=0A= =8C=19=AD=DE=8A=F3*=A0=1D=18=02.$=FC,=03W=8CV=DF=83=BA=B0u=FE=10=F0=0C=B8= =91=F8=7FC=B2=A7=1E=A8=96=B1m=C0=037%#W=80kF=AB=F5=A0V/=B0v=E0=1Ep9y=EF=00= ?=80i`=D8h=95=B7=CE7=01=B3@=AD=F4=BE=D6"(=13=92=80=1D=05N=035Rx=F9=D2=CBj= ?P0$T=F6=02=F5=F7=F5=AE=FF=D5;^=92=E3=12=F0=198=03=CC=1F=C8C=C2h=B5=02=B4= =02k=C96=13=FD7O=A2_=03=00=E8=81=CC=E5/r=3Ds=00=00=00=00IEND=AEB`=82 ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/images/1_pixel.gif R0lGODlhAQABAIAAAP///////yH5BAUUAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/spacer.gif R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/hl3.gif R0lGODdhbQAVAOfwAN1iAN1jAd1jAt1kA95kBN5lBd5mBt5mB95nCN5oCd5oCt5pC99pDN9qDd9r Dt9rD99sEd9tEuBuE+BuFOBvFeBwFuBwF+BxGOBxGeByGuFzG+FzHOF0HeF1H+F2IOF2IeJ3IuJ4 I+J4JOJ5JeJ5JuJ6J+J7KOJ7KeN8KuN8K+N9LON+LeN+LuN/L+OAMOSAMeSBMuSBM+SCNOSDNeSD NuSEN+SEOOWFOeWGOuWGO+WHPOWIPeWIPuWJP+aJQOaKQeaLQuaLQ+aMROaMReaNRuaOR+eOSOeP SeeQSueQS+eRTOeRTeeSTuiTT+iTUOiUUeiUUuiVU+iWVOiWVeiXVumYV+mYWOmZWemZWumaW+mb XOmbXeqcXuqcX+qeYeqfY+qgZOqgZeuhZuuhZ+uiaOujaeujauuka+ukbOylbeymbuymb+yncOyo ceypc+ypdO2qde2rdu2tee2teu2ue+6ufO6vfe6wfu6wf+6xgO6xge6ygu6zg++zhO+0he+1hu+1 h++2iO+2ifC4i/C4jPC5jfC5jvC6j/C7kPC7kfC8kvG9k/G9lPG+lfG+lvG/l/HAmPHAmfLBmvLB m/LCnPLDnfLDnvLEn/LFoPLFofPGovPGo/PHpPPIpfPIpvPJp/PJqPTLqvTLq/TMrPTNrvTOr/TO sPXPsfXQsvXRtPXRtfXTt/bTuPbUufbVu/bWvPbWvfbXvvbYv/fYwPfZwffaw/fbxPfbxffcxvjd x/jdyPjeyfjeyvjfy/jgzPjhzvnhz/ni0Pnj0fnj0vnk0/nl1Pnl1frm1vrm1/rn2Pro2fro2vrp 2/rp3Prq3fvr3vvr3/vs4Pvt4fvt4vvu4/vu5Pzv5fzw5vzw5/zx6Pzx6fzy6vzz6/zz7P307f31 7v317/328P328f338v348/749P759f759v769/77+P77+f78+v79+//9/P/+/f/+/v////////// /////////////////////////////////////////////////////ywAAAAAbQAVAAAI/gDhbUN0 Dp7BgwahQELI0GAZQeuSIZtIseLEbwfdodu4cV1DVZkaGpzkRmSzI9hEHuTmhdxBVMLgHTNjEJ0t hqUAoCAm8sEXlQbdOQDTCIDRo0iP/jgII2kAWgx/cBCpLoOLXFhz6TIH7wyAXNDChg2HMBeAZEEp CILHCYBHQAzaMXxUoAEreLpMldqrQMjeUqaKMRwG4JI5XViLjMCqqHDWagdTHZo8eRFZhD00iAyU 1GiiXQU66ywLAJnBVwKmnQMFgJy4CXnKxRmH8FWDC45EJ4WFEBEAZ9oOAQLkAsPwLwDQDK/EzuA2 ixOVyT2YueEoAkQm3uCBLFkrCRha/skaBcCOLFnKSJvWJeTJKwOXAHyJYsIcngbeGCrLFeZAMIoN SEGRKgAUglAQKMDThgBFJKGBA0kkUQMAOiQhAwCqGFSBbopgphlCzATwAkbw8IGBQTiUYJpBIcjB kDfQkALAK9Z4AQAhSeywCgBJALBGNQvwodIXDyDk00HYADAIkgNkAc8YIBiURQsGuQJAL/AoA4Ao BrEyyZdgTlJJStR9mBEp6CxjySSKyPGlIY6EeUchqLxz0IZIFaMHAQGcggsAwnSyAAchoGPQGmYU ZBCRRv5kUJJLGrQHAE6iUQAZZ5AwwRlnNAEAFZ0CYMpB4mBjqqnZsHPNK660ysIE/q26AgttBpkg gAW45qorrgwAcJdByNQSAwCc7GKnEy1swwwAvDESgCtNLAOPGToJBg+jBx35qJIGraMBpTKN0cW4 5JbbxRvlGKTOAZ2F4aluAAhpkAVRcGTvvbMA8AlDGQBQh0HJDDBKAqkA4Ek3GrixDgb/wsOIAQ60 cm2R2ToKD6QGLQJAkwYpQ8hwIIdsyDQIqbLJySdzokwynKBsAgQod6LNQRbA29m+B1VjlAGmHZHC IhcsEYEXOgRgAwMH+HAQLRJ0MHGjSHJbTgVIWOAkPDTYDAATQKlUnUgWXHHv2Ojcoi9Cmhh1RA9O AKAAE3gUUIIENRBxgjGRRICQ/jWCIaf1kumoEY3VLALBzuGIH65OCjkcpA4Ena3B0NcNWRBBDJhn rjnmJ5x90BUjAGBLBJ7s4pE7aVDBAjzTjDAFOL8y9AUCg9Q+CAI02H4HtzRfHYLWjR9Uie21E8LL 5GYyZAERtTTv/PPNU+I5POk4gBwy64gRxfbbrzDA9j88EMUWXHV5hDvYGqTtxbzP67sPwMQvv/wr BH/QN9zkz035HqqUwQd0CKAABxjAKmzpIKEAQAKR8Q4uzAAAPIgQEnQSoQhNIV0G0YIC2pE+eKwP Y71jEQRqQMISlpAB9muHC5yCCOSppBA4qIEIAPACE9YgBQAYQQ2YsI2DFOEF/mZZUVuiQTJ42EAK BiHFLxDyjgw0roMfbB88CAePELBgEVjMYhY9YD9rAKAIlwijJByABBd2DRMAmBlpuIQQZwSgD0E0 iB8GYIwB3MQRBJCGMw6gCYTYAgB6eFrFohYp9xlkBB/QohYTMYEdHIQaADgEQlJQBDNmxApFyGQR UACAIWgykzYAgAs0iYRlIEMI24gjPKRQAnhAQQXuOIcFuIADF7jDTgYZAwB4AkWLgdCQXbFZAOQF D0hK8iCUtKRB3kGGKjizCht4wDOfKQQA5OCZWIDGQeJ4jgeEAR6wAEAs4KExBhijHAwYRjER0INF OQBqBvFiIad4NXhIAwoA/qAFOfbJhgaMQh0IMeYkK9k/oGgjAl1oiFnYqNDSwGMO+YTHOy4Rjmfw AAARUEYzAOALeFhhRgZ5AwBs0IOSDuACJe3BCgBACYQQ7hhqWEAB9oBLeIAjBzwaBYm0AYAUcOoM YjDAEpR5kGKoAhAeIEBMGLJQlZgFGHAIwFDVJYcEdEAVIcCAHAAADnEAoAkHscYXlFDBsiZBCWvA oEE00IV1GIAAVlgRQtgxiJqp4CBfAEEH9toBFKCCIUP4QEP+ZBQIeEIkuwAAKVRCDAH8AQBGoBU8 fpGANtCmGiuk0mRd0rWu4cIZ8KDFNbq2DlfcorMMeYY6GaKOUIwiF+lQFok6KCEOoJDDHLxhSE3h wQ5WMAMeAQEAOw== ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/eng/b5.jpg /9j/4AAQSkZJRgABAgEASABIAAD/4QVARXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dz ADIwMDk6MDM6MTcgMTQ6MzA6NTUAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAOqADAAQAAAAB AAAAFQAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAQKAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgAFQA6AwEiAAIRAQMRAf/dAAQABP/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//aAAwDAQACEQMRAD8A9Py8mvExrcm2Syppc4NEkx2aFz+P9fel5DGubjZLCXtYWvFY Pu3jfDbnfom2V+l6rv0Xq/ov539Gt7qAxjg3jKrFuOa3erW4tAc2Pc3da6utv9uxi87wulehdlen 0/JODlB2QKX8vqa+K6DVVfdlel9qt9V1zbLPVqr9f07vV9ShKewyfrd07Gsoruqvb9oqrvDtrfay 1zqajaw2er9Nv5lb9m+tV8D6+dGzjlCptm7FptvLfYS5lJd6mz07H/uez1Fzn1jx6sjIpvuY1wtx sNr773473N9S6+vazMtIdt9On1GW49b/AKH2u70v0liB0Kup325rbrbnXdPva2t91L3Gy4+mxlVd L8i3e95vfZZs/R/zlv8ASElPcv8ArDjiz06se2582hzWmlkejbZiOdOTkUNdvtpfs2fmfzmxaNFp upZa6t1ReJ9N5aXD4ml9tf8AmWLh/s9VGXe2jEqycnBLm41HoMb653ZVdzn14tTK/wBXx3Y1ltjK f0v6vT/Pemux6TXjVdLxKcSwW49NLK67B3DGiuf5P0UlM8nNqxrsSmwOLs240VFsQHNqvzJskj2e li2f21YWT1n/AJR6F/4ff/7Y9SWskp//0PVUl8qpJKfqpJfKqSSn6qSXyqkkp+qkl8qpJKf/2f/t ChRQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4QklNA+0AAAAAABAA SAAAAAEAAgBIAAAAAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4 OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0n EAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZma AAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAA AP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA /////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJ TQQAAAAAAAACAAE4QklNBAIAAAAAAAQAAAAAOEJJTQQwAAAAAAACAQE4QklNBC0AAAAAAAYAAQAA AAI4QklNBAgAAAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAAD QQAAAAYAAAAAAAAAAAAAABUAAAA6AAAABmcqVH1UDQAgAC0AMgAAAAEAAAAAAAAAAAAAAAAAAAAA AAAAAQAAAAAAAAAAAAAAOgAAABUAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQ AAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9w IGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAABUAAAAAUmdodGxvbmcAAAA6 AAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcA AAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAAAA1h dXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3VuZHNP YmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAA QnRvbWxvbmcAAAAVAAAAAFJnaHRsb25nAAAAOgAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxURVhU AAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRleHRJ c0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9FU2xp Y2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRBbGln bgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAAAABO b25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0b21P dXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAE/8AAA AAAAADhCSU0EFAAAAAAABAAAAAI4QklNBAwAAAAABCYAAAABAAAAOgAAABUAAACwAAAOcAAABAoA GAAB/9j/4AAQSkZJRgABAgAASABIAAD/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCE AAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwM DAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwM DAwMDAwMDAwMDAwMDAwMDP/AABEIABUAOgMBIgACEQEDEQH/3QAEAAT/xAE/AAABBQEBAQEBAQAA AAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUH BggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMm RJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eX p7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKC kkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZm doaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/APT8vJrxMa3JtksqaXODRJMdmhc/j/X3 peQxrm42Swl7WFrxWD7t43w2536Jtlfpeq79F6v6L+d/Rre6gMY4N4yqxbjmt3q1uLQHNj3N3Wur rb/bsYvO8LpXoXZXp9PyTg5QdkCl/L6mviug1VX3ZXpfarfVdc2yz1aq/X9O71fUoSnsMn63dOxr KK7qr2/aKq7w7a32stc6mo2sNnq/Tb+ZW/ZvrVfA+vnRs45QqbZuxabby32EuZSXeps9Ox/7ns9R c59Y8erIyKb7mNcLcbDa++9+O9zfUuvr2szLSHbfTp9RluPW/wCh9ru9L9JYgdCrqd9ua262513T 72trfdS9xsuPpsZVXS/It3veb32WbP0f85b/AEhJT3L/AKw44s9OrHtufNoc1ppZHo22YjnTk5FD Xb7aX7Nn5n85sWjRabqWWurdUXifTeWlw+JpfbX/AJli4f7PVRl3toxKsnJwS5uNR6DG+ud2VXc5 9eLUyv8AV8d2NZbYyn9L+r0/z3prsek141XS8SnEsFuPTSyuuwdwxorn+T9FJTPJzasa7EpsDi7N uNFRbEBzar8ybJI9npYtn9tWFk9Z/wCUehf+H3/+2PUlrJKf/9D1VJfKqSSn6qSXyqkkp+qkl8qp JKfqpJfKqSSn/9k4QklNBCEAAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMA aABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBTADMAAAABADhCSU0E BgAAAAAABwAIAAAAAQEA/+EPzGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0 IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4 bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYg NDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6NDA6MDggICAgICAgICI+IDxyZGY6UkRGIHht bG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxy ZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMv ZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4 bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9 Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnBo b3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6dGlmZj0i aHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9i ZS5jb20vZXhpZi8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0i QWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOS0wMy0xN1Qx NDozMDo1NSswODowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDMtMTdUMTQ6MzA6NTUrMDg6MDAi IHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDMtMTdUMTQ6MzA6NTUrMDg6MDAiIHhhcE1NOkRvY3Vt ZW50SUQ9InV1aWQ6QkUzMTc2MkJCRDEyREUxMTk0MkJDRkNFN0Q1QTlGNzkiIHhhcE1NOkluc3Rh bmNlSUQ9InV1aWQ6QkYzMTc2MkJCRDEyREUxMTk0MkJDRkNFN0Q1QTlGNzkiIHBob3Rvc2hvcDpD b2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgcGhv dG9zaG9wOkhpc3Rvcnk9IiIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0i NzIwMDAwLzEwMDAwIiB0aWZmOllSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6UmVzb2x1 dGlvblVuaXQ9IjIiIHRpZmY6TmF0aXZlRGlnZXN0PSIyNTYsMjU3LDI1OCwyNTksMjYyLDI3NCwy NzcsMjg0LDUzMCw1MzEsMjgyLDI4MywyOTYsMzAxLDMxOCwzMTksNTI5LDUzMiwzMDYsMjcwLDI3 MSwyNzIsMzA1LDMxNSwzMzQzMjtDQzQ2RDI5QjYxRDM3MTI0NjY5RUU0NjVCNUU5MTAzMCIgZXhp ZjpQaXhlbFhEaW1lbnNpb249IjU4IiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMjEiIGV4aWY6Q29s b3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3 MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUw LDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3 MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4 LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQx OTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2 LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwy NSwyNiwyNywyOCwzMDsxQzdCRjFGMDMyRTQ5QkE0N0M0M0QzOTExRUM3QTBGMSI+IDx4YXBNTTpE ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOkYwREVCOTlGQkMxMkRFMTE5NDJCQ0ZD RTdENUE5Rjc5IiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOkYwREVCOTlGQkMxMkRFMTE5NDJCQ0ZD RTdENUE5Rjc5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBh Y2tldCBlbmQ9InciPz7/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAH zgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLUhQ ICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAAB UAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFla AAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2 aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAA CAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXds ZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAA AAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZ WiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2 z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8v d3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABk ZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IA AAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IA AAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0 aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlv biBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAU Xy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAA AAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZ AB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQA qQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFF AUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0C JgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOAND A08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgE tgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZq BnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4I ggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrc CvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4N qQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5 ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcU SRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgb GEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIc exyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEc IUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3Jicm VyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvR LAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox 8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/ YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0ar RvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5O t08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3 V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7Ng BWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlD aZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFz XXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2h fgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmI zokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQg lIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qg aaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQ rUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6 O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/ yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHW VdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T8 5YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0 wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////7gAOQWRvYmUAZEAAAAAB /9sAhAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgIC AgIDAwMDAwMDAwMDAQEBAQEBAQEBAQECAgECAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD AwMDAwMDAwMDAwMDAwMDAwMDAwP/wAARCAAVADoDAREAAhEBAxEB/90ABAAI/8QBogAAAAYCAwEA AAAAAAAAAAAABwgGBQQJAwoCAQALAQAABgMBAQEAAAAAAAAAAAAGBQQDBwIIAQkACgsQAAIBAwQB AwMCAwMDAgYJdQECAwQRBRIGIQcTIgAIMRRBMiMVCVFCFmEkMxdScYEYYpElQ6Gx8CY0cgoZwdE1 J+FTNoLxkqJEVHNFRjdHYyhVVlcassLS4vJkg3SThGWjs8PT4yk4ZvN1Kjk6SElKWFlaZ2hpanZ3 eHl6hYaHiImKlJWWl5iZmqSlpqeoqaq0tba3uLm6xMXGx8jJytTV1tfY2drk5ebn6Onq9PX29/j5 +hEAAgEDAgQEAwUEBAQGBgVtAQIDEQQhEgUxBgAiE0FRBzJhFHEIQoEjkRVSoWIWMwmxJMHRQ3Lw F+GCNCWSUxhjRPGisiY1GVQ2RWQnCnODk0Z0wtLi8lVldVY3hIWjs8PT4/MpGpSktMTU5PSVpbXF 1eX1KEdXZjh2hpamtsbW5vZnd4eXp7fH1+f3SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6Slpq eoqaqrrK2ur6/9oADAMBAAIRAxEAPwDe27Y7K2/051pvjtPdMWTqNv7D23k9y5OlwtBNk8vWw46n aVKDGUMALVFfXz6YYgxSIO4MjpGGdfde6p66+/n1fGLsTEYfJ0HS3yR2/PkN17X2rU4fdWL6aoMx A25v73Y8bipsfje58xVPsjF7s2bUYGbcFamPwMmdlgxcNbJlJ4KGX3Xuh57H/m5/HPqrcfVG3t57 A75xo7Y6k6w7tpcnJtLZEA2XsLuDfOb672NX742xX9j0XYNJNWbow8UFWMdhsnFjDk6FauSGWpWM e690D3Q/8+H4bfIKXvWl2di+woq/o3p/u7u+rxj1XV+byO89k9D5LdFJu3+7VNtTsjPGhydfj9ux 1lB/FTj6KeKtiU1KsV1+690bbN/zBdhUmdi2xtLqTtvsTcC5PuPH5PGYbP8Axw2M2Gh6V73398d8 5lamu7v+QXU+KydBuLfnW2UlxaYyevrBjUimroKGSVIT7r3Rz9j7lq95bRwG6a7ame2RU53HQ5F9 q7nr9mZTO4dJyzQwZDI9ebs31sqtklg0yrJjcvX0zRyKRKTcD3XukT2X3XtXqvenx62LuHH7grMv 8lO4M10psWow1LjqjHYndWC6C7w+RdXkN2TV2Vx1TQ7fk2T0FmKWOWjhr6k5Wpo4mgWnknqaf3Xu hg9+691//9DeY+QNL13W9H9sUnbe08ZvvrGo2DuaLfezczkNn4jG7k2w2LqBlsRVZfsDcuzNlYla ul1KtVk8vjKSme0j1UAXyL7r3Wmx038VP9H+7+/W278QfkvXfHjuug3L3tjuuN2QQQ1e/uotqdl0 lFsnqnI9e9fd6dl980nXr9673pM9XbmoctlqXOYLC/xysx+YhysWRwPuvdLX+YrsPbHYu/evewd7 bfwOTg3v8b/gVhdw9n907++Hm8d3bQPafyI7w2nPi9tfI/fmQx2VGKbZnWs2Wxef2lh8rFQ/w2p3 XmoMXVNka9vde6DL4M4LaeTb5U4nHdl9o9jZLfv8vj5MYLGbO3p358dd+Z3J9p93Zv8Ault/auxd oddb57i3xW7m3TuLIbqyGXy0WPoZsNG9NXZOGSl3DSmq917o646+2psHtjtbG9e/H/qTuDt74y5f dWI6U6v/ANl06z29L8jMpDuj5S7M7DzG5NndFdTbY2nQ1/TPUmS2Xmc5mMdtqmo9wVLbdwyGLLVm Ojn917rZE+JmB632l8YPj7svqDduO331lsLp3rzr7Ze78XHBT02fwmwdr43Z1PXy0VOzLi8i7YRl rKN9M1FVrJBKqyRuo917oBPmR/2UV/Kd/wDF/wDsb/4Vl/Ms9+690f8A9+691//R3+Pfuvde9+69 1737r3Xvfuvde9+691737r3Xvfuvde9+691//9k= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/eng/eng.jpg /9j/4AAQSkZJRgABAgEASABIAAD/4QTdRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dz ADIwMDk6MDM6MTcgMTU6MzE6MzQAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAOqADAAQAAAAB AAAAFQAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAOnAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgAFQA6AwEiAAIRAQMRAf/dAAQABP/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//aAAwDAQACEQMRAD8A9VWaz6xdJsyTjV2WPtFrqDtpuLPUa80WM9YVej7LWuY9/qbF pLkukWWYuTbVfldVpJ6hluGGzBc7GLbMvItq/XP2Za70L67GXer+0P8ACfztSSnrULIyaMasWXv2 Mc+uoEz9O17Melmn+kutrYuRb0nMox8PNxa7aup25Wey/IsL5bU6rqb8X19/trxW5DMH0d36P+a/ 0qotopdn4tPTsTLpIrwn5TLmWjc+vqHTrLrtt388+qplr8jNr/RWM/w9nppKe+qtZazeydskagtM tJY72vDXfSao0ZNGR6nou3ek81WaEQ9v0m6rh+pYXUDi4tjqMm7Ir+1+ljvpvsre52TY+nbfiPrv 6Zlen6foZ1/6t6K0R0ixlz+otx7W5x6sxweN5Ioc+qu/YPo/ZXVep6nt9L/CpKesSSSSU//Q9VSX yqkkp+qH7Njt8bIO7dxHfdKyehf82d1v7E9Dftb6npfS9PX0ds+77N9P0fT/AEH+jXzakkp+qkl8 qpJKfqpJfKqSSn//2f/tCbZQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAA AAA4QklNA+0AAAAAABAASAAAAAEAAgBIAAAAAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4 QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklN BAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYA AAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAA AAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD///////////////// ////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////// //////////8D6AAAOEJJTQQAAAAAAAACAAI4QklNBAIAAAAAAAYAAAAAAAA4QklNBDAAAAAAAAMB AQEAOEJJTQQtAAAAAAAGAAEAAAADOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAA AAAABAAAAAA4QklNBBoAAAAAA0EAAAAGAAAAAAAAAAAAAAAVAAAAOgAAAAZnKlR9VA0AIAAtADIA AAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAADoAAAAVAAAAAAAAAAAAAAAAAAAAAAEA AAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAAAQAA AAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcA AAAVAAAAAFJnaHRsb25nAAAAOgAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xpY2UA AAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51bQAA AAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VUeXBl AAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAA AAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAFQAAAABSZ2h0bG9uZwAAADoAAAADdXJsVEVY VAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdURVhU AAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAACWhv cnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWduZW51 bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0AAAARRVNs aWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0 bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRsb25nAAAAAAA4 QklNBCgAAAAAAAwAAAABP/AAAAAAAAA4QklNBBQAAAAAAAQAAAADOEJJTQQMAAAAAAPDAAAAAQAA ADoAAAAVAAAAsAAADnAAAAOnABgAAf/Y/+AAEEpGSUYAAQIAAEgASAAA/+0ADEFkb2JlX0NNAAH/ 7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEM DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBER DAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAVADoDASIAAhEBAxEB/90A BAAE/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAID BAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0 coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl 9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSIT BTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj 80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwD1VZrP rF0mzJONXZY+0WuoO2m4s9RrzRYz1hV6Psta5j3+psWkuS6RZZi5NtV+V1WknqGW4YbMFzsYtsy8 i2r9c/ZlrvQvrsZd6v7Q/wAJ/O1JKetQsjJoxqxZe/Yxz66gTP07Xsx6Waf6S62ti5FvScyjHw83 Frtq6nblZ7L8iwvltTqupvxfX3+2vFbkMwfR3fo/5r/Sqi2il2fi09OxMukivCflMuZaNz6+odOs uu23fzz6qmWvyM2v9FYz/D2emkp76q1lrN7J2yRqC0y0ljva8Nd9JqjRk0ZHqei7d6TzVZoRD2/S bquH6lhdQOLi2Ooybsiv7X6WO+m+yt7nZNj6dt+I+u/pmV6fp+hnX/q3orRHSLGXP6i3HtbnHqzH B43kihz6q79g+j9ldV6nqe30v8Kkp6xJJJJT/9D1VJfKqSSn6ofs2O3xsg7t3Ed90rJ6F/zZ3W/s T0N+1vqel9L09fR2z7vs30/R9P8AQf6NfNqSSn6qSXyqkkp+qkl8qpJKf//ZADhCSU0EIQAAAAAA VQAAAAEBAAAADwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAAABMAQQBkAG8AYgBlACAA UABoAG8AdABvAHMAaABvAHAAIABDAFMAMwAAAAEAOEJJTQQGAAAAAAAHAAgAAAABAQD/4Q/MaHR0 cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBN cENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEv IiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA0LjEtYzAzNiA0Ni4yNzY3MjAsIE1vbiBGZWIgMTkg MjAwNyAyMjo0MDowOCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3Lncz Lm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJv dXQ9IiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczp4 YXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhhcE1NPSJodHRwOi8vbnMu YWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94 YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRv YmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3Rp ZmYvMS4wLyIgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iIGRjOmZv cm1hdD0iaW1hZ2UvanBlZyIgeGFwOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1MzIFdp bmRvd3MiIHhhcDpDcmVhdGVEYXRlPSIyMDA5LTAzLTE3VDE1OjMxOjM0KzA4OjAwIiB4YXA6TW9k aWZ5RGF0ZT0iMjAwOS0wMy0xN1QxNTozMTozNCswODowMCIgeGFwOk1ldGFkYXRhRGF0ZT0iMjAw OS0wMy0xN1QxNTozMTozNCswODowMCIgeGFwTU06RG9jdW1lbnRJRD0idXVpZDpDODMxNzYyQkJE MTJERTExOTQyQkNGQ0U3RDVBOUY3OSIgeGFwTU06SW5zdGFuY2VJRD0idXVpZDo2RTc0NjZBNEM1 MTJERTExOTQyQkNGQ0U3RDVBOUY3OSIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9w OklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIiB0aWZm Ok9yaWVudGF0aW9uPSIxIiB0aWZmOlhSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6WVJl c29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIgdGlmZjpOYXRp dmVEaWdlc3Q9IjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgz LDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyOzQ3 MTEyMUIwRDVCRjVCRDQwMTJDQjgzMThFNzZBQUE2IiBleGlmOlBpeGVsWERpbWVuc2lvbj0iNTgi IGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIyMSIgZXhpZjpDb2xvclNwYWNlPSIxIiBleGlmOk5hdGl2 ZURpZ2VzdD0iMzY4NjQsNDA5NjAsNDA5NjEsMzcxMjEsMzcxMjIsNDA5NjIsNDA5NjMsMzc1MTAs NDA5NjQsMzY4NjcsMzY4NjgsMzM0MzQsMzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4NTYsMzcz NzcsMzczNzgsMzczNzksMzczODAsMzczODEsMzczODIsMzczODMsMzczODQsMzczODUsMzczODYs MzczOTYsNDE0ODMsNDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0OTUsNDE3 MjgsNDE3MjksNDE3MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5ODgsNDE5ODksNDE5OTAsNDE5OTEs NDE5OTIsNDE5OTMsNDE5OTQsNDE5OTUsNDE5OTYsNDIwMTYsMCwyLDQsNSw2LDcsOCw5LDEwLDEx LDEyLDEzLDE0LDE1LDE2LDE3LDE4LDIwLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwOzFDN0JGMUYw MzJFNDlCQTQ3QzQzRDM5MTFFQzdBMEYxIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3Rh bmNlSUQ9InV1aWQ6RjBERUI5OUZCQzEyREUxMTk0MkJDRkNFN0Q1QTlGNzkiIHN0UmVmOmRvY3Vt ZW50SUQ9InV1aWQ6RjBERUI5OUZCQzEyREUxMTk0MkJDRkNFN0Q1QTlGNzkiLz4gPC9yZGY6RGVz Y3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/iDFhJQ0Nf UFJPRklMRQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAA AElFQyBzUkdCAAAAAAAAAAAAAAABAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGEAAAAbHd0cHQA AAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRt bmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAA FG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8 AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABk ZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4x AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BYWVog AAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAAAAAWSUVDIGh0dHA6 Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0y LjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0y LjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABk ZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAA AAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAAB WFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJz aWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBP AFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA 4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGS AZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQC jgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPH A9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkF WAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8J ZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvh C/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO 0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIH EiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsV vRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3 Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYe QB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMK IzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8o cSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4W Lkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0 ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrv Oy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5C MEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mp SfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR 5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pW WqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20I bWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3 VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HN gjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqN MY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4 mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMel OKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHW skuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/ er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01 zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724Dc BdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl 63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf6 5/t3/Af8mP0p/br+S/7c/23////uAA5BZG9iZQBkQAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgICAgICAgICAgMDAwMDAwMDAwMBAQEBAQEBAQEB AQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA//A ABEIABUAOgMBEQACEQEDEQH/3QAEAAj/xAGiAAAABgIDAQAAAAAAAAAAAAAHCAYFBAkDCgIBAAsB AAAGAwEBAQAAAAAAAAAAAAYFBAMHAggBCQAKCxAAAgEDBAEDAwIDAwMCBgl1AQIDBBEFEgYhBxMi AAgxFEEyIxUJUUIWYSQzF1JxgRhikSVDobHwJjRyChnB0TUn4VM2gvGSokRUc0VGN0djKFVWVxqy wtLi8mSDdJOEZaOzw9PjKThm83UqOTpISUpYWVpnaGlqdnd4eXqFhoeIiYqUlZaXmJmapKWmp6ip qrS1tre4ubrExcbHyMnK1NXW19jZ2uTl5ufo6er09fb3+Pn6EQACAQMCBAQDBQQEBAYGBW0BAgMR BCESBTEGACITQVEHMmEUcQhCgSORFVKhYhYzCbEkwdFDcvAX4YI0JZJTGGNE8aKyJjUZVDZFZCcK c4OTRnTC0uLyVWV1VjeEhaOzw9Pj8ykalKS0xNTk9JWltcXV5fUoR1dmOHaGlqa2xtbm9md3h5en t8fX5/dIWGh4iJiouMjY6Pg5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6vr/2gAMAwEAAhEDEQA/ AN/j37r3RKMJ/MM+KW5ux5uqtt7x7C3Bu6m7X3B0hUTYT47/ACPy2y6fs7aXYOS6q3Vtybs2g6lq OtIods9hYasxeQyLZcYuinpJjNUpHE7r7r3R1/fuvdIjsHsjZPVeBoNz9gZ+m23gspvfrLregyNV BW1MVTvbuPsjanUPWmAWPH0tXOtTuvsffGKxcMjIIIpqxXmeOFXkT3XunfbG58PvDDx53BSV8mNk r81jVbJYXNbfq/u9v5rIbfyatjNwY/F5RIUymLmWGZoRDVQhZ4Gkgkjkf3XumjZPY+yuxv73f3Lz keb/ALib3z/XG7PHR5Gj/hG9dr/afx3ByfxGjo/upMf99FeaDy0z6/RI1jb3Xulv7917r3v3Xuv/ 0N/j37r3WvD8Rdx7g6n7K3xtHfvfv81/rqum/mHfPDccHxy2x/LT3Pu74nZTavaH8wb5Db52FWR/ Iun/AJYO/c9P1h2vszd+N3JW7gg7fWmoocxLJDksbSwpDSe690gaL4pdybD69+OHeXVGz+1dmfLz eXym/mbbY7P7b3tkOyoavb3UG6ejP5nu4Oif9LM256yTBbM6Exfb+3uqqzb01dT0mFpa6TFyUbif Jlqz3Xuip4zYm0cp3x0Jsn40fHf5e7CraPr3+XJvTvXa3a2wu/8AFSbm7A60/nA/y1t2dmdmyYTs tqs9h7g2JsXAZzJbw7MxEWQwGYxdJJVjOZCmx1TLS+690rfkp018gqzrHozcld1N8kew+zdpSfOq PY3UO8fj38nuyuut67s3P81Owtxdc0+C7T+O++9o9qfCHvur2fTYmp2t2ruekGyodsVUYSrEccoH uvdHOpfiTnsPvTcnyYxvT/a+I+Rdd/N82Dn6fc1FUdm12Swnx53X2B1dsztFMBQwTxYT/QNmevav MTZqeGhXAVrCbJ1F54I54fde62Dffuvde9+691//0d/j37r3XvfuvdN2Y/hP8Jyn8f8A4d/Av4dW /wAa/jH238J/hP20v8R/in3v+R/w77PX5/L+14tWr039+691Xx8Ff+Gzv4nvz/ZCf9BH8d/u7sv+ 9/8Aox0fx7/RrfL/AOjH+E/xL/cr/oQ8n8Q/ux/Cf9+lr+6/h3q83v3XurGPfuvde9+691737r3X vfuvdf/Z ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/images/line2.gif R0lGODlhAgACAJEAAMzMzP////4BAgAAACH5BAQUAP8ALAAAAAACAAIAAAIChFEAOw== ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/leftcalc.jpg /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wgARCADAAKwDAREA AhEBAxEB/8QAHgAAAQQDAQEBAAAAAAAAAAAAAAYHCAkEBQoBAwL/xAAdAQEAAgIDAQEAAAAAAAAA AAAABQgGBwEDBAIJ/9oADAMBAAIQAxAAAAG/wAAAAAAAAAAAAi8c+51UHoAAAAAAAAAAAQbKUC57 Gc0mxN4vvfX4wAAAAAAAAAAgcUxHSmVHU9uY7nog7ULdVPAAAAAAAAAAbs5kDoaJMjTYPmKzm4ZT TsOAAAAAAAAAecKj4/3IOR8N1oAAAAAAAAAAAAyOsdg1IUfuNYldqoky9qazAABihGgB6AAAG3JF H1IX1v3zB6vu+NdNdF016KR7yQ8IAFP5WgbgAPQAAAwiUhe1FydI/wCcl92/yD71ntTl3zoq0Ow1 asj7+ADlhNmb/W+ynSwbKdRH+vUR/r1Pg9eH1/f4AbjM4HQb90Wq+zq6MurtrB/Oy98cZ6biJaKq Ur5aLtszbAJxezwAHKobPGcyuqr5tpSQXYmsbmk1jU2msamk3jkzq433fj4+vCom/wBWFzt3aV6G CuSrNvYwY7mjRXIod0AEJS3YAOUIV2AbR2labeyS92Iy19GEvF4olOY3NJrGppNY1Np3H5jXR/sr BunXX2y+guicqtrPcZt/HMoS0lIOj0peLwQA5MR4dbbQVNT7fnD0W3pjJPSeFv12438oL3JrG5tN Y1NVc2r0eiLKaI6NihHWO8GT7fhxtk6SzC0ItRADkgJA6t2c61N7fDn9ccDn3hlc9b0y+MPZJ4yp vL01U751gwVgtMdIxzaiZJ5CjLzTdgByHD1REnKSgl19vimRfrgHp64OOf1w3OQ49Aq9VPm6zXFe lcpLH2LzgAAA4+Bbm+6ezawksAB+HHwPiaWVj8T2eZMHTMVtDrFsQAAAcWwuz4GwNsY5mC807u5Y 6/zTcxbzsjY32qrrqvR09OpWaPqWpgAABxRigEkXQDRkUhHOHrp7+hFgWUat9xmQafSux4KXnpW3 Gw8H6hiq0mmWMAAABxJisGaJqiMNUKBwsKx3+lhIYq40T5WS1NsaK9y6PNrmGI9SpTYWjE6QAAA4 gz5CpMIyz7mxHUgcx+sLleX0cedsYgs61umDqkKRy4smYAAAHDkZgvzcm4NQMqO8bw3hmDYmnOoQ pkLyyUQAAAcMotjHLYDQEViNZiE8iQ5BkaoRh4fUeQWQ7pd+SyADhkF6NwTUNmNGNoJofoecj8IY Rp1NFRZ0Aj2EcCmc6KQA46iOIuDDMk8EELowz7GSIg3h2mFDBbgSyKlzQlxIARbKHRBgAAAABvC5 wsKIhFEJvyZpcybYAP/EAC8QAAAGAgADCAMAAQUAAAAAAAIDBAUGBwABCBQkEBESExUXGDcWIEAj JjIzNDX/2gAIAQEAAQUC/jtO0WGs2OAWLOmed/x29dTXXCaKw2cXVLTyYNw/xhsckTw3/wANx3AR BSolEDrBncajTLEWezTFrzPmp5l8JS/wS2RpIjG3kxU5mVlB41Fo9j9CY5JD2tnbGZJ/BxEyYL1l EQJili/+OxFxyCJniyk28hHHP1ebMgbAp966xz3rrHPeusc96qxz3qrHPeqsc96qxz3qrHPeqssR 27W684AwGByY2ac3LXmUODyZFm8h+kja3I2hD+l7Wuu04J2847XpQM9KBnpQM9KLz0ovPSi89KLz 0svPSy8NbBh1U1qr4S6PCsaJnczBATjOzajYRQq7VKMZRpR5XaYcN4f164KIuPQabTEsdKyXWDpq SawdPyPWCqSRazdSSHPaORZ7RyLHyBT2PFRqU7dTHgnQcr47bzXcgZVCcw4QyxnSWQSB6nlb2TWU d4d5ApkFX9rWLqwgRnPTE8xp6SmpcNTYamw1Nhifes2Heu2xmsmOzp6F0lUfXF1qBJp8yJPXX/hs RBU3DcrGVIKx4RXXzo32tgur8rxmllmEmMdmSdp00WLGXjQyAj0alw1NhqbDCN6zet6y6Ad8peRd JU31td6nxWNWP+awYJ5UM4mHZKBc18IGxc72tousRA8ecvnL5y+NL09Mm2uyyjcSLG11LNTYalw1 Nlzkd0jeRdLUn1pdUz0Ra0WtEcYk11yOMTGUTC+Z9NGrhRjm2+G9raLrGXXmD5fOXzl85fOXwoJp BjdNHZLiKRM7lhqbLsJ1+RvAulqL6z4g2de0W3UVdqbMl7rwgy9MOJcJkgGvbW5Czt/a3C6xpW+U NGanXF8vnL5y+cvnL5y+cvgH1Swkyl6OlchdxdLUH1jxftpqexODNr/dAaHS7x71hbqrKz8idM/I nTPyJ0z8idM3IXTeeuue829Oe8OUnKReLux3F0tPfWHGh3emcHf1p+ygzYVbe5bUZz4jBA8ZmAQi MxYjXt5JJwTy0LNtWEERRmYCBITMWVqby6ZSI0LsLpac+ruNMzuTcIBOyqv/AGVC6pr/AOEhVlG0 2+7c7Oq2SQ00pToQY8D/ABkKu7K2Qs6KLudkIJA0J1eP3cGUOwulpr6s40lGhLeFdN5FP/srF1TH rZ+gGbDlOWWngkxkcpNf35Op78ahBIVj8ZJtcWIkjJcie6p9JTq8ejgHPDqLpqY+q+MhT4p1w1g8 ulv2Vi6ohSalOPcGlcPRrDrNLGcObeSygp3Uo3APPiB6qlwL4SHDZEcIvZmxbdRdNS31TxfmeOz+ Hsvyqc/ZWLqm9KJcoLSN28AztpmAjLSZjrEy06QgA1BoAEJMLKTmYBtQjw2OpjSyjTN46C6ag5Cx u9a8We/MtelCfIqj9le+qj3+0hVlOQqF2jELlboXFHgpT36YC/8AUOlX+WpvwdSllJVXlRshVi7/ ANFzF00fkEoYRujk9PS1umliIkhc8s3I/dVoR86qrVb7Jbu1X/24wHZxgRCBuN3ZKYxBZxbD1YxK dTsW29SSlk7okObnGC2xNK9KeL7smTtBCrHxSYUtOWGHl8O8Kjcer/iX14rdrUOtVz3ayzohHJJE 6GUKUlm9tvw9XCLDJONTmnvKNaLnmfWadW0OGPo9F568can9QQZp1SBzT8MrDDBmjaGlwfXSKsRU XjXFI1GJbJo5+Tv1Zb3oOrtuFvVt/DhCjjHDttKpo5arQ+8Klstan403ZnxpuzPjTdmfGm7M+NN2 Z8absz403ZnxpuzPjTdmN/C9cqxRTfD+x1fvLkrINlR0sqwqzcDHqxJvkA4e3pxOQoUjYj7f/8QA TxEAAgIBAgIEBgwICgsAAAAAAgMBBAUGEQASBxMhMRQiQVFVYRAWFyMwMkBCcZSV0xU0RXSBkZPR IDZSU2ODtNTV8CRQYGJyoaOys8Ph/9oACAEDAQE/Af8AVWitFXtZ3rFeuyKlWogmWrphLAU1gMim mAiYkze4e2OYeVC3s3kgBbMjj7eKvWsdfSSLlNxoeovmmE94lHims42NTAmQashYBEBRM/JOi6hT oaLxBUyBk3xZfttH59xrJWwC2+dVFIU5j+g7Y3kuMlprSOt7E52+9lN5S6lAtQzEvYujasVxY9L3 wx7I5ZTFmYHmWpaZWk0ElfyTTuvNS6XQdXF3A8DMiZ4JaSFhANOIiWK5tmqKdt5FbBWU+MYFPbxm M9l8/dLIZa621aIBXBTyrBagmZBSVKgFKWMkRciwGJMzYW7DMp+QXMZk8d1c5DHX6EOHnTN2nYqw 0J+eqXrCGD2x4wbx8l6L6FbIa1xK7Qya682LwByEQk+og3V+eY7AEHCDeY/FIwFU7yyIl9dFpRos oTZQweViXrBymDPeJqYJAYzHkKJieOlbDYXCamGthVLrA2gmzbppn3mtZY18QKw3nqIYgUt6iNhC DgwiAYMR8i0J0S1srjkZnUbLILuCLqWOrlCZKtPat9p3KZ7WBnmUlPVEKuVhNmWdWvDacwmn1yrD 4ytRgo5TNYSVlo780Q600mWXRE93WtPbybcaty1jBaby+WqK66zTqSaQkZMRYZgoWsGPjKR1nXtH s3WsokhjcoyeSu5i9ZyWReVm7bPrHuKBHmmBgBiBCBAAABEFgAiAAIiMRER8iwtRd/MYqi7fqbmS o1W7TtPV2LKlHtPknlKdp8k8AAgMAAwAAIgABECICMRAiIx2CMR2QMRtEdkexIwQyJRBCUSJCURI lE9hDMT2TE90x2xt2ca06HatsXZHSkDUt7Sw8QRQNKxPaRRTYc/6G0vmKMvBJnlAZqhEzw1TEMYl yzU5RktqmCQMWwCkTWwCiCAwKJEhKIkZiYmN/wCFh+jttlCrWbyH4Jh4g1NFNbwzJEhgwYNesnVq 9EWjMSsXOO1y+OVSBkJMOjHTZ/lfNx/U4/8A+8B0TadP8tZn9hR4DoawB/lzLx/UUeB6D8Gfdnsr 9Xp/u49wzC+nsr9Xp/u49wzC+ncr9Xp/u49wzC+ncr9Xp/u4zXQfbQhj8Dl4vtAZIaF6uFVreXtk E2wcaCYXcAuVXXzfGcMTvD0OqubWsqYiwhhpelwEtqmrKQYtgFEEBgUSJCURMTG0+whzazk2EHK3 IatyjjvBqjg1nHrEhiY+jjAZdGdw+OzCOXq8hVW6RGdxU/4llG/lmvYFqS/3lz5uP8+rjVfS7qG7 kbSNP3RxmJS41VmV0oZZuLXPLFlliwphLh8xLVrrinkUQrZLSGTKn0u62qVHVivV7jDIZVcuU0HZ rRHNzCvqxUpvPMjO9tVgh5dhmInaMnkrWXv2cleJZ27Zw2wakprixvKIkzqkAtQmzl52SADzsIjn ximf4OgMTOZ1Tj6sCs5SNu8C3bdUx9Gq6xUW2JE4lJXArw8ZEoJPWDt28X62YxjjLK1rCyNkyVk/ fEuYyd+aLISajI5mZ25+ffsIRLeIr3u7t4Re9fCL3r4r3u7t4Tcgtt+BKC7p9nptxderncbk0hAN ytE4t7dzX0DBUWCj+WaGoUW20TCBKY55Ii9jod3nRFWC7ov5CB/4eu3/AO6S41U8qumdQ2ALlNOF ybAKOyRMaTuWYnyTBbbevb4Doe/jzS/Msl/ZD4MRYJAwRMDiRIDiCEhnvghLeJifLE8ZHROHuybK wljXl86rt1El5JOqXve3nhE15Lvkt+3i7pXOY3clrjIIiN+sqbk2IjyHWn37m8uyYcO3zt+zhN2R nlLcSidpguyYnzTE90+qY4Re7u3hF3u7eEXvXwq2Jd/ETE908dO34zpr83yn/lo+z0Rq5NCYkv55 2TZ+rJWk/wDq46QT6vRWpCjy4xwftZFf/ODn4Doe/jxS/Msl/ZD43439i/h8bk/xyolpxGwujdbx jzQ5fKzbft5ZKR37ZHi5op6vHxluGx2+8W9hZt5OR6x5CnybGtcbdsnPdw0L2PPq7tdtYt5GJYPi FMd/VtHdbI9ayKNvLwi96+EXu7t4Re9fHTezrXaZL+gysf8AUo+zorpcq6bwlPB38K9y6PXdVbpW V87IfYdZLrazxAYKDcXjjZ2L+bHy6x6X41DibuFx+FKqi8ALbbuWoa/qxaDZFdZCxWsp5IjnKw2N pn3vun4DogKI1zQiZiJKpkoH1z4E0to9fKJT9ET7G/0/r9j9X+f0cfp4YtbgJbgFqy+MDBgwL6RL eJ/Vxd0nj38x0yOi2e3YPfK+/l95ItwifMo1iPkCe7izhstjtylXhKR7euq7s8XyyS9oaO0fGmQ5 I7+eY7eEXvXx0ut60dMzv29Xl/p262jET9EyJR9Iz8JhcrZwWWoZep+MULAPAZmRFg9oNQcx2wuw kmIZtv4jC7ONOaow+qaQXMXZAz5IKzSMoi5SPuJdhPxoiC7BcMSlsbEoyifgM8Gn61VmQzbK1FID O9wzhDZmBkoAJHx7LdonqkQDjOfFBRTO06v1AOocr11eGhjaSvAsYt3LDvBgYxpPfAeLD7TmsecR v1YktHMUJgp+EU5tdguQ1iHB2g1JkpoT5wYEwQ/omOPbJqL09mvtS99/x7ZNRens19qXvv8Aj2ya i9PZr7Uvff8AHtk1F6ezX2pe+/49seovT2a+1b33/Htj1F6ezX2re+/49seovT2a+1b33/Fq5cvH DbtuzcbEbQy09tg4jzQbjMoj1b/I9F9EM57GIzGavWKNe6EOo1agL8JZWKN12XNeBrWLx2YhYqZz pkWyweeB49wzTfpbO/tMd/h/HuGab9K539pj/wDD+Mp0G0fBGlhsvc8OEZJK8lFc67iiN4WTKyEG jm7ut5XQM9sr27rFd1R76tlZJsVnMrvScbGpyTlbVnHkIDGRKPPHyGe6eKQCulTWA8oLqVwARjYR AEgIjEd0QIxERt2bca9ymYvahwOhMLkGYdmYSd7IZJW/XDUCbPKpBAS2jMRQssYK2KJ8yhMuBJPg 8LoG/p/MVrtDV2YdjYWfh+NyW1wbjJ2+KfOtSIKfH6yK52FcnKLjFp8vHSSMDrjUMDERE21F2fyj qVzKfpIikpnyzMz8hnunjBX6+VwuLyNU4NFujWcEx3jMqHnUXmYlkGpo94sAxntjjW2jrWfZjsvh b44vUmGIioXCieqcsp5prWSEGFAQXOQT1Tl7NepqDW8pDTtDpJ/CgWdTZrE/g1SZA8fSqrYVs9pg T6yKtaa8xPvktFx7yMKitAHJDxr29XyWsM/bqMFtcrxKW0J5gZ4KtdUmLKN4NRmkiWcTImEiQzMT HyLTevNS6VWdfF3RmmZSc0bahs1RZO+7FCWzEEW8yfUMWLZ2lonIhI+7VrPzYj6if95492nWXmxH 1Fn954y3StrHLU2UjuIpJdEg4sdX8Hexc96/CCNrlCXcXUGoiHcCKVkQz/tz/8QAUREAAgIBAQUE AgsJCg8AAAAAAQIDBAURAAYSITEHExQiUWEIFiMyQEFWcYGV1BAVGDBCUnKUoRcgQ2ST0dLT1eIk JjRFUGBjgoOEkqS0wsP/2gAIAQIBAT8B/wBFbz7z092asM9gd9NYlCQVlYK0iIymxJxHXhWKNuuh 1leJNNGZlpXa2RqV71OVZ6tqJZYZF6MrekdVdTqsiMA8bhkcBlI+C9q2dttvTkEsB40qMKUEbdIo ovNH6wLSyC8uvVbPlJUcqO+e9W48P3jrQpcj0gv8cFqDLwRtfqV7BihmgrtHAhDCY1gzBXleZZJk nWaT4JvR2ebsb3SrZytadLiokXjKNmSrPJEhJWOYDigmA10V5IWmRfLHIi8tsFu1g92qC4zDY+Kp UEjTMPPNLNPIFV57FidpJ55mVETjlkYrHHHEnDFHGi/AKGYxGU70YzK43JGBik4oXqtwwOOqTCvL IYn5HyycJ9XwXtgyNzG9n+bkokLLaFbHu3GiuK12zHBbEQcjjkkrtJCFXzKsjTchEWFGSevJDbpT z1pl4JILFeSSCZDyZHjkjKSIw5HUEEHbsgzOezm6rWc9NLakhyE9WndnHu9qrHFAS0j6e7mOw80P iCS7lDG5LxMx+BdpHbXcwuWl3e3TgqWLdZnhuZCyDMkdhPLNHBFqqItR/c5rEwnEk/FBFX9z7yTM 53eremUS7xZqa8oJYQAGOCMleE9xArLVrcS8naCtG7AnmGPFtubgauc3kw+ItydxUt2lSZlIRjFG jymGNjyWScR+HiOh0eRSFYjhOLxlHDUK2MxtdatKnH3cEKlm4QWLsSzlnd3dmkkd2Z3dmZiST8Cz duWhhcveg07+ljL9qHUcQ72vVllj1B5EcaDUHqNqBa3fytiVmklFkQlnJZ9E4+J2Y6sTLJxO5JJL anZINooipVlJVlIZWUkMrA6hgRzBB6Ec9tzu1W5WMOP3nLW6vJEyqqWuQDko8Wij/C41/KlUeK04 mbxLnTaOSOaNJYnSWKVFkjkjYOkkbgMjo66qyspBVgSCDqP328PaRjcNLJWqV5MnYiJWQo4iro4J BUSFXMvCR5uEBegV258MvbVbj/zDEf8Ajv8Az7S9vU8XXd1D/wAw39LaT2RUkfXdnX5rB/pbP7Jn u+u67frP97b8J9fkw36yP6e34T6fJc/rX9/b8J9Pkuf1r+/tup7ILdvP24aGRpz4exM6xxtIwkid m6BOHi6HlwmTvnJAhhkbltHJHNGksTrJFIiyRyIwZHRxxKysOTKwIII5EfcnhiswTV50EkNiKSGZ D0eKVCkiH1MrEH59s9i5NyN8cvjL4dactlkSy6kDVfdIZmA10WeKUT6DpHYjborbQLHKiyROksbD VHiZZEYelWQkN6OW27HZZgaVCtLm6hyOTliSSxHPLLHXqSOOI144IJI1cwgiN3nMvHIrOgjVgi2e zDdGxZisJSmqogbvKtW1Mtewx4eFnEjSyR8ABHDWkgVuLVgSNTj6NfGU4KFRXStWXu4EklkmZI+I sE7yZnkKprwoGY8KBUHJR+93vyDY3d+9YQlXcRVlcdUFmZIZHXpo6wtIYz8UnCdnrQWBrC6P1Og9 99KnzcvTppy67WsZ18u1rGdfLtaxnXy7WsZ18u1jHspJUbMjJ74fd7Bt4ree3N7u7KZpsbYNbvG9 9wtx6An8onu++Y9TJM/xaAfc7WKkFje20ssMUyPTomRJY1kRiItBxK6lTyC9R6Nt2KMcmcwdbu1E LZTHx92qgJ3fiogV4R5QunLTTTT8R2mNwbp22/jNL/yF2FoqdQxB9IOm0eZlXRZeGZB14/f6fp9d f0uLT0beJoWuXF3L/my8l+iT3un6XBtaxgOpA5en4j69rWM6+X9m1rGdfLtaxfXy7T0HTXTZlKnQ jb2Mx/xazo9GTh/bHN/N93tFHe735H/ZxUU/7GvJ/wDTbc2vrvLheXvbsb/yYZ//AF/EdrD8G5lx vRbx/wC2yg28V6/27eK9e3ifXtDlbFflFKQuupQ6Mh+dWBGvr012jzdaXlah7sn+Ei8y/SjHUD1h m/R2avXtKXryRyjTXye+A+LiQ6Ov+8o2tYzr5drWL6+X9m1rGdeW3sbY+5wm8UXov02/6o7X833d 4+z6XMZSxlK2Rjje0Yi8FmFuFDFDHCOCaIsSOGNfKYdR+e3Tbd7s/wDvRer5G1kBPLWZmjhrwlI+ IoyAtLIxZgA2vCIozqB5vxHbGSu4mQcA6JbxpY+gG7Emp9XEyj5yNvE+vbxPr28T69vE+vbxQ9Oy 3XRgyOyMOjKxBHzEEHaDeSddFsqtmMctT5Jv5Qcj6SXVifT6I7uMvABZRDKf4OfROfTyvr3ba/kj iDH83ptaxnXy/Nt2CwmCtvRHpyFrF/Nr3N0kfPoVP0j8ZncPV3gw2Rwtz/J8jVeu7BQzRMdHhnRT oDJWnSOxHqQO8jXntvZuvnNzchJRzNSSNO8Zal9EY0L8fVZKtj3jEpozwMRPAfJNGjDbxW3ifXt4 n17eJ9e3ifXt4r17eL23fk3hyV2HGYGtayViRhw0oo+/QKWCl5OL3OrCCw72y7wxxjzSSqo1G4e6 x3Uwa1bBhfKXZTfy0sHEYfFyRxxiCuX8xr1IIooIyQO9ZZLHCpnKj8ZPBBZieCzDFYgkGkkM8aTR SDro8cgZGH6QO3tS3V+TO7/1Ljfs23tR3U+TG731Ljfs23tS3U+TG731Ljfs23tS3V+TO7/1Njvs 23tS3U+TO731Ljfs23tS3U+TG731Ljfs23tR3U+TG731Ljfs21PH0MdGYcfSp0IWPE0VKtDVjZvz ikCIpb1ka/A98e1F8HflxmGowXZ6jGO3ZttJ4dJ19/XiigeOR2iOqSu0qBZQ0YRuEttL24b0x9MR gfpiyX9o7Tdv290fTC7vfTDlP7S2xXsjMql+Fd4MBjzjXdVnlxBtR266HkZkit2bMVng993PHXLg ECUHTarar3qta7UmSxVtwQ2q08R4o5q9iNZYZY2+NJI3V1PoPwLJ1Wks2ZH1Z3nmdmPMszSMST6S SdTtulhcRQw2a3yy+Pjyy4uRatHHSgdy1lu4BkmV0eNhrbrrGzxyrCO+l7l5VhK7x740M/h7dHIb oYaLIl18Bk8cDSanGuunEoSWWcqPKYzYStJxlzCjRJxWaXXlt2UcX7nu7AYklKc0Y156LHdtIi/M qBVUfEAAOXwLKU3q37lSddJILEqH1+c8LD0q6kOh6FWBHI7YDMw4lLuOyVQ5DCZNQtusD542AOk0 ILKOMjhDeeJuJIpElRoV13k9opxslfB4jI/fCSQMt2zPJGtdNdWUJ306zjQd3wGJCA/ed+WQK1ml 15bbg4+xi9zsBStIYp46IlkjYaPH4qWS0scinmsiJMqyIdGRwykAg/Astu3icyyyXK579RwixC5i mKj8lyNVkA/J7xWKDkhUFtf3PsB/Hv1hf6nZ+zbdt+ovfRZX+p2odnW61C0lsU5LcsR4ohdl76FH HR+5CpHIw/J75ZFVtHVQ6qw/15//xABjEAACAgEBBQEEDxIHCw0AAAACAwEEBREABhITITEUIkFR EBUgIzI2UmFxc4GRk7LVJDM0NUJTYnJ1laGmsbPBwsPTByVAQ3Sj0RZEVXaChZKUosTUJkZjZGWD hKSltLXF4f/aAAgBAQAGPwL+Rts3rHNzl1Dl4DC14F12/c04FtlMmEKx9ZpCy5acQLFYktXOtmms 2rlcZcyG8e8eevITmMM6w21/dH3UcS2s1Q8QINAcR0biVAGIAImB8r+fVf8AyPyrxwKzO+dxfzBi ILiRRg9JC7mZWwGJr8E8xNYSCxc0jQq9eTtquWmXm3LjWLLeXe68uSoYiv3kRTorWK0MtinvKOLr ckOEf71qg56MbVw+IG5krdgFww5XOZy5xyIy2Su5AwI1iKNOFShisFhtasmupBGa6eUxzhsUryAs V2j04lsjXQhnvlsCdQao4himia2CJiUR/IV7vYRin74ZRWqeIYejB1Sif4wuK6wyywYLyupsjlEU d1XfmVYpuUsG/L2AtZ913IZvM2DO5lDq1lFbtcphQUQ+1wEpbX+dw0oIubC4VNTA7v0VY/G0w0Wp cd+w5iOZYstnv7Fp8xxOsNkmMLtnSIiM2N4CX5WmjH0Un9Tj1pBqmhr2jZa91r/v/Fw7RgsWgLdY OVckluXlULbdrIea67UpkEL76GzWiS4WtY2GNFwtP+QZjeO931fE0mWOXE6FYfOiqlUZ68J27TE1 gKe9EmwRaDEztlN4cpbKxmspDrd7IEXFqyx3/LQOvLUoB4KtYEwAqQK1pgQEQjCXcXgFYrLXt3cS GUsuVMZVpkgLdhV1jO/FvdbjJ6xgI4lpVIQurWWnYLeTo8VxYiuLSWEl0rGZmFnI96wY16SYEQx0 EojYaONqKrVhmT4BiSkjLTiYwzkjYcxERxGUzwiIx3ojEfyDC7o4u0LseDYzGcs1XCddpATa1HHi 5RELWqkbVi1XLvUkWPdMSYjw5zO7wLm5G79/G18Thye9CUPTPdoZK5WSau6QMlLGoqxJ1GjFsLCH wKuX/I8kxJQBO5NQzkoiRVaaKm8MdpSS5JcwGpiBkyPQbGtgjOkyJiWhR06TE9sT+TbJPTRXV7uz TWzYGD4rkKq1UwXfyXnSCE1LFXCkSh2gQzmkfmSp5TebHKtLmRbXQTbzUnE6SDwoKsyhkeFbuA/D w6bemlP3vy/yft6aU/e/L/J+3poT978v8n7emhP3vy/yft6aE/e/L/J+3poT978v8n7emhP3vy/y ft6aE/e/L/J+3poT978v/wABsNdG9ePBhzoM2xtUFe7YvV66B/ymRsLFkJgcQQGEwQkM9YISjpMT HWJjpPkWcbg4rxFEpTeyTwl/zV14qlJHEsCamYmGMbJhxQccAivmM5uQuXbzBLiXFlwRWSWmnEqk hSq6509QMRM+jg+sTicVbdyq923AvPi4SIBE2koCnsbY4OSsuswxgzEFPezXx2PRFenVDgSoZIuG JKTKZI5IzMzIjMzKSMyIimZnzNncjdy2VatWHlbwXqrdHWbDB88xK2h1VXQEwF/gPmPeTaTYWpDw swZzyhns1jU5/wAnWNPdnX1tvnp+9G3z0/eHb56fvDt89P3h2+en7w7fPT94dvnp+8O3z0/ejb56 fvRtqo+P7Ge9n3J10n3dNq+Kylhrt1rb+Tbrt4meVJtLTu+pHo1Co++uVw1FyuaQpK1Cy2yl5Gks qY27bT9UMmisxq/WmOIY9mNqPEUlL1stMMpmSY10wREUz1Io101nr11nyIISkSGYISidJiY6xMTH WJiesT4J2Rjd7pK5T6LHMgPFdrR0gZuLCPmxQ/VtAe7IjiIotnMDst6GA5LgBqWqIWLapgwQMWYz ImBjMEJDMwUTExOnmMpkbXfHYv3b7tfqnWbTGe9xnJeLvdNtdONpa8sPY+qL7GPfnsjwzEXkO8rc YUly7jzOslnDOhRXBIFYsddR5nCSoITAnCQ8O3ps94ru3ptP3GXNvTe/3GW9vTjbj2G2v7dvTpd+ Gtf27ena78La/t29O134W1/bsd+lnHZVCRlhxxk7gEe3mKtQQ6adeKFysI1JjV9uxY/ILivk1cXS IkQsQvXmaAXVTlxHni9Z1iCMNIggBdiOnFPLP1501CfZ0go9iI8W26xXvP8AuvdujWtccyUvGKkV GEwpniInAEkyddZIpna7hOpZHd622vwFoLLNItCqWBHxWKnc7g8E9Y7SHYlsE1mPQgYMgQz9kJaT Hu7Iw+7kFxXbqsfjUVgWdm897RQjzxwzwc9kxIwPKEAKOYU8JHtVzWayeDylS1bRSadGXutY609L 2iDIdRpqag+SQd0efaN4Q4YEwKcSdxsvtYy5ksS1s6ayKbM2aw6RoIwmnbroARiIhahiI8xkPbP2 rNqflpzpxo2asXYRGru4hMSsiqOIPPCCWcPfD1ntjZK9371Ni0pEF0FfM9islIwELmi2FvUtURAx PK5emkgZDpM9m3Zt2bdnkdfJpvohyV2HVrQgE6R88XxxHiHQyRw9nKCInXWdY9vD4jNtzfuHV/W2 tGhhpZ5X46ZNRks9eRp6IJifQQMdvZticU4pPy1ydOk2TmS1i3YBJyc9s9Dnint23Z5o/Qa81a4C jrzFYW+C+ngJbWCfrcG2+VFkd8jDWMsiYiJIbOF0yyeH1PNKnyDmOvKayOyZjbe3Cf4OzVLJ+5mK M1dPYicJM6eMpnw+YyPtn7Ru3F4/7NgaozU1ZQa2LIgYs47CAxmCEo8ExMTGy03GBm6gT1Xf17rg PCK74efcXqStDb4fQwPDpECD2lh7UzA8rIcIomZ8K7o/M/B4NbE1i17A067QQzBCUaiQzEiUeOJj pMevt2bdnkdPIwZf9Av8D1bR7eHxWbbmfcOr+ttml/WEYlXv4qm/9ttumH/a6WfAibY+JrtFKxHc tde+W8WGSJajErzI5KhioiPUOK7SlU9kway7NslSbESu3QuVWRPZIPrsUcTr4OEp236H6iau75F4 uIW5eB/AR/h8xkPbJ/Os2D2C/T5PZt/Ft96FzOpV5nm1SnxlWbBp4tOnHAQenTi2hebocktI+aqG pq1+zrNLmLHw8S3PnXpy/DtzcdbRaHhgphZeeBE/XUlwuVPrNAZ9bbs27NuzbC+0ftk7R7eHxWbb l/cKr+ttvnVsVTZFbIV64NSyNZFGMopiCWcR1Hg4dYZ109DG2G3grYkbg4u3DzrWLMqmwogNTlga llyGythcp0w8AbwkaGjEgVLf/dC8YzmadQMrjrIlUzeJzWJWuutlhOpJJDqA0O5bmPs20c6tZWbF NARPD4mzdHFLxsKZbsYYn0bOZvJiBVdvMW3UODTmxVqcip3UZ2JVPBTCpmN42rMG7x5WE15KO8bj sIDEKav/ADhayiT06a14jWZjQfJyHts/nWbJjxi38HFP6Nuz8m3Z5gWoYaWh6BijlbB+1MdCj3J2 Bd2AySY6at87taeD5oAdDmPDLlsM/CyO3YRh3cjy6ci3ovr9i3WUnxT6COOGF6iJ6eRiI8I1useL zxUxtHt4fFZtuV9wqn6229fd8K/jW3GYpypnMiaFyNK3H3o8DYFMixek8BR0Ix0KauAjupGNFVi1 mclWFczjai0N5LZ5uoET7vc9Va9JI5bM96AGxZeUm8+72UTGunlgvIYiwXi0UlGXTxfbWhj19q7d 8s1iqmKAxN9TCus3MjZEZ75ENsU61WpDI6d0DNwh6+ca6TtSxWMrLp4/H1k06dVWvAiugIWpcSUk RaDEamZEZzqRkRTMz5OQ9tn86zYNNOYo+MI9WP1Q/G1+xL1p2hiCienfr/nF+sY/kL0JeCfI7Nuz zMuK/FeoHWV2Z40T4ZEFlrPEfqa+jT+p66bOyrR5aR4Arr004Up9BrGpd8ye+LvikR0HiLg1mPbg +Kzbcn7g1P1tsLkuAor5LdassGcPeFYoZDIA9Yl9US1PqEcdow0PBI7b9Zoh/wAC4tJ6dP7/ALdo YLXXp8xzMaeEZ1nweavjMxBE0+GPHwtPXT2Nfe6+DbWOkx2TtHCccQ9h9YOP8oZGfd7dvolnwr/3 u30Sz4V/73b6JZ8K/wDe7fRLPhX/AL3b6Kb8M/8Ae7fRlj4ex+92+jrX+s2P3m3E9jHF2cTTNk6e LU5mfIj24Pis23I+4FT9bbcDx93bwezp3Pitf0bZ2fD/AHc5GNfDpGA3a0jXt0jWdPZnxz5t5DMw UWGzEx0mJ5hdm0qbHngBJyzsCQD0RH6if9mfW7Np4WEI+DSB/TE/h67fRlgfteR+lM7fTO8P2sU/ 01Z2K7WuHkEpjjs1LK0i3kx1NtdyRVHMXEa8swmCHi01KBGVsXrItETD14ONY93rtzLFk0BPoATA cyY9URsE4jXwRAz0667fTTJj9rNL9NOdvp5mR+1nG/px87GzD7w3CuhEkpGVVTZUsFHYk2Va1ZyI P0PNHmcPbw7MFyir2qzm1LlY/R17VcuByi+1L+zt12j24Pis23H+4FT9bb+DpXq370s+DXu+P7Xb JnP98b55V0exGJwFf8qJ83Z9vd+cLbMn9bw1k/61ET+Xbt23d3zz1Td7I7qZPENuLqWGd3PIchRL uIm0LFDufmAZgRefFypjiApmNstvPcHDJwN7eO0nHIoWWS5Kr77tqkvuXuNKULXWVwEANmFTAgEE PWJGesFExMeOJ6TG2PTP2Uf7bNNtNezp7228X8IWcoLzKsLYXjsdjGTHJK6cVOJzxMWKKJnI1FrJ i3CiO6Hck2iiQsU7+6WHRkZMe4Mljdafca48BBwNa+RjvOXNgK7ePjlISoYLt23iIY0htxLOnqiq J4y9ki1mfHO0e3B8Vm243+L9P9bb+D2p4UVd5bE+xabg1x/7Ofw7Ylun0bls7Z9nhyDKev8A5TT3 PN2fb3fnC2zNUNSdZwd5aAjqTGxKWQsY8JFAF0jr5GOzedbmrmHp079cqOPMbDNbFRiK/Lq27tOr wLMhmfPR4BjUBmdI2zmQXZvzj8jmslkadW44plKLVx764miHOQtq1NgJhRmATxCBkPWYiO3anBTo ItgZnwRxTMdfdLrOxj2SJzH4e33e2PW2ymC3hxx5jdXPCI5KiBRz0NGOGLdQTNQEyR4BZHOrt1TX cmwtlYRMqm6WDzflo5wsHI5C21QU166kvlzbtRZiYjlQokL0gpbNuTCBPt2yLwnUWvjSfAXKAVcU eOJkNYnwx12j24fintuJ/i/T/W23Yp/WN0xs6f0vMZNX+5fg23NjxxnT+E3lzB/p83Z/pDvzhbLs IZKnJKDWY9olH4JiY6EMxMEMyJRMTMbS+7hvmo51c2heKotxerKudeyAMntOVlHGWpTGszt9Kr33 3H5N273GXI9nKDP/ANfG2lKnCCnta982T08QedpAPXnhmZ9baBZ50frz3k+wX1PsF/pTsI2kRYIY gRcLZS2Yj65PAwW+tMjBevMzO30G3/W4/wCG272ofu2on/d9pBS+Xr015vF09wAn3ijaZmes7R7a PxT23D/xep/rbYsfrW5mLX7+Xzzf2m244+OhdZ8Ll8iz8PFr5uz/AEh35wtoTBcAwJNcyf5tK+pl +SI+ymNem3DCp09URTJz68+DWfFEaRt1hsfamP6Qnbqy7H2rk/przsy3jbD2SgZY2vZlZSSxjU5U xa1d8MRxcBDPHGuhcXCJKSqNWOMFhH2RzAx7Edes+COu3coETOVMixhFPVkej4B10AYnppH4fRT1 5nuNMfyTt1m17lt0fkLae47lytYiJ4CY8rKCLwQ1TeKeHXwgQzHb33Zsxbx5diu00WF+AWrnQuHx jPaM6zGnZM9u0e2j8U9t2MdjMrRvZDB4TH18xSrWFstY17YdyguJieYmWcpvLkxgTlTYCZlZ6CP1 vdjDh77sgz9ptuEHj3dpN+H4n/h5nm7P9Id+cLbOn9bwVo/6+rH6du3bMbvdzZPEb6YqyvIzvPC3 X6J1nkaq9bgGK1RKuETBmLsWAuWWCWRp23LTZr0cZunuxjcjWyGDoLVmclcNojkzsR3Uhsrcoe6r Hnpmy/W5VPhMaNdUqqqGvpPWJjSY8cTtj0/9ZGP6uZ2Z1/nD+NO2Yne/cLfnfNoWKcUX7oVMhZVj 1yt/OVemlmMYIMsFwGmGC6ZFR8JBHFE5ZmD/AIKP4UcBlBrjNPLZzH5dWLos5ytW3WWN4raRVIcS 4lldscZj3uukx27Xj+uMAv6oI2j20fintZLdnM5vDnZFQ3Cwt67RJ4qk5SNiabFyyAk2SuGawMkX D2ztN3P5HJZTIStaitZW1ZuW+UuJ5S5daM28ARM8A8Wka9PDtWp0N6976tGslaalarmcumqiuAwK lIUp8LWoB0gACIGB6RGm3px31+/mZ/4naJjea9kl8USynn/42WyPUEy3xXkj/RrdefX2bEoHHZ/H AvyzxvHJrIC0Eb9EyjU6bWajKikn02aKdJidexZ8m1/SHfnC2zFMOrruCvorhHomOiUuhYx4ZkVH 08UTt4Y07Y8MbP3HwHcmI7oyTLp7wY9UVc3KHBHOrFZTAybpMFwvJFM3kVAGkpsJXX5G7o5ypiwu YKiyo3J1a0Lu5VjTGSfbZ2LDhWsop14CsNtlyyAiL1V60RHWdqrzLhSq+sDPwBHRBHP2ITqUz6mN rlVsaGp7NJ9WuSklMj7Fi5E49nx7X6+62TVQXk2oddhuPoXeaysLATMTcrulfCLT6BwxOvXXptdw eZzdezjciqE20jiMTXJi4YDYiHIpraHfrGdQOJ8G0ddohZ6FyxJo9J0meyCifquGInx6FG0AYjHf QWo6+CJjwzPj2wm8GKx/c+X3rwuMtZy2dm0+bTEd0SrgW9zE1VjNhpSFVaROSjmcfLVwZr7HHYIR 9jyrrl+WZ23A6f8AMrdb/wCDo7dm2cZl8dUKxj8RkrtHJcoQuULFao2wtirIQLoVzFhL6/HKbAjw tWfTTADXMxC4GSqWgGZgXVixtp/LZEeiAHoRYiJ6cxKy+p8xvJhrCeVWZkLOTxBxry34fIvbYoMW UxHFygmajtNYC1WerUuXrK3oYSnKODWwfRAY9kx/+9JjpMTG3Ov4Sq60XzyxVsWaPPn1bkrk0y2Z 1kmAISXh2+kX/qtr93t3uF0/znZn9lsS6VRVLjjhJ3MbYfpPgWxmgq6epXxeGCiYifIVWyFOllAQ PAltwbA2lLjWYWNupYrPlcTM6CZn4uzTT6QY3/W858rbd7g8eP8A4rMz8bKTtPc2PoVz8DI7reQe uHdVpwRMePhnYmMKTM54iIp1mZnwztQw2KrHbyOTtopUqy/RNsWDhax1noI6zqbDmAWEExhCAzMY DdxB81WDw+OxUOmIGXzRqqrnYKI6QbzAnHp04jnZF/llCctu/j3A3SeA3VG2qTlwXZJqBNcjHtEW qmfRxtuvKnLY/E0QwV1QlEnWdio7lSto9oEyiNSyMT2qeso6TtJFMCMRrMzOkREdszM9kbWdzd07 g3e7POs5mKrNag1oKeZi6bh6Wis6D3ZZSZVYqyVUSsHYf3Lb31uIkatNTsfhjPpzrr45d6yrrrIV qsnUk5jlmdxoBMsrs4PJXRy/HSydLmFh85WCCt442cEsCVkQBbpv4BixUaQwWkGltd4g4TXi6OL3 lrcZcq1jsvRpTKtZ4CfXzT8aSmSOnGtR2RA9RFzRjmT6Svxj3T+XdvSV+Me6fy7t6Svxj3T+XdvS V+Me6fy7t6Svxj3T+XdvSV+Me6fy7t6Svxj3T+XdvSV+Me6fy7t6Svxj3T+XdhTY3epYlc9tvIZ/ Csrh9sOLu5K3/oVi2jNX7AZ/e9qOV5Yyjl0sQLQ0sowyWcTYNsEVd2TdI2bFaOWpFBVi3XfspFVi 6+ew7W28K908KTlwgFuhYKBOQRdBaZ5gxquzXrHM8qGgbw/5Q7p2zKUulZWKte5yZKI88XM0ckkZ kiSwCsJnXmJOYLi27jdkd6d5A1iZoqZkb1fijsKaVfiRxRr6OVa+vtXyG+UTh8XHA3ysFgllrsai UJby5kMcox15smc3Q+ddzJMucutj6FddSlTSFetXSPCtKVxwgAx7HbM6kU6kUyUzPmP/xAApEAEA AgIBAQgCAwEBAAAAAAABESEAMUFRECBhcYGRofBAsTDB0fHh/9oACAEBAAE/IfwxrNE1zyAWictF 4HgdAURFLGJQUhgk3D0qq8Pw3wfsKsHiSLKzKk7DU9KhRC4i4gmkhUk0ATAXFsiF/qCEPwiMURp/ HvOdy2MnldqfwMxl1RgswcfMpsMUjLMgkB0cVpyC3ZMMJzm8AJH9VPwWAZWMzYMhE4BRkiATlZKe FB5RlMyOjPzHQLuyowiDMMnfCtwIJDUZCrXA4Ii3JIj8CWraDbgazROlGGChnuZev7xCx+IRWMJA 3s6LeVqQF7oEwySnpEYUicrIipQHeIt7yTe95ZPRPTj+kZCkH+IMGLVq1atWa3GYD7om/wAJ1reA Rai6KK+EkERjs4Llh+szJfkrA904stNe1owOBocQtbR8rqiPhDO3wUjQDmFT3ZlL6T3op88FioSf kIPh0LseIzGe7200d9M/rPpn9dwCGVoeJZy+sbw9VwLN00Hn1QxbuMBcmgQRclrWlngODKceXxkE JlWFZzZeJmKM/lwDAGQEcZBVpY0meGmCIdTUUgzKzFMh7kXkfUjiJrRopTDRMmKngUWpY6SEK14y hEdEvehuFs8yMw+6NZxf9EZ9tfvjl4GXxeXa5050+zf1HpJFsERMbkVcQSpsUcyogjLwWb6xjyGt hjUge9EJg2GlxIUh1FSaVfaWhjY25RSArhGAUzq8Xhn1yCQlkGDo3Roa2GFhI8eMSc9UedoXTyJe 33Pi1eY4gcgmaKIhzn/dAwGolSk5t2Nv9M242/0xSiM1J7EERBEhGxHYnI8mTnJsEpxvG4SYUGcu W6/pxBRPAPjmqHQDVERC6u9as7EWEq4UlDa+WiElySoU61OgaTU3om2FRlOFUeBXwBa2F+2PzuRp tH4jjBhDIy9FtYaTBgkE2MlpJ0k0xgYOYje2TA7h3YIS3GSNSyOAo8ObMbcb6+MVX2ZsCMUDsDlu W+8YtJ1F1/7z1xDtlbxReifRV4FgSKitiqd4YnILB68HwkJmo3ghz6uGfGl3Wyb6343E+nw55eyX xIMBRsUA9RiZJJEX6YK4Q2DQTHgMsfhBkqu9ONuNmNuJdGg+ydjHdMUchmnQkB0T1AcOfpupZyqy HhfoYwCCvVcyQFlkv9arPfHDLfMPQSBdy7Mkke6Kp7el5j9Sc+kf6z7QZ5fgzy/rPL+sdJkrSkKm SUwSU1h49zQIkQRsNPEMT5EbO6heRAMQTDEpIU2PCeeEBDIDcpyOuzJ8yu32jD7NVNvebuLBJmeU U+3ZCwgJ2GDL0xmbGksqmHvpGXooorCvEKWFTpACJvELu6Gu8K39ZdgSb/ERykQSJALBRJNOwE0B yMZ5c+1/5n2+meT955X2c8vw55fhxmYswYNVkOzVLI2rqXjE2I8SkWB2H05Xr+jDtcthphMmC5A5 2tRHZTyCQg5CEg75moqMPrMgMF20UDBFAgoiWIliOnJyjZHuCPEq5Xu+PHjxwH5Dh4x5FjgHyLJg 5IBPQLHgMYAQAHh2PTl/rGLiqw+guYm3Ex4YSmSdEkqmxGDQsX3xvCzwDCixHKEAxACeAFSljRVb NnUMdYeT0T1XRyJHRgQm5gjmZpON5Yt45iKzr7pEp4gJOGsEbGu4PjBNRQmMi5kYJ19YVBklfmer ZVaUyk2ftx6WgyFVpFUHXcJyv3jFicF6x6fvkhUTnyZ4e/n+DIUm2U9IW9mdc04lAZ2cN3NQgExW hnWh5xR4QoA1WsGoOiKZzQzbekHoRHkZWEODwp8Rj7TDRcpFEmedE0XtdS0ysgBYtdOAXGcEC3Ad Q9orb2KSlev6M0vi7myuYWHy8WacXMR7pdTycd//AELA/wChJDbuJpKMDiYjWH29jI6tn2qAa0i3 o07meZRuCpEqgOZ4wkzcIQargAkoJWDCnlaNTFB4CE5Q5TBdEfRDLwGqytCnDAH8sYKOaci+MDFj pywVKCROz3ct9oy82wfwFpPFiPkz/iVh8Hv/AFz5Me1ERoNMoFkgERBGPP71WLLDsUpB7E1KKKZG fpydKhZiYCTB1k2fidXQCQFyIPZxUBSABtBWDHrK6W/U1ygbyaXUcr/ZkUZyiS8fEQHQNZyuepT7 xm4fjKL9/XFWIrfA19B9Xf8A9NyHlp4AINy2PVoSS0Y0cEb6bEEkBFZzS9Fj54emxvITp/PAeEWG Jh4KslMsupBJUioced1UMQSC6OjKuceCp+wGR8afvjiUmEQikooFrsIDrhzHkUZ0yoVMli6g2GKp S6oBFjKbw8opP29cA0j3As+qXjM99s2n1Bz0hnuQzTimREqN2eRCHTDmg+VIGDVlzyTpJIsBCPUS nI3FfI/fZxrL2PM3TgbPIeYnla1SMMeGY/5BqjH5Pm04UF/dIx81L7NySLoGYBjgRwZ1zdGMwFzI hqJOBdvWBBuo2wKmKiW88xj2Gw2pMKbmitKWmBH4Od3PQf1O91RSP6+hcjQ4qLEiCIUiNiNI61kV kbGJiO69iYlMHDKiI8n8TywclB15/Vvvg5lUq6frOrDiNC3B1oah3EWAgz/0uGnYFWCSiDL/AH4I aZRSLQvZjL9cFdYQkHC7CZGkoAFdB4g5XrIR+vApDRgLOK+IB4fdrCCFcJu/5zwHsYtr5zlDwKBR hk6lXYnpJiIb0R2rrLRp9IHYG8k/wXYQlVlcgUKhFS6lnUtZVJNaoEDJGZ9pfc3hzg4iaFAikW5A EZBthxQmIQMhlIHY4fANiJyQkSq4JbWLxqrEn9Wbcj/wKKwFnkjOYA+OPAMtiDJIhwUApwKxZ6lm jHFQKGglHsPN8GokhYA4/EQ45MAALVYDF7ek7JWbIBjBkm50aOMGQEwd7kqJEbuDw2U5JOMucjlm Wxxgh/Eppppppppp/IntYejfo5yuvEl2ZBNVuz6JesIMnrFn7WcHNcY9IQEPogKVbLzAj5kogx4Z K4djAFS8QucIx3pWJ2BYErTTp2//2gAMAwEAAgADAAAAEAAAAAAAAAAIAAAAAAAAAIIwAAAAAAAB IHAAAAAAAABIOAAAAAAABxAAAAAAAAAAlAAAJIAAIICLwABBIAJJIM8yAJFs3f8AoRvIAAdwg+CQ RMSACQw/d0KTuQACF9xLIsQaSAAcxpt3ECCQAAOdSHjKCAAACBIBGnAAAAAACSSaoICQAACAQTzd mCQAAASCRkIuAQAAAQSAUHSQAAACCSCSSQAQAACQQQSQSSQAAACCSQSASSQAAQCQQQCSCQACCSSS SQCCCAD/xAArEQEAAgEDAgUEAgMBAAAAAAABESEAMUFRYZEQQHGBoSCx0fAwwVBg4fH/2gAIAQMB AT8Q/wAU22+1BSspwYyhBMWxYRQfKpE1R1pU8phiYAiCZyTEZAW/GxFL8qyEZYfxYBkUyu1+IzuN jJW3gNPIVgqAKqABKrQAWq6GGFhAeCJbLC8u/Km4kKBQ8OCGbAkhCD8olZIlDYjckzNUOAEqfk4b WRqL/Y3CYQsys4a0fYdnmyCIEBAQ76kwrSiITVhGulECXofQ7seRgtSnV16LnBGBGsLXIGqsCQKA AAABIFiTx3YnXfmoMLakhuBEeViJRCwNjiMeoAVFJgRCtv8AfMyAxRBPp01yOyk081YPSGLzS5Gk +ttSkq/XNNCdJp9YO+aFM0Vj4L364QNvZFfQlv8Au/0S/ftRS1HCBhk9oGaksrkHj2+xwCeEJQz7 xgSywkiTLRFLKFsSVuJJAqcAQsSosOpVY13VDWTGMR+b570kbMwh9c/T597kvMLI81jV+KMbq30C 4qhOUp6mMiGQ2ejYW+CKgSIxfAx8fjiPvjwenfo9va+DNLnxrvymvWSec2G8m+pUdXSiOKcCDmYu Sveb7uDCD0m/++p4lWVqyWBBsHxoDHcAq2CmAVglUBK1KqrZ+kgCrlDIQoZwIINCj62kPcj9dYwa jSXIEDqAibOFB5Q0XVQOei01PPqM9EQQmUBQkSxpEEyVqEIbgTcM3npuONL+z77Z8aavHaEOvQvK gqevvz8sJV4SDOJm/eae+HyD9/c1+jpR+svvzHQHMR0xWEMjeiZA7AzUTEwz9dX9T0hyHJ7X9sg6 S+z+Mmq/HfirwoWAwgllo6gxsHJ09UsKEwBbotYrA1ypGTIR1yS2NLfW5U/vOu1ZvC6STPHpPTX1 zT9M36Vx8F85ENjK2k/O8+seIQGJUCJYodTMU4GowiICY1beKfwBaR9bNYbiF5Wg5Ly93P0/8Ys8 +7Pzg9R7X92K8PaT+jACSAuDIHhNkqGyExxT4ipeCaQQe7BLabFoM1UdysnIEhhBuUk2O5Do9B7O BDkNFW82gR0Qaj/JCOjBGBNQwFEFpk7MYINyJ3GWRRW494/p8ZjVDJOTuZWw9x/rwLxKYmDzYTZi k7FEHYUBFcd/laNelWwIUeSlclNZB40KFPcsvtf68/fxt21ISf8A0VgCCgCgpR5O+k+ZItYhg1Ck x3O9GzXed2N0GHSm+D0U8/MXgie3I+MqIlARNwlGlTpLa7NEPI/Afth9jPAgogRUACAjIngRV/NR UMsoAVo41CzPYLRZGUh/b61j+UIAFfhrq1LFVfIiQ5E7mPqHARiK35Uh0piDlFmb2OTdllxSlmXU KmQTwmOk8cvffox8b4NhaI2bKVoSM+RfUYgJLHwK94NxHrijj9P5wduyeKQFK3f719//xAArEQEA AQMCBQMFAAMBAAAAAAABEQAhMUFRYXGBkfAQQNEgMKGxwVBg8eH/2gAIAQIBAT8Q/wAUvNQNpIgQ F3AVNu4FsHMJBoUGu/aS+lYA1zCFRaQEoONWe1f+HISTWdjri9DS4YtZWs7LX+wU2FPkt2oCqACq sAF1VsAXVxSKQU+kB4ZCsrYT7W8JZZ9OPRjZrXbXmv4FYQ8REpRiThPmH2fLUvlE4b6Y1kuLoKW6 QSXq3xOQjlhTfOE5HxU9ylfxDw5ev5Duz7HHmC5Ypw02Ug2abaLFImKdKxTOWtJ+/M2nU70Xb4CJ WBQoAgkIU/DN8AHBIjzBEDjwWURAcSciI/U1dH5xEDCfymnSRmFt2bi4SrsaYqWshpg1f4v0c1Os E2S30n5fDpI5qD8zb6NP+Gr/AMNVyD3/ANIkNhSeWGY/QS1dWJygRR9JUhF21lGxZGFDSFFUmwqC QAvVYX2wiiSGaRS2Wzcj0y9UoYEi7PyAQaZwsIb6YRCyjwDSy/vz5CH0S6/bn1BQWEQ0qbS0koIZ RgFxtwhljukXwbXxv/GzX5y4W16WlnX8VnQ6CvbTkhfWsw/E3e7c0602A6KW4cjO7ltTyIXiYs/H X0FERRERFERkRLiNxLjcoUj5fabfMrqMPrxZFkzopQwpEbCBo8QfBJgSog4EEVnP13UiD7jRwSRE IRkREZEk40USyCQpSwXYBABBlIORdSQwSoTFqtKNovQAKrgiC9iSJrI3NaJllfCnDw3jTris7DWw fBpDbW0y03euHPPDyZp1HF405RkxodKXKE3GPLlS6lvTyvJ9LpMHJa/YXTz7BOs0CyA40RxbOfsX PiBe3FOtL0B0NS2dj4qew7H6JrejgAxKpwILAUElnusSK5MNlVWABKR42QpVkSTYhM4NWfqMxN73 iCNXbbFN3LnA5tj+64a57ynpwztaHNT1IxzkHdtF++fWbbQ6BrrGNdmYASzBVfP8pZgVPsJYA4UO EMI1bQspXhNeE0x1fl/VR3dn4p3NtJS+1MmGUehJCGFLOGonYlYCIEkUZkfRNmlmLJMrsJEliS0I qE2ULyoCGb8bXIieDUxAwIRKA0g8RYaYb/bnXHaLJkUWQaC9Q5SGUMcZMSiglI0iOJ/7XK7HxXhN eE14TSCbbaST+6RovVj+tGgtShu+5S/rSW+kDYjpoWrvutxa+DkYDSQQEIITSuX1+gAID7rWdT1Q ABPwheCA3hQaBSb+zcbn2wEyFG102clxMStXMCOVSMlPBB5cL8qRMlzuzA2U2GQkCuacOWJBk23s TJzP3WQwQVHt0CN1VbtOwwpk3joUh6MyMDNMQMZi5BHUeD0nO/LzSoG+Y1CkqxPpBwAPYjCOzNN6 keIAWXh03bILNaYcWJmIAWicwAi9jLVpCdikDMdajDY15eXxTraDNDAHrQbMexHsJBkgKDAXOCKi tlRs1pHN2P8AdGsu13t7Mj/ejAF//8QAKRABAAICAQIFBAMBAQAAAAAAAQARITFBUWEgcYGR8BCh scFA0eHxMP/aAAgBAQABPxD+GhcnBo2I5GuWLnChXEx0pOmVoBkVEwKlKVhUjVin8NMUUCmcMUmU yUt8Rd+y08o1KAVhtxcSA4MsyoJVB/CLZ71Yq0XQ7oDLWgrdNtoUflltzzTwqIBkLLTVJTJT90yb i3wFk6qYqQfYEyIcL7/gvsw7gMQ1qrUmy5Q4XGb6tfqP7yOtzIYMQpOxhZ4hLw65UhR38GsFyHf3 2pEUqBQAqIABaq4AMq4D6BsTG6C28C9Fm8UVn8T0CotMs/vS+c8VVJhPqGXxtZGyGqcmYbowe3aV LPnifFSs6dH4nNOAp/4rFDgMGDBg3syKmM5gGwnAFQKufy3y+wXIkP0KDHAACDNss9FxLZfqvMRu 1TFAG12p0PiogEJKsTj0AYB6PkfwClXg5zt3M6ICIaw3h2hHYRFBcg1bvOm/JX2t858+/U+ffqdT 2D9P1SJO7/LgJ83/AFKtF8+kUgsj1iwFTrFOGaEIEu6JrTNmwyBECQFbMBbI3AK9PR+fSEdm1Ydz CpXoevvnpD0yLugwgMQSDLqpyrlpEBBxKE7fXMP1T9YU+qYFDZw8FWYEGXgaBqow15igckjSaygt a22Fi4j0IFd7GF3xLCyZtBreT24vnylooVYgqrzIccvMbBHWjt7XR0K84u17U/G/r9+ofAe+LcZ8 1glHr9iKtdjdqi6IWGqAqapqrLQixhgS0cRIANrrZKtS5cWiP3WhSLhxDM44QgFAthIuOpJUQPnT o8sc/royMk7PQ8NjVdEGIc08AO+xw6v8Pa/S+Ib9uiWRXGCApBgwt8F3Jl6JDroXLqk419tJ24l+ dHPmPXfbJN50W7NZrzKt1x330ys8MfNWUvnUZLLtprfQ9MOs0ZTQVO6a/wA+iJAAABEBAKIIiiJB aZKpHzAVLChIEBwN0mhsy/OZ3kHvCy1Vx24ziC7YUgBKT46HRLBenMraaMA3TkRo6UsLQUGJG9oL aTASdVssBBuKKxNgV8BhN+Xeu9DtBuWmcGmVMcV16She2xgU8ByW7MumBA9IVphvI3kj5BYJJLhP RIKMtAxO35dEt0oIzpNdK+/+nn3h8ubrB7ej1w+lvD6/uzWMd63BgevIc8B5mtc2sVpuF8PrDacZ C+Vn333l+XTar1szvQkVJ6VGknFNcMWuRIP4QrY2Nu0xjeQoxtKx8DgHy0DlCyk8UsFDtTLmwXB9 uwXQrwq77t0UxdfXep6f5X+/vE0FcvejxnAVh64th1nsfmX6/vLH/X7Y0UrB2NQdDxWwC35REYJ0 VpYrYZVcQE7XSyDq2EI/A5aUf+jRxiblx4xv5eefxN63N2Lj2vPfHetohrCma/pNGOOkvz76X4r+ 0fcl+0nRjLAHrOzIhWv1JevbRAkNl7PHhTnw9Mg5kC+OVBRyyz1Mq958hqQOg8B23Xl4Mr2c7+36 jEpVFjaIL5OsALxKxAvLz/rYd/2Ps/P3f/v+sKv7jPnlG+0aZEHEUsDYkhcX3x4Nfxn2ZTexXQW1 ybhcFesCoUAUFiDCJkvjJRHVSqXh5yKjZlDFmYOUeYvvjF3Jon0PiSvbAgFmJbToaopBSC4TZxdB LV1aTImsFNW9Ny4QEOthgDg8CT2qW6dGZRvdj2f3GMZSu5KwrRZbSggaZK57mIa6AqfS/Cxv5xAf 6V+xPI9mDjfyBfolvkfiCvf1o+xDez7n2fn6J7xlz/uXqCKOhNj0iIEaoGfEwcSb8P5KPmp3EcXD SHOci69SGRKYGIV+m5qro1E8bpCieLTiXnuxRdhjIE/yjAAgiIIiRkUKxYVYzph2C5Xw9OnTpsvR d5cfSX13pjafNG0cOt95FVSgpMDGCVBLiwedBt5dstC65LfuV254ncRPjcIqkY0XoFyhk0XzDm8W wyhYskyiHxLH1jTRsAIiIy6vFbEiUCs9jdmbBJiTFwKqZAAZFoYOkdFjNdLkWzF6bmVYzoOMd33u r7Ro78p+E82gU9adi4bT924Cq2psgT7u0g0U63nU0Rwx3Ru+p3XpzKtRYN6m88XGi10HLFHDoGGV 0cr8zNT52CZZzLaw5jBqEdZa9wz/AL5PcZfjcDAkS2xunNgXx5ocArtQvXroF6Rx4xzJ5x+Ji4JW XJCNUtwYCpWZ0s07rOKv19sO6ZVFpyPHdnmtJ91JYVUtjBK9g2NcWohYUgbEUqrI6+4DehtrRk8A cQ3SFgcCYUapSumM6+myGMBvhb434EYWbFQTgGhwmfFDfWt3V564s5aogB5FvKBevabUXSr635H8 epz3qUBg1GJV7GhJuFoyQqOF9DmXSvVXnnxCHbjjTMGMzfyKsFoamgjBFNcnldff/IAgDy2QiQzN SB68eVqTeCNxIpSWloYFN6HLxd0FxsEQheRB+QDpDV7sKsBUj04aI0kPkqDG9eqtY4qUC6Z6nSII Nlr0c89XPfFXrgYgcV0GkK02UqksrfZfZGdwHg72cjiLuipydGO6I53kTZ4wu1Vjx8x6s2ecVxFo 2IGTxcQqJ+3Ysr9SAy46ZPOKO7NV3qF56nTiBltYdwpoydSCRK8nQyrixlkXhFgGGP7pinkhTQRo xwiTSEwKW4UIPnW3rnprNqodYAujgMK1LJ2uDk+BbwAAMAAAAAEtLLv33NTvAnwqb8VB/wBy5Pyj GXcCloPyDHkLz43M49b8GWLfuXpBWs1oz1HSc95VpNbc8hgCJV0vF5zWE9N1jqLSapeBs4wsvN3y kcOsNxKVkA3kkWXagNFSBjAyRA+mQUFtUJcFb2KiGW193ppfg6cTj2PO/Je5sO8ZiZuFgqRSpM62 miA1RXDFVATvzPfR+Xwcxb+n8O9NuPBoyNll3bA+O70umGcKoCXRVzaW8ly8e3+s/llhGuYpai2l tIjS53Hvy9Pk17u/LqMqWTqEKFHIiVj/AImOkMjV6hg71LBVKcIoJkeCxIaogQ2A0mwArsF6Qxo5 c2slbKra5bVrF/RiEKqLUEeulpCMcSup3zxJFvb0/wC5zrtm9MMhRflhgFC0FbXLmM9TuPv0RHcl yqNdIEjEB1UGMWXo9WdI00KnwXzj5QRfs9YrbM2Lw5354tDkugioG3IFhGyQSFfSt7dyPwXsUBEQ USkQURyI4R1CEa2yt9bGNtVLQvbCsmhwOQhQoGyCRFEMO741tMLDRZ8Bi2BUXVELpqqpWrwBTgHQ uIypc5XWqtlDxwKUpEJ5WOtgRw56HpEM/ffbdosjzG2AVBWqrmyhZaMZVWgAy20d61agIggbJJ55 KhhSIokwTFFGDeh2FAYinKXx9w5LtYU468QIN9oFB4sES7FFUcvqEbvKlcuVl2/jdoEjGBnQWazA Q0jBiUAWTEqHg5loyoOKZErJKQMvPmDoRWIvMeVsBhWmXevuk4OKjk+/ygGZKpfU873VznmGUDSU gIIYVPoc3eb3fPnCbqyi5r9AQMq1IEBUaWseQ9KrtZGDIEGmbXFDWi12jG1zlolV0GAAAAY18UGg O07+PgrgoM4huUYkBQ0yJSAEr9rXDlb3I7m1HmQR50voicJI4CqBcDedqLkiYIigixE57UP8BOkq LxzYr7yhc0QQCyvSn0RFy7Gu95H3kfeR95H3kfeR95H3kfeRq50Lj2lLgyt1osS0ggC32+j+9AfG UqubMBKMtk1DAqVENCjpA2MJXr8ICIapOJUmTBriNEwNCgx18uEIRfA3CL//2Q== ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/radio.jpg /9j/4AAQSkZJRgABAgEASABIAAD/4QPrRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dz ADIwMDk6MDI6MTAgMTQ6MTA6NDEAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAAB AAAAEQAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAK1AAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgAEQAQAwEiAAIRAQMRAf/dAAQAAf/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//aAAwDAQACEQMRAD8A72/MzszKtow7Ps2PQ41vuDWvse8Rv9H1N9TGVfzf6Sqz9IjY mVm05bMPNcLhcHHHyGtDCSwAvpuZO31Nv6Rj60HZd03Ju3U2XYd9jrmWUtL3Vued91dlLN1z99rr LWPqrRaG35ubVkvpdj4uLuNLbRD32Pb6frbJ/RV11Ptr/SfpP0if9nDSz7bt/9D1VJfKqSSn/9n/ 7QjAUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAAAAAAAAAAAAAAOEJJTQPtAAAAAAAQ AEgAAAABAAIASAAAAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAA eDhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTQQKAAAAAAABAAA4QklN JxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZ mgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABw AAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAA AP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhC SU0EAAAAAAAAAgABOEJJTQQCAAAAAAAEAAAAADhCSU0EMAAAAAAAAgEBOEJJTQQtAAAAAAAGAAEA AAACOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAA A0EAAAAGAAAAAAAAAAAAAAARAAAAEAAAAAZnKlR9VA0AIAAtADIAAAABAAAAAAAAAAAAAAAAAAAA AAAAAAEAAAAAAAAAAAAAABAAAAARAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA EAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRv cCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAARAAAAAFJnaHRsb25nAAAA EAAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25n AAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAAN YXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRz T2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAA AEJ0b21sb25nAAAAEQAAAABSZ2h0bG9uZwAAABAAAAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVY VAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0 SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNs aWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxp Z24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAA Tm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9t T3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRsb25nAAAAAAA4QklNBCgAAAAAAAwAAAABP/AA AAAAAAA4QklNBBQAAAAAAAQAAAACOEJJTQQMAAAAAALRAAAAAQAAABAAAAARAAAAMAAAAzAAAAK1 ABgAAf/Y/+AAEEpGSUYAAQIAAEgASAAA/+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sA hAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwM DAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwM DAwMDAwMDAwMDAwMDAwMDAz/wAARCAARABADASIAAhEBAxEB/90ABAAB/8QBPwAAAQUBAQEBAQEA AAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIF BwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKD JkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eH l6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFy gpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVW ZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwDvb8zOzMq2jDs+zY9DjW+4Na+x7xG/ 0fU31MZV/N/pKrP0iNiZWbTlsw81wuFwccfIa0MJLAC+m5k7fU2/pGPrQdl3Tcm7dTZdh32OuZZS 0vdW5533V2Us3XP32ustY+qtFobfm5tWS+l2Pi4u40ttEPfY9vp+tsn9FXXU+2v9J+k/SJ/2cNLP tu3/0PVUl8qpJKf/2QA4QklNBCEAAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABv AHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBTADMAAAABADhC SU0EBgAAAAAABwAIAAAAAQEA/+EPzGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFj a2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0 YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMw MzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6NDA6MDggICAgICAgICI+IDxyZGY6UkRG IHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+ IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcv ZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5z OnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6dGlm Zj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5h ZG9iZS5jb20vZXhpZi8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9v bD0iQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOS0wMi0x MFQxNDoxMDo0MSswODowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDItMTBUMTQ6MTA6NDErMDg6 MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDItMTBUMTQ6MTA6NDErMDg6MDAiIHhhcE1NOkRv Y3VtZW50SUQ9InV1aWQ6RUU3MUMyODAzOUY3REQxMUIyQjRGMzU3N0E3QUNGOTUiIHhhcE1NOklu c3RhbmNlSUQ9InV1aWQ6RUY3MUMyODAzOUY3REQxMUIyQjRGMzU3N0E3QUNGOTUiIHBob3Rvc2hv cDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIg cGhvdG9zaG9wOkhpc3Rvcnk9IiIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlv bj0iNzIwMDAwLzEwMDAwIiB0aWZmOllSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6UmVz b2x1dGlvblVuaXQ9IjIiIHRpZmY6TmF0aXZlRGlnZXN0PSIyNTYsMjU3LDI1OCwyNTksMjYyLDI3 NCwyNzcsMjg0LDUzMCw1MzEsMjgyLDI4MywyOTYsMzAxLDMxOCwzMTksNTI5LDUzMiwzMDYsMjcw LDI3MSwyNzIsMzA1LDMxNSwzMzQzMjs4NEE3NzYzMEE4Mjk3N0Y1MEI0QTNERjYwRTg2QjFEMSIg ZXhpZjpQaXhlbFhEaW1lbnNpb249IjE2IiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTciIGV4aWY6 Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIx LDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0 ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3Mzgy LDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQx NDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3 LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQy MDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywy NCwyNSwyNiwyNywyOCwzMDtBMzVENzYxNzUwNzMxNkNCQTEyOTI2N0NGQjdDM0I4NiI+IDx4YXBN TTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOkVENzFDMjgwMzlGN0REMTFCMkI0 RjM1NzdBN0FDRjk1IiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOkVENzFDMjgwMzlGN0REMTFCMkI0 RjM1NzdBN0FDRjk1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRh PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/ eHBhY2tldCBlbmQ9InciPz7/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZ WiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAQAA9tYAAQAAAADT LUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0 AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRn WFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAA AIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAE PAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBI ZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAA AAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAA AFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+E AAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRw Oi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNS R0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNS R0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29u ZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRp dGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk /gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAAB AAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8A FAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCf AKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgB PgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIU Ah0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0D OANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASa BKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgG WQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRgha CG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4K xQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10 DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQG FCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX 9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwq HFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg 8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3 JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2kr nSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGC Mbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4 FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7g PyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJG Z0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4l Tm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxW qVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19h X7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo 7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3Km cwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9 QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02T tpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+L n/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+ms XKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blK ucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPH Qce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO 1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vk c+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn 9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////7gAOQWRvYmUAZEAA AAAB/9sAhAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgIC AgICAgIDAwMDAwMDAwMDAQEBAQEBAQEBAQECAgECAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwP/wAARCAARABADAREAAhEBAxEB/90ABAAC/8QBogAAAAYC AwEAAAAAAAAAAAAABwgGBQQJAwoCAQALAQAABgMBAQEAAAAAAAAAAAAGBQQDBwIIAQkACgsQAAIB AwQBAwMCAwMDAgYJdQECAwQRBRIGIQcTIgAIMRRBMiMVCVFCFmEkMxdScYEYYpElQ6Gx8CY0cgoZ wdE1J+FTNoLxkqJEVHNFRjdHYyhVVlcassLS4vJkg3SThGWjs8PT4yk4ZvN1Kjk6SElKWFlaZ2hp anZ3eHl6hYaHiImKlJWWl5iZmqSlpqeoqaq0tba3uLm6xMXGx8jJytTV1tfY2drk5ebn6Onq9PX2 9/j5+hEAAgEDAgQEAwUEBAQGBgVtAQIDEQQhEgUxBgAiE0FRBzJhFHEIQoEjkRVSoWIWMwmxJMHR Q3LwF+GCNCWSUxhjRPGisiY1GVQ2RWQnCnODk0Z0wtLi8lVldVY3hIWjs8PT4/MpGpSktMTU5PSV pbXF1eX1KEdXZjh2hpamtsbW5vZnd4eXp7fH1+f3SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6 SlpqeoqaqrrK2ur6/9oADAMBAAIRAxEAPwDbc3p3H3n3R2hv3YfSm8Yem+rurtx13X24uy6Lam19 5dib73/jabEVW4YevBu9dx7F2ttjY9ZWT4msqMtgstU1uYp6iOOGnhpRLVH7JtuzWtnJe2f1W5Tx iQRs7pFHGSwXxNGmR3kADgJIgVCpJJaih3xty3a6u4rG7+m2+BzGZAqvJJIAC3h69SIqElCWjcs4 IAAWrCH1N2h3LsntTb/SffOYw/YFF2LiNyZbqHt/DbbodmVtdktmY/FV24et+xtvUeWqcVPvWoxF RV5jG5HD0tDj63H0FZHJR0slKrVWri32+/26XdNshaCSFlE0JYuAHJCyRsQCEBARlcsysykMwbtc trncLLcItt3KVZo5lYxShQhJQAtHIoNC5FXVkCqVVgVUr3f/0Ntv+D7t+LvZXZj1/Wu/Owuheyt+ bs7b27urqPZ2S3/uLqzce+a+l3B2JtDeHXO2qjL9i7ko9ydgZTLbgx2R29h8jpGQnpaqCFoYZqkS ywW2/wAFlLHeww7vDCkTpK4jWVYwVjdJGAjUrGEjZZHX4Qyk1IUMxyXGxXF5HJZyy7VLK8qtEhdo mc6pEeNayMGkLyK0aN8RVgKAsvtlYzffe/c/X/aWf683P1Z0/wBHDdmV66wvY+MpcR2D2N2bvLab bLj7FO26bM1tdsXae0dhbm3DiKejzNPTZqvqsxNLJTUkNPF91Wb6TZ9su7CG7jn3G60CQxkmOOJH 1+HqIAd3kWNyUJRQgAZiTpchF1u25Wt9LaPBt9tqMYkFJJJHXR4mmpKKiNIoDgOxckhQBq//0d/j 37r3Xvfuvdf/2Q== ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/checkbox.jpg /9j/4AAQSkZJRgABAgEASABIAAD/4QP0RXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dz ADIwMDk6MDI6MTAgMTQ6MTE6MDQAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAAB AAAAEQAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAK+AAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgAEQAQAwEiAAIRAQMRAf/dAAQAAf/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//aAAwDAQACEQMRAD8A7TGd1TLddZ+0L6gMjIraxjMfa1td1tFbR6mNY/6Ff571YA6h i5uAH592RXkXOqsrsbQGkCjIvGtGPTZu9Shn56DgZdWIL6r6ckWDKyXe3FyHtLX5F1tbm2VUPre1 9b2u9rkazLry87praKsj9FkOssdZj31Na37PlVbnWZFNVf8AOW1s+kn0bOmmvRZpQ1106v8A/9D1 VJfKqSSn/9n/7QjMUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAAAAAAAAAAAAAAOEJJ TQPtAAAAAAAQAEgAAAABAAIASAAAAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQN AAAAAAAEAAAAeDhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTQQKAAAA AAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAAB AC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJ TQP4AAAAAABwAAD/////////////////////////////A+gAAAAA//////////////////////// /////wPoAAAAAP////////////////////////////8D6AAAAAD///////////////////////// ////A+gAADhCSU0EAAAAAAAAAgACOEJJTQQCAAAAAAAGAAAAAAAAOEJJTQQwAAAAAAADAQEBADhC SU0ELQAAAAAABgABAAAAAzhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQA AAAAOEJJTQQaAAAAAANBAAAABgAAAAAAAAAAAAAAEQAAABAAAAAGZypUfVQNACAALQAyAAAAAQAA AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAQAAAAEQAAAAAAAAAAAAAAAAAAAAABAAAAAAAA AAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABS Y3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAEQAA AABSZ2h0bG9uZwAAABAAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAA AAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNs aWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJ bWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExl ZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAABEAAAAAUmdodGxvbmcAAAAQAAAAA3VybFRFWFQAAAAB AAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEA AAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxp Z25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVudW0AAAAP RVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVTbGljZUJH Q29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNldGxvbmcA AAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQo AAAAAAAMAAAAAT/wAAAAAAAAOEJJTQQUAAAAAAAEAAAAAzhCSU0EDAAAAAAC2gAAAAEAAAAQAAAA EQAAADAAAAMwAAACvgAYAAH/2P/gABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFk b2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwM DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwM DBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAEQAQAwEiAAIRAQMRAf/dAAQAAf/E AT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcI CQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMH JZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaG lqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEU obFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSF tJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A7TGd1TLddZ+0 L6gMjIraxjMfa1td1tFbR6mNY/6Ff571YA6hi5uAH592RXkXOqsrsbQGkCjIvGtGPTZu9Shn56Dg ZdWIL6r6ckWDKyXe3FyHtLX5F1tbm2VUPre19b2u9rkazLry87praKsj9FkOssdZj31Na37PlVbn WZFNVf8AOW1s+kn0bOmmvRZpQ1106v8A/9D1VJfKqSSn/9k4QklNBCEAAAAAAFUAAAABAQAAAA8A QQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBz AGgAbwBwACAAQwBTADMAAAABADhCSU0EBgAAAAAABwAIAAAAAQEA/+EPzGh0dHA6Ly9ucy5hZG9i ZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6 TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0i QWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6NDA6 MDggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8w Mi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5z OmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8v bnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94 YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90 b3Nob3AvMS4wLyIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iIHht bG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIiBkYzpmb3JtYXQ9ImltYWdl L2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6 Q3JlYXRlRGF0ZT0iMjAwOS0wMi0xMFQxNDoxMTowNCswODowMCIgeGFwOk1vZGlmeURhdGU9IjIw MDktMDItMTBUMTQ6MTE6MDQrMDg6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDItMTBUMTQ6 MTE6MDQrMDg6MDAiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6RjQ3MUMyODAzOUY3REQxMUIyQjRG MzU3N0E3QUNGOTUiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6RDIxNTNDOTkzOUY3REQxMUIyQjRG MzU3N0E3QUNGOTUiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxl PSJzUkdCIElFQzYxOTY2LTIuMSIgcGhvdG9zaG9wOkhpc3Rvcnk9IiIgdGlmZjpPcmllbnRhdGlv bj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOllSZXNvbHV0aW9uPSI3 MjAwMDAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIHRpZmY6TmF0aXZlRGlnZXN0PSIy NTYsMjU3LDI1OCwyNTksMjYyLDI3NCwyNzcsMjg0LDUzMCw1MzEsMjgyLDI4MywyOTYsMzAxLDMx OCwzMTksNTI5LDUzMiwzMDYsMjcwLDI3MSwyNzIsMzA1LDMxNSwzMzQzMjs1Q0I4NDQ0OEVEQzI5 NkZFQjg1QzkzRTcyNUQyM0FCNiIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjE2IiBleGlmOlBpeGVs WURpbWVuc2lvbj0iMTciIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2 ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3 LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3 Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgz LDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQx NzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkz LDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwx NSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtBMzVENzYxNzUwNzMxNkNCQTEy OTI2N0NGQjdDM0I4NiI+IDx4YXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlk OkVENzFDMjgwMzlGN0REMTFCMkI0RjM1NzdBN0FDRjk1IiBzdFJlZjpkb2N1bWVudElEPSJ1dWlk OkVENzFDMjgwMzlGN0REMTFCMkI0RjM1NzdBN0FDRjk1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8 L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/4gxYSUNDX1BST0ZJTEUAAQEA AAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAA AAAAAAAAAAAAAQAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0 AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBk bWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAA ACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAA AENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAAB FsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3 hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5j aAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQg UkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQg UkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAs UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJl ZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJ VgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQg Y3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgA bQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7 AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkB wQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLB AssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWm BbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YH mQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnP CeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwM dQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9e D3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMS wxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZs Fo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGnca nhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8T Hz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/Ak HyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClr KZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQv Wi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWH NcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8 ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9 Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxL U0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+Vc NVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9 ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRv Hm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkq eYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qE HYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82 j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWb QpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adu p+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0 nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hj wl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQ OdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i 3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7Zzu KO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26 /kv+3P9t////7gAOQWRvYmUAZEAAAAAB/9sAhAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMDAwMDAwMDAQEBAQEBAQEBAQECAgECAgMDAwMD AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwP/wAARCAARABADAREA AhEBAxEB/90ABAAC/8QBogAAAAYCAwEAAAAAAAAAAAAABwgGBQQJAwoCAQALAQAABgMBAQEAAAAA AAAAAAAGBQQDBwIIAQkACgsQAAIBAwQBAwMCAwMDAgYJdQECAwQRBRIGIQcTIgAIMRRBMiMVCVFC FmEkMxdScYEYYpElQ6Gx8CY0cgoZwdE1J+FTNoLxkqJEVHNFRjdHYyhVVlcassLS4vJkg3SThGWj s8PT4yk4ZvN1Kjk6SElKWFlaZ2hpanZ3eHl6hYaHiImKlJWWl5iZmqSlpqeoqaq0tba3uLm6xMXG x8jJytTV1tfY2drk5ebn6Onq9PX29/j5+hEAAgEDAgQEAwUEBAQGBgVtAQIDEQQhEgUxBgAiE0FR BzJhFHEIQoEjkRVSoWIWMwmxJMHRQ3LwF+GCNCWSUxhjRPGisiY1GVQ2RWQnCnODk0Z0wtLi8lVl dVY3hIWjs8PT4/MpGpSktMTU5PSVpbXF1eX1KEdXZjh2hpamtsbW5vZnd4eXp7fH1+f3SFhoeIiY qLjI2Oj4OUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6/9oADAMBAAIRAxEAPwDZ167yPyf7hruz dx/7ON3lsuio/kZ8pNh4PauzdhfEeTbu39q9V/JPtbq/aGLx0+8/jFvHdNV9ptbZ9Gs09fk62pnn DyPJ6rAU7re7btNzbWMfLNlKBZ2jl5HvNbNNawzOTou0TLu1AqKAKCnQT2623Pc4bm7fmO8i/wAb ukCIlppVYrmWJANdq7miIKlmYk1NehXhg+QHVHdXxMps18r+5u1trdtd27v613psvsPZnxeocDW4 Wk+LXyP7Wx1VSZDq746da7xx+Vx+7+r8XLHJFlVheFZYpYpFk49bz7dum28wN/V+0t57e1SVHie6 LBjdW0RBEtzKhBSVhla1oQRTq80W47buOwg79dXEM900bpItsFKi2uJQQYreNwQ8anDUpUEGvX// 0NonortfbHT1L2jtDsPrf5QUG44vlH8yNwlsB8MPl5vzBV2A3t8tO6t77PzeE3fsHo/c+0dw4jcO 0Nw0NfTVNBXVMLw1K+oMGUDDeNluN0urW9s7uxNu1jZL3XlpGwaOzgjdWSSdXUq6spDKDUdA/ad2 g223u7S7tL0Ti9vG7bO7dSr3czoQ6QsjBkZWBViKHoTNx9tbb7o7x+FOL672H8ig2xvkTvTfW8cx vr4m/KPqLam3Nqf7Jz8rtjx5TK707b6e2PtGm+63fvfE4+CA133NRU10axxv6tOrXbJtq2rmV7y6 s/1bNI0Ed1ayszfWWr0CRTO5oiOxOmgCmp6vcbjFue58uJaWt3+ldu7l7W5iVV+kukqXliRBV3VQ K1JYUHX/0d/j37r3Xvfuvdf/2Q== ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/help.gif R0lGODlhZAAhAPcAAIzIruPo5sXPy46sn173tJT60WaHeZuqpGuahouelkX1qUzLlE7tqjT1oj31 pfz//k32rsXWzn35xUSHaiSbZ3XtuxtHNKq4sleHc7P73XT5wC2kcUvkoyOrcFiphiL0mx/bi1Dy rbnVyWb0tnHzuyN4UzfFiGXnrzJVR0qsguT+8ipLPSTCfmmmjB6JWyh/Wtf97Rs+Lwzyj8bb0iKj ayGzdDN5WyQ/NFNuYiHrlof5ylDVm4rsxcfg1SRlSqT71jZsVjbYkX3btWn3uVOcfRj0ljTmmUNp WvP++mnWpyTMhBftkZGlnDm9hFb2spL4zgDyiVPdoXjTr0+7jJKfmmz4u8P85CDkkSj1ncrU0ESS cGbrsjyCZCJrTEndniu7ffL29FnrrKbJukake4L5xlZ7a7nDv1LBkHWbi2R8ciG9emfJn0GbdDNh TUTxp5u8rh3Shm3Fn8rc1Fe8kS7Si0zophX0lMv86DSWbE7QmFhuZVTurKz72hjxlNXb2Ij4ySjk kyiHX3zxvwDxhBbiiknDjpG9qkyifY75zvHz8h7WiBzGfpK1pizekYKTjITxxAzzkLz84Ye9pdfn 4C+OZVvBllbkpkOzgi21elC9jYaynxfrkGmzlFLZno3wyR/gjk62iSrtmUyCbDaxfHPEoizLhpz6 0SJdQ3n5wlyvjEiad1uQeSbWion5y2D3tibbjlnSnZq4q1vWoFH2sGCdg0DcmVCNc0L2qTTPi0Pv pTt9YEiqfynplk6Vd2C7lS3Egmf5umWwkCe2eBfpjyC4dituUR/0mVXIlVxvaEi+ilGuhnz4w0uw hGX2t3OIfx3Pg8jPzETzqEeofhfvkiXQho+emAzvjiCQXyPHgE5tYTSndjaJZfH39b3g0TD1oDWD YHDgsI/60Bz0lGDhqGi+m3+znH6plmy4mVWQeRLzjpqvpvP29fL19C/Yj1bKmIDku13FmBxSO1nL mTtXTEG5hqr72I/5ys7f2ADyhKj71wPyi6L61BL0lCr0njj1pP///yH5BAAAAAAALAAAAABkACEA AAj/AP8JHPhAhZV8CBMqXMiwocOHECNKzPcjAwwkAzNq/Aejirci/EKKHEmypMmTKFOqXBmyyAcn GTBuHFivgUss/XLq3Mmzp8+fQIMKHZoTy4cixjTI3JihQT9/UKNKnUq1qtWrWLNqtdrgA6qlA2FA 8KegrFmz0dKidcM22tm3cOOaZZsrV9uyad2+Tds2Gls3de2ylVv2lr8fGh88uTWrseNZIUIwmEyZ cp06DCI7jjz5sufPmCvX4eCltBcOHC6jTh2agerVq02XTp35sW0IrlRkVDHECYHfwAnsCWMpSqco yI3vyLPjuKUw0IlHWb6guvXqzI8j37GgULJkha5b/8++PY/46oW8g1/Q6bnv4MFhZrzTrNmQ+/hH bBkH68yUKZlkMgUozOySAiiZHAOLLLLA4s4ZBO4izYS7VJgCM6CcccwxEErDBhFEsMHGGBKOMYY0 B2ZyBoQpSGPiibuYKOKIzJwByzhbjIDfjkO4YkpGVlShwZBEakACOLDMIYkIRKjipBa03KOJFqoo M0cllcyhzCFaTMDFl2ByMYEWVKawpRZcAMEOGG0AYYMutiAgJy1UHnIIES3IKaeXq8TiZyxviOFB JUlsQUKRRVZhygMDWaEBGRJEGukyFSThCxGT/IMAEJy2ccA/WbQ5AREeeIDnOjNpFIAtE4iQKhPQ ZP+ERgSi6AKGqivMNIMHa4AjiKTASoDKD4wKZIUErSSr7CPvxOEBBgIFkOpA69AiSizTauQMEExk AU2s/3wLjSPSfvrPBf8Y0IZAfkDjh0A3CHRBNdXEKgcR5AjxiLL8tkIGH8X+c0crTxRssCdCnINO AgKBO+06GByhTrg3VBwrFRVXLFAabWQjbsPQmJEIxSP/k8gRuf6DzA3IwCvQyjdQASo65wjhicE4 P4FIBgHfgUgBQAP9BA9StCCKGf8EkHHFMkOTMQpHRP2p0xb/g3HGG6MwDxVcd02FIxcEkAYyznA9 j8Yqs+xy2jGDigEnNgctdwHh8DzQHWQgorfenrz/QwoRZTR8gxniSpuIuBe02QYT2WaEzAo3ODxQ Ikhri7YjyDiytkZZiBKMFDzsLToiOthtrAQ6pJ76I0KQY4sADevRuLqLNz6QHpDHeoC0sv9zQyKJ HPBuIpDHu5HxnE+QihSPqO68Dv8G7CgZ1FMvCDi+tDAQNL3roQe6fuiRhkC0M0515P9Us7RAelQs LTQjg+uI5GZUcza77q7d/g3VgKp8EoKongDJsIx8BCwSGgDWMq7nC1qwI369i0EM+gcNCZIPCLWr oARjVQ0JWvAf7ZuHycT1rXcJhHADcUQM2BeDCLJwgv5LRRIqECxJaYBYA4kEMBBFghPAQxVA6J8A /3pHL9gFoBrmMgAGGZcIAXxrZAFw4rdY+KkmCuCKVzQZFgUQAOKtEIQtFMgX51UN2GWBC8qYIaKI pKiAZYAAVYhjHEdwAnmMQReME8ARGocOGxSDcbb7Bw4sEMjJzYOQgowBDgQiwo2ckRmy2IIcJ1mF ZhTAjU6ojybpCIsUbGMA/xBADA4QvATAzg8JSMAAzPENP4JSADiI5bsuEMtYCqQM8UhDGhb5j1T6 0pcCGeQpTnHCBKDrH84wmS/N+I0UwGILmoxmMwjwBDfiBj5h6MQl8MCIUMbglCt4lwot4AMbtLIY WfgHEyzATtglwINfLMMp4mEBXv7yl8E8RTFscP+rjCRCWhfwIMMisI1L7CAM8AGOE+wRMD4owAkQ jegevEAPbnpzfCYTCApiEI8uvOCjxZAWGrrgAx9EQJ30ZKdAMEDSeGTDdmUoASXw0AJGMMGX0voH CtgZg4FSwqB7iKhQnQCBPwQsHw6AgFKXygAvNAEPhvBmDAwwOTMkwACr6MVHJyAQLQTiq3L4ByO6 gIEBgPIfqyjBPpP5j2xkwwD3FMgqKKGNUWiDEl2wAApg9w91DFMU8ZjYDPDQhFowYKmIhcAtyBCw HzQALm6ohQk2EFUBmDJb3NBCVCdBgQ1sQBvd+IckXpCpgfQiENoLJC020AQTNGEDgTipvLpQAjH/ ZEQEGzBBLXIhFwcso6HecIBwh+sAI+ACEwBI2kACgIF49GkG/eQGG1LBjThg4gu/+EUT4rABCnCi B+ANBgVooIwezCAC6L2AWQeAAFGIgh3/SAUmcBGEIHxhA9GihQuu4V1uCKQHypivEYhL4AZo4IAN 8EYDFsxgI7TjF6MAgCrKIQkilMAFGL6Ghikw3g7UQBgsKAUd6NAOOvyCBV/oAA1W3AFhfEEYHaDA NTCc4RljOBgAqEEp2mEEI9CBBZUgRYddXAMacJgGwihFI4zA4CYvGAu/DYsDjNGTUACCFdiogYpZ XIMaEKPLXSaGGliADWqwohGASDMgXsEKamCD/wVkLjM1lIANNXzZy2K2MzH2rAYlvIIXgL5ynces BGrMmQVqGDM1/hyKnxhlHxpBBT8+QOlKfyAHVwDBMxbB6UU8Aw6KCDUcRg1qEIDgE1fIgapXjelP mPrUn4g1CEQ96lDb2taoZrWrQ33qK1xh14o4taotTewiNEA388ECJIrA7Gb3YRrDIIS0pT2MTSxh GkvYxCaqbe1pTKMPzQ53H57t7XGPG9vatva1sZ1tbV8b3OdO97uf3e53h/vedoBEAWbyAxlAARIA B7gMBm6Nghd84AFPuMIXzvCGK3zgEJdBwCOOcIc3XB/4cAVYMmIKcQwCH1DQh8hHTvKSm/zkKEtP ucpXznKRQwEKg4ACMDauERgMQRz6+Dg+ds7znvv850APutCHTnSixzwdEACY7QpihXrs4+lQj7rU p071qlv96ljP+j4icZFUBQQAOw== ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/images/gas2.gif R0lGODlhFAAZANUAAAAAAP///1FPT2hmZjQzM05NTUlISEZFRURDQ0FAQHp5eWloaFlYWIGBgX9/ f319fXx8fHl5eXd3d3V1dXR0dHNzc3FxcXBwcG9vb25ubm1tbWtra2lpaWZmZmVlZWNjY2JiYmFh YV9fX15eXl1dXVtbW1hYWFVVVVJSUlFRUU9PT05OTkpKSklJSUhISEdHR0ZGRkVFRURERENDQ0FB QUBAQD4+Pj09PTw8PDo6Ojk5OTc3NzY2NjMzM////wAAACH5BAEAAD4ALAAAAAAUABkAAAasQJ9Q GLPljsgba8gUanqGzmf6Gax6TSbmlhVyuz4NDPxygTExcGu266LBMUiMl7WMu66NTJfdghMaNzlZ FT01AgWJBSo0WBlmTRc9k5SVQiJZkpWbQiNZDpucPiRZE6GVIT4efaeUOiYgma2TEyknsrMKIKRN GLM9EQyqTaCzFB/DTKazGiVCt0MLvw3QCEwSvz4dQgRMD9k+KT44TBzgBz18Qyi/yEONv6FCQQA7 ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/style.css hr { height: 1px; color: rgb(230, 234, 233); } a { color: rgb(199, 95, 62); text-decoration: none; } a:hover { text-decoration: underline; } #mytable { margin: 0px; padding: 0px; width: 700px; } .activeRow { background: rgb(255, 255, 204); } caption { font: italic 11px/normal "Trebuchet MS", Verdana, Arial, Helvetica, = sans-serif; padding: 0px 0px 5px; width: 700px; text-align: right; = font-size-adjust: none; font-stretch: normal; } body { font: 12px/normal Arial; font-size-adjust: none; font-stretch: normal; } th.oil { background: url("bg_header.jpg") no-repeat; font: bold 11px/normal = "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; padding: 6px 6px = 6px 12px; text-align: left; color: rgb(79, 107, 114); text-transform: = uppercase; letter-spacing: 1px; border-top-color: rgb(193, 218, 215); = border-right-color: rgb(193, 218, 215); border-bottom-color: rgb(193, = 218, 215); border-top-width: 1px; border-right-width: 1px; = border-bottom-width: 1px; border-top-style: solid; border-right-style: = solid; border-bottom-style: solid; font-size-adjust: none; font-stretch: = normal; } th.nobg { background: none; border-top-color: currentColor; border-right-color: = rgb(193, 218, 215); border-left-color: currentColor; border-top-width: = 0px; border-right-width: 1px; border-left-width: 0px; border-top-style: = none; border-right-style: solid; border-left-style: none; } input { font: 11px/normal auto; font-size-adjust: none; font-stretch: normal; } select { font: 11px/normal auto; font-size-adjust: none; font-stretch: normal; } .nothing-text { color: rgb(79, 107, 114); } .justify-text { text-align: justify; -ms-text-justify: inter-word; } td.nothing { background: none; border-width: 0px; border-style: none solid none = none; border-color: currentColor rgb(193, 218, 215) currentColor = currentColor; font: 11px/normal auto "Trebuchet MS", Verdana, Arial, = Helvetica, sans-serif; color: rgb(79, 107, 114); font-size-adjust: none; = font-stretch: normal; } td.oil { font: 11px/normal auto "Trebuchet MS", Verdana, Arial, Helvetica, = sans-serif; padding: 6px 6px 6px 12px; color: rgb(79, 107, 114); = border-right-color: rgb(193, 218, 215); border-bottom-color: rgb(193, = 218, 215); border-right-width: 1px; border-bottom-width: 1px; = border-right-style: solid; border-bottom-style: solid; font-size-adjust: = none; font-stretch: normal; } td.alt { background: rgb(245, 250, 250); color: rgb(121, 114, 104); } th.spec { background: url("bullet1.gif") no-repeat rgb(255, 255, 255); font: bold = 10px/normal "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; = padding: 6px 6px 6px 12px; text-align: left; color: rgb(79, 107, 114); = text-transform: uppercase; letter-spacing: 2px; border-top-color: = currentColor; border-right-color: rgb(193, 218, 215); = border-bottom-color: rgb(193, 218, 215); border-top-width: 0px; = border-right-width: 1px; border-bottom-width: 1px; border-top-style: = none; border-right-style: solid; border-bottom-style: solid; = font-size-adjust: none; font-stretch: normal; } td.spec { background: url("bullet1.gif") no-repeat rgb(255, 255, 255); font: = 10px/normal "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; = text-align: left; color: rgb(79, 107, 114); border-top-color: = currentColor; border-right-color: rgb(193, 218, 215); = border-bottom-color: rgb(193, 218, 215); border-top-width: 0px; = border-right-width: 1px; border-bottom-width: 1px; border-top-style: = none; border-right-style: solid; border-bottom-style: solid; = font-size-adjust: none; font-stretch: normal; } th.specalt { background: url("bullet2.gif") no-repeat rgb(245, 250, 250); font: bold = 10px/normal "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; = padding: 6px 6px 6px 12px; text-align: left; color: rgb(121, 114, 104); = text-transform: uppercase; letter-spacing: 2px; border-top-color: = currentColor; border-right-color: rgb(193, 218, 215); = border-bottom-color: rgb(193, 218, 215); border-top-width: 0px; = border-right-width: 1px; border-bottom-width: 1px; border-top-style: = none; border-right-style: solid; border-bottom-style: solid; = font-size-adjust: none; font-stretch: normal; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/modules/system/system.base.css?nv614b #autocomplete { border: 1px solid currentColor; overflow: hidden; position: absolute; = z-index: 100; } #autocomplete ul { list-style: none; margin: 0px; padding: 0px; } #autocomplete li { background: rgb(255, 255, 255); color: rgb(0, 0, 0); white-space: pre; = cursor: default; -ms-zoom: 1; } html.js input.form-autocomplete { background-position: 100%; background-image: = url("../../misc/throbber-inactive.png"); background-repeat: no-repeat; } html.js input.throbbing { background-position: 100%; background-image: = url("../../misc/throbber-active.gif"); } html.js fieldset.collapsed { height: 1em; border-right-width: 0px; border-bottom-width: 0px; = border-left-width: 0px; } html.js fieldset.collapsed .fieldset-wrapper { display: none; } fieldset.collapsible { position: relative; } fieldset.collapsible .fieldset-legend { display: block; } .form-textarea-wrapper textarea { margin: 0px; width: 100%; display: block; box-sizing: border-box; = -moz-box-sizing: border-box; -webkit-box-sizing: border-box; } .resizable-textarea .grippie { background: url("../../misc/grippie.png") no-repeat center 2px rgb(238, = 238, 238); border-width: 0px 1px 1px; border-style: solid; border-color: = rgb(221, 221, 221); height: 9px; overflow: hidden; cursor: s-resize; } body.drag { cursor: move; } .draggable a.tabledrag-handle { height: 1.7em; overflow: hidden; text-decoration: none; margin-left: = -1em; float: left; cursor: move; } a.tabledrag-handle:hover { text-decoration: none; } a.tabledrag-handle .handle { background: url("../../misc/draggable.png") no-repeat 6px 9px; margin: = -0.4em 0.5em; padding: 0.42em 0.5em; width: 13px; height: 13px; } a.tabledrag-handle-hover .handle { background-position: 6px -11px; } div.indentation { margin: -0.4em 0.2em -0.4em -0.4em; padding: 0.42em 0px 0.42em 0.6em; = width: 20px; height: 1.7em; float: left; } div.tree-child { background: url("../../misc/tree.png") no-repeat 11px; } div.tree-child-last { background: url("../../misc/tree-bottom.png") no-repeat 11px; } div.tree-child-horizontal { background: url("../../misc/tree.png") no-repeat -11px; } .tabledrag-toggle-weight-wrapper { text-align: right; } table.sticky-header { margin-top: 0px; background-color: rgb(255, 255, 255); } .progress .bar { border: 1px solid currentColor; background-color: rgb(255, 255, 255); } .progress .filled { width: 5px; height: 1.5em; background-color: rgb(0, 0, 0); } .progress .percentage { float: right; } .ajax-progress { display: inline-block; } .ajax-progress .throbber { background: url("../../misc/throbber-active.gif") no-repeat 0px; = margin: 2px; width: 15px; height: 15px; float: left; } .ajax-progress .message { padding-left: 20px; } tr .ajax-progress .throbber { margin: 0px 2px; } .ajax-progress-bar { width: 16em; } .container-inline div { display: inline; } .container-inline label { display: inline; } .container-inline .fieldset-wrapper { display: block; } .nowrap { white-space: nowrap; } html.js .js-hide { display: none; } .element-hidden { display: none; } .element-invisible { height: 1px; overflow: hidden; position: absolute !important; clip: = rect(1px, 1px, 1px, 1px); } .element-focusable.element-invisible:active { height: auto; overflow: visible; position: static !important; clip: = auto; } .element-focusable.element-invisible:focus { height: auto; overflow: visible; position: static !important; clip: = auto; } .clearfix::after { height: 0px; clear: both; display: block; visibility: hidden; content: = "."; } * html .clearfix { height: 1%; } *:first-child + html .clearfix { min-height: 1%; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/modules/date/date_api/date.css?nv614b .container-inline-date { clear: both; } .container-inline-date .form-item { margin: 0px; padding: 0px; float: none; } .container-inline-date > .form-item { margin-right: 0.5em; margin-bottom: 10px; vertical-align: top; display: = inline-block; } .container-inline-date .form-item .form-item { float: left; } .container-inline-date .form-item { width: auto; } .container-inline-date .form-item input { width: auto; } .container-inline-date .description { clear: both; } .container-inline-date .form-item input { margin-right: 5px; } .container-inline-date .form-item select { margin-right: 5px; } .container-inline-date .form-item option { margin-right: 5px; } .container-inline-date .date-spacer { margin-left: -5px; } .views-right-60 .container-inline-date div { margin: 0px; padding: 0px; } .container-inline-date .date-timezone .form-item { width: auto; clear: both; float: none; } .container-inline-date .date-padding { padding: 10px; float: left; } .views-exposed-form .container-inline-date .date-padding { padding: 0px; } #calendar_div { margin: 0px; padding: 0px; } #calendar_div td { margin: 0px; padding: 0px; } #calendar_div th { margin: 0px; padding: 0px; } #calendar_div { margin: 0px; width: 185px; border-collapse: separate; } .calendar_control { margin: 0px; width: 185px; border-collapse: separate; } .calendar_links { margin: 0px; width: 185px; border-collapse: separate; } .calendar_header { margin: 0px; width: 185px; border-collapse: separate; } .calendar { margin: 0px; width: 185px; border-collapse: separate; } .calendar td { padding: 0px; } span.date-display-single { =09 } span.date-display-start { =09 } span.date-display-end { =09 } .date-prefix-inline { display: inline-block; } .date-clear { clear: both; float: none; display: block; } .date-no-float { width: 98%; clear: both; float: none; } .date-float { width: auto; clear: none; float: left; } .date-float .form-type-checkbox { padding-right: 1em; } .form-type-date-select [class$=3Dhour].form-type-select { margin-left: 0.75em; } .date-container .date-format-delete { margin-top: 1.8em; margin-left: 1.5em; float: left; } .date-container .date-format-name { float: left; } .date-container .date-format-type { padding-left: 10px; float: left; } .date-container .select-container { clear: left; float: left; } div.date-calendar-day { background: rgb(243, 243, 243); border-width: 1px; border-style: solid; = border-color: rgb(238, 238, 238) rgb(187, 187, 187) rgb(187, 187, 187) = rgb(238, 238, 238); margin: 6px 10px 0px 0px; width: 40px; text-align: = center; color: rgb(153, 153, 153); line-height: 1; float: left; } div.date-calendar-day span { text-align: center; display: block; } div.date-calendar-day span.month { padding: 2px; color: white; text-transform: uppercase; font-size: = 0.9em; background-color: rgb(181, 190, 190); } div.date-calendar-day span.day { font-size: 2em; font-weight: bold; } div.date-calendar-day span.year { padding: 2px; font-size: 0.9em; } .form-item-instance-widget-settings-input-format-custom.form-item { margin-left: 1.3em; } .form-item-field-settings-enddate-required.form-item { margin-left: 1.3em; } #edit-field-settings-granularity .form-type-checkbox { margin-right: 0.6em; } .date-year-range-select { margin-right: 1em; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/modules/date/date_popup/themes/datepicker.1.7.css?nv614b #ui-datepicker-div { background: rgb(238, 238, 238); font-family: Verdana, sans-serif; = font-size: 100%; border-right-color: rgb(102, 102, 102); = border-bottom-color: rgb(102, 102, 102); border-right-width: 2px; = border-bottom-width: 2px; border-right-style: solid; = border-bottom-style: solid; z-index: 9999; } .ui-datepicker { padding: 0.2em 0.2em 0px; width: 17em; } .ui-datepicker .ui-datepicker-header { padding: 0.2em 0px; position: relative; } .ui-datepicker .ui-datepicker-prev { top: 2px; width: 1.8em; height: 1.8em; position: absolute; } .ui-datepicker .ui-datepicker-next { top: 2px; width: 1.8em; height: 1.8em; position: absolute; } .ui-datepicker .ui-datepicker-prev-hover { top: 1px; } .ui-datepicker .ui-datepicker-next-hover { top: 1px; } .ui-datepicker .ui-datepicker-prev { left: 2px; } .ui-datepicker .ui-datepicker-next { right: 2px; } .ui-datepicker .ui-datepicker-prev-hover { left: 1px; } .ui-datepicker .ui-datepicker-next-hover { right: 1px; } .ui-datepicker .ui-datepicker-prev span { left: 50%; top: 50%; margin-top: -8px; margin-left: -8px; display: = block; position: absolute; } .ui-datepicker .ui-datepicker-next span { left: 50%; top: 50%; margin-top: -8px; margin-left: -8px; display: = block; position: absolute; } .ui-datepicker .ui-datepicker-title { margin: 0px 2.3em; text-align: center; line-height: 1.8em; } .ui-datepicker .ui-datepicker-title select { margin: 1px 0px; font-size: 1em; float: left; } .ui-datepicker select.ui-datepicker-month-year { width: 100%; } .ui-datepicker select.ui-datepicker-month { width: 49%; } .ui-datepicker select.ui-datepicker-year { width: 49%; } .ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; } .ui-datepicker table { margin: 0px 0px 0.4em; width: 100%; font-size: 0.9em; border-collapse: = collapse; } .ui-datepicker th { padding: 0.7em 0.3em; border: 0px currentColor; text-align: center; = font-weight: bold; } .ui-datepicker td { padding: 1px; border: 0px currentColor; } .ui-datepicker td span { padding: 0.2em; text-align: right; text-decoration: none; display: = block; } .ui-datepicker td a { padding: 0.2em; text-align: right; text-decoration: none; display: = block; } .ui-datepicker .ui-datepicker-buttonpane { margin: 0.7em 0px 0px; padding: 0px 0.2em; border-right-color: = currentColor; border-bottom-color: currentColor; border-left-color: = currentColor; border-right-width: 0px; border-bottom-width: 0px; = border-left-width: 0px; border-right-style: none; border-bottom-style: = none; border-left-style: none; background-image: none; } .ui-datepicker .ui-datepicker-buttonpane button { margin: 0.5em 0.2em 0.4em; padding: 0.2em 0.6em 0.3em; width: auto; = overflow: visible; float: right; cursor: pointer; } .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float: left; } .ui-datepicker-multi.ui-datepicker { width: auto; } .ui-datepicker-multi .ui-datepicker-group { float: left; } .ui-datepicker-multi .ui-datepicker-group table { margin: 0px auto 0.4em; width: 95%; } .ui-datepicker-multi-2 .ui-datepicker-group { width: 50%; } .ui-datepicker-multi-3 .ui-datepicker-group { width: 33.3%; } .ui-datepicker-multi-4 .ui-datepicker-group { width: 25%; } .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width: 0px; } .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width: 0px; } .ui-datepicker-multi .ui-datepicker-buttonpane { clear: left; } .ui-datepicker-row-break { width: 100%; clear: both; } .ui-datepicker-rtl { direction: rtl; } .ui-datepicker-rtl .ui-datepicker-prev { left: auto; right: 2px; } .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } .ui-datepicker-rtl .ui-datepicker-prev:hover { left: auto; right: 1px; } .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } .ui-datepicker-rtl .ui-datepicker-buttonpane { clear: right; } .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } .ui-datepicker-rtl .ui-datepicker-buttonpane = button.ui-datepicker-current { float: right; } .ui-datepicker-rtl .ui-datepicker-group { float: right; } .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width: 0px; border-left-width: 1px; } .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width: 0px; border-left-width: 1px; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: 7bit Content-Location: https://www.consumer.org.hk/modules/field/theme/field.css?nv614b .field .field-label { font-weight: bold; } .field-label-inline .field-label { float: left; } .field-label-inline .field-items { float: left; } form .field-multiple-table { margin: 0px; } form .field-multiple-table th.field-label { padding-left: 0px; } form .field-multiple-table td.field-multiple-drag { width: 30px; padding-right: 0px; } form .field-multiple-table td.field-multiple-drag a.tabledrag-handle { padding-right: 0.5em; } form .field-add-more-submit { margin: 0.5em 0px 0px; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: 7bit Content-Location: https://www.consumer.org.hk/modules/poll/poll.css?nv614b .poll { overflow: hidden; } .poll .bar { margin: 1px 0px; height: 1em; background-color: rgb(221, 221, 221); } .poll .bar .foreground { height: 1em; float: left; background-color: rgb(0, 0, 0); } .poll .links { text-align: center; } .poll .percent { text-align: right; } .poll .total { text-align: center; } .poll .vote-form { text-align: center; } .poll .vote-form .choices { margin: 0px auto; text-align: left; display: table; } .poll .vote-form .choices .title { font-weight: bold; } .node-form #edit-poll-more { margin: 0px; } .node-form #poll-choice-table .form-text { width: auto; display: inline; } .node-form #poll-choice-table td.choice-flag { width: 4em; white-space: nowrap; } td.poll-chtext { width: 80%; } td.poll-chvotes .form-text { width: 85%; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/modules/extlink/extlink.css?nv614b span.ext { background: url("extlink_s.png") no-repeat 2px; width: 10px; height: = 10px; padding-right: 12px; text-decoration: none; } span.mailto { background: url("extlink_s.png") no-repeat -20px; width: 10px; height: = 10px; padding-right: 12px; text-decoration: none; } @media print { span.ext { padding: 0px; display: none; } span.mailto { padding: 0px; display: none; } } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/modules/views/css/views.css?nv614b .views-exposed-form .views-exposed-widget { padding: 0.5em 1em 0px 0px; float: left; } .views-exposed-form .views-exposed-widget .form-submit { margin-top: 1.6em; } .views-exposed-form .form-item { margin-top: 0px; margin-bottom: 0px; } .views-exposed-form .form-submit { margin-top: 0px; margin-bottom: 0px; } .views-exposed-form label { font-weight: bold; } .views-exposed-widgets { margin-bottom: 0.5em; } .views-align-left { text-align: left; } .views-align-right { text-align: right; } .views-align-center { text-align: center; } .views-view-grid tbody { border-top-color: currentColor; border-top-width: medium; = border-top-style: none; } .view .progress-disabled { float: none; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: 7bit Content-Location: https://www.consumer.org.hk/sites/all/modules/ckeditor/css/ckeditor.css?nv614b .rteindent1 { margin-left: 40px; } .rteindent2 { margin-left: 80px; } .rteindent3 { margin-left: 120px; } .rteindent4 { margin-left: 160px; } .rteleft { text-align: left; } .rteright { text-align: right; } .rtecenter { text-align: center; } .rtejustify { text-align: justify; } .ibimage_left { float: left; } .ibimage_right { float: right; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/modules/colorbox/styles/default/colorbox_style.css?nv614b #colorbox { left: 0px; top: 0px; overflow: hidden; position: absolute; z-index: = 9999; } #cboxOverlay { left: 0px; top: 0px; overflow: hidden; position: absolute; z-index: = 9999; } #cboxWrapper { left: 0px; top: 0px; overflow: hidden; position: absolute; z-index: = 9999; } #cboxOverlay { width: 100%; height: 100%; position: fixed; } #cboxMiddleLeft { clear: left; } #cboxBottomLeft { clear: left; } #cboxContent { position: relative; } #cboxLoadedContent { overflow: auto; -webkit-overflow-scrolling: touch; } #cboxTitle { margin: 0px; } #cboxLoadingOverlay { left: 0px; top: 0px; width: 100%; height: 100%; position: absolute; } #cboxLoadingGraphic { left: 0px; top: 0px; width: 100%; height: 100%; position: absolute; } #cboxPrevious { background: none; margin: 0px; padding: 0px; border: 0px currentColor; = width: auto; overflow: visible; cursor: pointer; } #cboxNext { background: none; margin: 0px; padding: 0px; border: 0px currentColor; = width: auto; overflow: visible; cursor: pointer; } #cboxClose { background: none; margin: 0px; padding: 0px; border: 0px currentColor; = width: auto; overflow: visible; cursor: pointer; } #cboxSlideshow { background: none; margin: 0px; padding: 0px; border: 0px currentColor; = width: auto; overflow: visible; cursor: pointer; } #cboxPrevious:active { outline: 0px; } #cboxNext:active { outline: 0px; } #cboxClose:active { outline: 0px; } #cboxSlideshow:active { outline: 0px; } .cboxPhoto { margin: auto; border: 0px currentColor; float: left; display: block; = max-width: none; } .cboxIframe { border: 0px currentColor; width: 100%; height: 100%; display: block; } #colorbox { box-sizing: content-box; -moz-box-sizing: content-box; = -webkit-box-sizing: content-box; } #cboxContent { box-sizing: content-box; -moz-box-sizing: content-box; = -webkit-box-sizing: content-box; } #cboxLoadedContent { box-sizing: content-box; -moz-box-sizing: content-box; = -webkit-box-sizing: content-box; } #cboxOverlay { background: rgb(0, 0, 0); } #colorbox { outline: 0px; } #cboxWrapper { background: rgb(255, 255, 255); border-radius: 5px; -moz-border-radius: = 5px; -webkit-border-radius: 5px; } #cboxTopLeft { width: 15px; height: 15px; } #cboxTopCenter { height: 15px; } #cboxTopRight { width: 15px; height: 15px; } #cboxBottomLeft { width: 15px; height: 10px; } #cboxBottomCenter { height: 10px; } #cboxBottomRight { width: 15px; height: 10px; } #cboxMiddleLeft { width: 15px; } #cboxMiddleRight { width: 15px; } #cboxContent { background: rgb(255, 255, 255); overflow: hidden; } #cboxError { padding: 50px; border: 1px solid rgb(204, 204, 204); } #cboxLoadedContent { margin-bottom: 28px; } #cboxTitle { background: rgba(255, 255, 255, 0.7); padding: 4px 6px; left: 0px; = width: 100%; bottom: 28px; color: rgb(83, 83, 83); position: absolute; = box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: = border-box; } #cboxCurrent { left: 60px; bottom: 4px; color: rgb(148, 148, 148); position: absolute; } .cboxSlideshow_on #cboxSlideshow { background: url("images/controls.png") no-repeat -75px -50px; width: = 25px; height: 25px; right: 30px; bottom: 0px; text-indent: -9999px; = position: absolute; } .cboxSlideshow_on #cboxSlideshow:hover { background-position: -101px -50px; } .cboxSlideshow_off #cboxSlideshow { background: url("images/controls.png") no-repeat -25px -50px; width: = 25px; height: 25px; right: 30px; bottom: 0px; text-indent: -9999px; = position: absolute; } .cboxSlideshow_off #cboxSlideshow:hover { background-position: -49px -50px; } #cboxPrevious { background: url("images/controls.png") no-repeat -75px 0px; left: 0px; = width: 25px; height: 25px; bottom: 0px; text-indent: -9999px; position: = absolute; } #cboxPrevious:hover { background-position: -75px -25px; } #cboxNext { background: url("images/controls.png") no-repeat -50px 0px; left: 27px; = width: 25px; height: 25px; bottom: 0px; text-indent: -9999px; position: = absolute; } #cboxNext:hover { background-position: -50px -25px; } #cboxLoadingOverlay { background: rgb(255, 255, 255); } #cboxLoadingGraphic { background: url("images/loading_animation.gif") no-repeat center; } #cboxClose { background: url("images/controls.png") no-repeat -25px 0px; width: = 25px; height: 25px; right: 0px; bottom: 0px; text-indent: -9999px; = position: absolute; } #cboxClose:hover { background-position: -25px -25px; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/modules/ctools/css/ctools.css?nv614b .ctools-locked { padding: 1em; border: 1px solid red; color: red; } .ctools-owns-lock { background: 0px 0px rgb(255, 255, 221); padding: 1em; border: 1px solid = rgb(240, 192, 32); } a.ctools-ajaxing { background: url("../images/status-active.gif") no-repeat right; = padding-right: 18px !important; } input.ctools-ajaxing { background: url("../images/status-active.gif") no-repeat right; = padding-right: 18px !important; } button.ctools-ajaxing { background: url("../images/status-active.gif") no-repeat right; = padding-right: 18px !important; } select.ctools-ajaxing { background: url("../images/status-active.gif") no-repeat right; = padding-right: 18px !important; } div.ctools-ajaxing { background: url("../images/status-active.gif") no-repeat center; width: = 18px; float: left; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/libraries/fancybox/source/jquery.fancybox.css?nv614b .fancybox-wrap { margin: 0px; padding: 0px; border: 0px currentColor; vertical-align: = top; } .fancybox-skin { margin: 0px; padding: 0px; border: 0px currentColor; vertical-align: = top; } .fancybox-outer { margin: 0px; padding: 0px; border: 0px currentColor; vertical-align: = top; } .fancybox-inner { margin: 0px; padding: 0px; border: 0px currentColor; vertical-align: = top; } .fancybox-image { margin: 0px; padding: 0px; border: 0px currentColor; vertical-align: = top; } .fancybox-wrap iframe { margin: 0px; padding: 0px; border: 0px currentColor; vertical-align: = top; } .fancybox-wrap object { margin: 0px; padding: 0px; border: 0px currentColor; vertical-align: = top; } .fancybox-nav { margin: 0px; padding: 0px; border: 0px currentColor; vertical-align: = top; } .fancybox-nav span { margin: 0px; padding: 0px; border: 0px currentColor; vertical-align: = top; } .fancybox-tmp { margin: 0px; padding: 0px; border: 0px currentColor; vertical-align: = top; } .fancybox-wrap { left: 0px; top: 0px; position: absolute; z-index: 8020; } .fancybox-skin { background: rgb(249, 249, 249); border-radius: 4px; color: rgb(68, 68, = 68); position: relative; text-shadow: none; -moz-border-radius: 4px; = -webkit-border-radius: 4px; } .fancybox-opened { z-index: 8030; } .fancybox-opened .fancybox-skin { box-shadow: 0px 10px 25px rgba(0,0,0,0.5); -webkit-box-shadow: 0 10px = 25px rgba(0, 0, 0, 0.5); -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, = 0.5); } .fancybox-outer { position: relative; } .fancybox-inner { position: relative; } .fancybox-inner { overflow: hidden; } .fancybox-type-iframe .fancybox-inner { -webkit-overflow-scrolling: touch; } .fancybox-error { font: 14px/20px "Helvetica Neue", Helvetica, Arial, sans-serif; margin: = 0px; padding: 15px; color: rgb(68, 68, 68); white-space: nowrap; = font-size-adjust: none; font-stretch: normal; } .fancybox-image { width: 100%; height: 100%; display: block; } .fancybox-iframe { width: 100%; height: 100%; display: block; } .fancybox-image { max-height: 100%; max-width: 100%; } #fancybox-loading { background-image: url("fancybox_sprite.png"); } .fancybox-close { background-image: url("fancybox_sprite.png"); } .fancybox-prev span { background-image: url("fancybox_sprite.png"); } .fancybox-next span { background-image: url("fancybox_sprite.png"); } #fancybox-loading { background-position: 0px -108px; left: 50%; top: 50%; margin-top: = -22px; margin-left: -22px; position: fixed; z-index: 8060; cursor: = pointer; opacity: 0.8; } #fancybox-loading div { background: url("fancybox_loading.gif") no-repeat center; width: 44px; = height: 44px; } .fancybox-close { top: -18px; width: 36px; height: 36px; right: -18px; position: = absolute; z-index: 8040; cursor: pointer; } .fancybox-nav { background: url("blank.gif"); top: 0px; width: 40%; height: 100%; = text-decoration: none; position: absolute; z-index: 8040; cursor: = pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .fancybox-prev { left: 0px; } .fancybox-next { right: 0px; } .fancybox-nav span { top: 50%; width: 36px; height: 34px; margin-top: -18px; visibility: = hidden; position: absolute; z-index: 8040; cursor: pointer; } .fancybox-prev span { background-position: 0px -36px; left: 10px; } .fancybox-next span { background-position: 0px -72px; right: 10px; } .fancybox-nav:hover span { visibility: visible; } .fancybox-tmp { left: -99999px; top: -99999px; overflow: visible !important; = visibility: hidden; position: absolute; max-height: 99999px; max-width: = 99999px; } .fancybox-lock { width: auto; overflow: hidden !important; } .fancybox-lock body { overflow: hidden !important; } .fancybox-lock-test { -ms-overflow-y: hidden !important; } .fancybox-overlay { background: url("fancybox_overlay.png"); left: 0px; top: 0px; overflow: = hidden; display: none; position: absolute; z-index: 8010; } .fancybox-overlay-fixed { right: 0px; bottom: 0px; position: fixed; } .fancybox-lock .fancybox-overlay { overflow: auto; -ms-overflow-y: scroll; } .fancybox-title { font: 13px/20px "Helvetica Neue", Helvetica, Arial, sans-serif; = visibility: hidden; position: relative; z-index: 8050; font-size-adjust: = none; font-stretch: normal; text-shadow: none; } .fancybox-opened .fancybox-title { visibility: visible; } .fancybox-title-float-wrap { text-align: center; right: 50%; bottom: 0px; margin-bottom: -35px; = position: absolute; z-index: 8050; } .fancybox-title-float-wrap .child { background: rgba(0, 0, 0, 0.8); padding: 2px 20px; border-radius: 15px; = color: rgb(255, 255, 255); line-height: 24px; font-weight: bold; = margin-right: -100%; display: inline-block; white-space: nowrap; = text-shadow: 0px 1px 2px #222; -moz-border-radius: 15px; = -webkit-border-radius: 15px; } .fancybox-title-outside-wrap { color: rgb(255, 255, 255); margin-top: 10px; position: relative; } .fancybox-title-inside-wrap { padding-top: 10px; } .fancybox-title-over-wrap { background: rgba(0, 0, 0, 0.8); padding: 10px; left: 0px; bottom: 0px; = color: rgb(255, 255, 255); position: absolute; } @media not all, not all, not all { #fancybox-loading { background-image: url("fancybox_sprite@2x.png"); background-size: 44px = 152px; } .fancybox-close { background-image: url("fancybox_sprite@2x.png"); background-size: 44px = 152px; } .fancybox-prev span { background-image: url("fancybox_sprite@2x.png"); background-size: 44px = 152px; } .fancybox-next span { background-image: url("fancybox_sprite@2x.png"); background-size: 44px = 152px; } #fancybox-loading div { background-image: url("fancybox_loading@2x.gif"); background-size: 24px = 24px; } } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/modules/lightbox2/css/lightbox.css?nv614b #lightbox { left: 0px; top: 40px; width: 100%; text-align: center; line-height: 0; = position: absolute; z-index: 100; } #lightbox a img { border: currentColor; } #outerImageContainer { margin: 0px auto; width: 250px; height: 250px; overflow: hidden; = position: relative; min-width: 240px; background-color: rgb(255, 255, = 255); } #imageContainer { padding: 10px; } #frameContainer { padding: 10px; } #modalContainer { padding: 10px; } #modalContainer { line-height: 1em; overflow: auto; } #loading { left: 45%; top: 40%; width: 100%; height: 25%; text-align: center; = line-height: 0; position: absolute; } #hoverNav { left: 0px; top: 0px; width: 100%; height: 100%; position: absolute; = z-index: 10; } #imageContainer > #hoverNav { left: 0px; } #frameHoverNav { width: 20%; height: 45px; bottom: 0px; margin-right: auto; margin-left: = auto; position: absolute; z-index: 10; } #imageData > #frameHoverNav { left: 0px; } #hoverNav a { =09 } #frameHoverNav a { =09 } #prevLink { background: url("../images/blank.gif") no-repeat; width: 49%; height: = 100%; display: block; } #nextLink { background: url("../images/blank.gif") no-repeat; width: 49%; height: = 100%; display: block; } #prevLink { left: 0px; float: left; } #framePrevLink { left: 0px; float: left; } #nextLink { right: 0px; float: right; } #frameNextLink { right: 0px; float: right; } #prevLink:hover { background: url("../images/prev.gif") no-repeat left 15%; } #prevLink:hover:visited { background: url("../images/prev.gif") no-repeat left 15%; } .force_show_nav#prevLink { background: url("../images/prev.gif") no-repeat left 15%; } #framePrevLink { background: url("../images/prev.gif") no-repeat left 15%; } #nextLink:hover { background: url("../images/next.gif") no-repeat right 15%; } #nextLink:hover:visited { background: url("../images/next.gif") no-repeat right 15%; } .force_show_nav#nextLink { background: url("../images/next.gif") no-repeat right 15%; } #frameNextLink { background: url("../images/next.gif") no-repeat right 15%; } .force_show_nav#prevLink:hover { background: url("../images/prev_hover.gif") no-repeat left 15%; } .force_show_nav#prevLink:hover:visited { background: url("../images/prev_hover.gif") no-repeat left 15%; } #framePrevLink:hover { background: url("../images/prev_hover.gif") no-repeat left 15%; } #framePrevLink:hover:visited { background: url("../images/prev_hover.gif") no-repeat left 15%; } .force_show_nav#nextLink:hover { background: url("../images/next_hover.gif") no-repeat right 15%; } .force_show_nav#nextLink:hover:visited { background: url("../images/next_hover.gif") no-repeat right 15%; } #frameNextLink:hover { background: url("../images/next_hover.gif") no-repeat right 15%; } #frameNextLink:hover:visited { background: url("../images/next_hover.gif") no-repeat right 15%; } #framePrevLink { width: 45px; height: 45px; bottom: 0px; display: block; position: = absolute; } #frameNextLink { width: 45px; height: 45px; bottom: 0px; display: block; position: = absolute; } #imageDataContainer { font: 10px/1.4em Verdana, Helvetica, sans-serif; margin: 0px auto; = min-width: 240px; font-size-adjust: none; font-stretch: normal; = background-color: rgb(255, 255, 255); } #imageData { padding: 0px 10px; } #imageData #imageDetails { width: 70%; text-align: left; float: left; } #imageData #caption { font-weight: bold; } #imageData #numberDisplay { padding-bottom: 1em; clear: left; display: block; } #imageData #lightbox2-node-link-text { padding-bottom: 1em; display: block; } #imageData #bottomNav { height: 66px; } .lightbox2-alt-layout #imageData #bottomNav { margin-bottom: 60px; } .lightbox2-alt-layout-data #bottomNav { margin-bottom: 60px; } #lightbox2-overlay { left: 0px; top: 0px; width: 100%; height: 500px; position: absolute; = z-index: 90; background-color: rgb(0, 0, 0); } #overlay_default { opacity: 0.6; } #overlay_macff2 { background: url("../images/overlay.png"); } .clearfix::after { height: 0px; clear: both; display: block; visibility: hidden; content: = "."; } * html > body .clearfix { width: 100%; display: inline; } * html .clearfix { height: 1%; } #bottomNavClose { background: url("../images/close.gif") no-repeat left; width: 26px; = height: 26px; padding-top: 0.7em; margin-top: 33px; float: right; = display: block; } #bottomNavClose:hover { background-position: right; } #loadingLink { background: url("../images/loading.gif") no-repeat; width: 32px; = height: 32px; display: block; } #bottomNavZoom { background: url("../images/expand.gif") no-repeat; left: 30px; width: = 34px; height: 34px; float: right; display: none; position: relative; } #bottomNavZoomOut { background: url("../images/contract.gif") no-repeat; left: 30px; width: = 34px; height: 34px; float: right; display: none; position: relative; } #lightshowPlay { background: url("../images/play.png") no-repeat; width: 20px; height: = 20px; margin-top: 42px; margin-right: 5px; margin-bottom: 1px; float: = right; } #lightshowPause { background: url("../images/pause.png") no-repeat; width: 20px; height: = 20px; margin-top: 42px; margin-right: 5px; margin-bottom: 1px; float: = right; } .lightbox2-alt-layout-data #bottomNavClose { margin-top: 93px; } .lightbox2-alt-layout #bottomNavClose { margin-top: 93px; } .lightbox2-alt-layout-data #bottomNavZoom { margin-top: 93px; } .lightbox2-alt-layout-data #bottomNavZoomOut { margin-top: 93px; } .lightbox2-alt-layout #bottomNavZoom { margin-top: 93px; } .lightbox2-alt-layout #bottomNavZoomOut { margin-top: 93px; } .lightbox2-alt-layout-data #lightshowPlay { margin-top: 102px; } .lightbox2-alt-layout-data #lightshowPause { margin-top: 102px; } .lightbox2-alt-layout #lightshowPlay { margin-top: 102px; } .lightbox2-alt-layout #lightshowPause { margin-top: 102px; } .lightbox_hide_image { display: none; } #lightboxImage { -ms-interpolation-mode: bicubic; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: 7bit Content-Location: https://www.consumer.org.hk/sites/all/modules/panels/css/panels.css?nv614b div.panel-pane div.admin-links { font-size: xx-small; margin-right: 1em; } div.panel-pane div.admin-links li a { color: rgb(204, 204, 204); } div.panel-pane div.admin-links li { background: white; padding-bottom: 2px; z-index: 201; } div.panel-pane div.admin-links:hover a { color: rgb(0, 0, 0); } div.panel-pane div.admin-links-hover a { color: rgb(0, 0, 0); } div.panel-pane div.admin-links a::before { content: "["; } div.panel-pane div.admin-links a::after { content: "]"; } div.panel-pane div.panel-hide { display: none; } div.panel-pane div.panel-hide-hover { margin-top: -1.5em; display: block; position: absolute; z-index: 200; } div.panel-pane:hover div.panel-hide { margin-top: -1.5em; display: block; position: absolute; z-index: 200; } div.panel-pane div.node { margin: 0px; padding: 0px; } div.panel-pane div.feed a { float: right; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: 7bit Content-Location: https://www.consumer.org.hk/sites/all/modules/pollanon/pollanon.css?nv614b form.pollanon { display: none; } .hidden.pollanon-poll-results { display: none; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/modules/kanhan_text_resize/css/text-resize.css?nv614b .large-fonts { line-height: 1.38em; font-size: 1.21em; } .large-fonts#main h1 { padding-bottom: 0.32em; font-size: 1.75em; } .large-fonts#main h2 { margin: 0px; font-size: 1.37em; } .large-fonts#main #block-views-slideshow-block .views-field-title = .field-content { margin: 0px; font-size: 1.37em; } #block-views-slideshow-block .views-field-title .large-fonts#main = .field-content { margin: 0px; font-size: 1.37em; } .large-fonts#main h3 { line-height: 1.12em; margin-bottom: 0.6em; } .largest-fonts { line-height: 1.38em; font-size: 1.37em; } .largest-fonts#main h1 { padding-bottom: 0.32em; font-size: 1.75em; } .largest-fonts#main h2 { margin: 0px; font-size: 1.37em; } .largest-fonts#main #block-views-slideshow-block .views-field-title = .field-content { margin: 0px; font-size: 1.37em; } #block-views-slideshow-block .views-field-title .largest-fonts#main = .field-content { margin: 0px; font-size: 1.37em; } .largest-fonts#main h3 { line-height: 1.12em; margin-bottom: 0.6em; } .largest-fonts#main #region-header-search form input.form-submit { width: 80px; } .largest-fonts#main #region-header-search { width: 376px; } #resize-buttons-wrapper { =09 } #resize-buttons { height: 19px; vertical-align: middle; display: table-cell; } #resize-buttons > span { text-indent: -9999px; float: left; } .mobile-resize #resize-buttons > span { padding: 10px; font-weight: bold; } #resize-buttons li a { width: 16px; height: 0px; overflow: hidden; padding-top: 25px; display: = block; } .mobile-resize #resize-buttons ul { padding-left: 0px; float: left; } .mobile-resize #resize-buttons li a { padding: 10px 0px; width: auto; height: auto; margin-right: 20px; } .mobile-resize #resize-buttons .font-normal > a { background: none; } .mobile-resize #resize-buttons .font-large > a { background: none; } .mobile-resize #resize-buttons .font-largest > a { background: none; } .mobile-resize #resize-buttons .font-normal > a.focus { display: none; } .mobile-resize #resize-buttons .font-large > a.focus { display: none; } .mobile-resize #resize-buttons .font-largest > a.focus { display: none; } .mobile-resize #resize-buttons .font-normal > a:hover { background: none; } .mobile-resize #resize-buttons .font-normal > a:focus { background: none; } .mobile-resize #resize-buttons .font-normal > a:active { background: none; } .mobile-resize #resize-buttons .font-normal > a.focus { background: none; } .mobile-resize #resize-buttons .font-large > a:hover { background: none; } .mobile-resize #resize-buttons .font-large > a:focus { background: none; } .mobile-resize #resize-buttons .font-large > a:active { background: none; } .mobile-resize #resize-buttons .font-large > a.focus { background: none; } .mobile-resize #resize-buttons .font-largest > a:hover { background: none; } .mobile-resize #resize-buttons .font-largest > a:focus { background: none; } .mobile-resize #resize-buttons .font-largest > a:active { background: none; } .mobile-resize #resize-buttons .font-largest > a.focus { background: none; } #resize-buttons li { list-style: none; float: left; } #resize-buttons span { float: left; } #resize-buttons .font-normal > a { background: url("../images/text-size-normal-off.png") no-repeat 0px = 1px; } #resize-buttons .font-large > a { background: url("../images/text-size-large-off.png") no-repeat 0px 1px; } #resize-buttons .font-largest > a { background: url("../images/text-size-largest-off.png") no-repeat 0px = 1px; } #resize-buttons .font-normal > a:hover { background: url("../images/text-size-normal-on.png") no-repeat 0px 1px; } #resize-buttons .font-normal > a:focus { background: url("../images/text-size-normal-on.png") no-repeat 0px 1px; } #resize-buttons .font-normal > a:active { background: url("../images/text-size-normal-on.png") no-repeat 0px 1px; } #resize-buttons .font-normal > a.focus { background: url("../images/text-size-normal-on.png") no-repeat 0px 1px; } #resize-buttons .font-large > a:hover { background: url("../images/text-size-large-on.png") no-repeat 0px 1px; } #resize-buttons .font-large > a:focus { background: url("../images/text-size-large-on.png") no-repeat 0px 1px; } #resize-buttons .font-large > a:active { background: url("../images/text-size-large-on.png") no-repeat 0px 1px; } #resize-buttons .font-large > a.focus { background: url("../images/text-size-large-on.png") no-repeat 0px 1px; } #resize-buttons .font-largest > a:hover { background: url("../images/text-size-largest-on.png") no-repeat 0px = 1px; } #resize-buttons .font-largest > a:focus { background: url("../images/text-size-largest-on.png") no-repeat 0px = 1px; } #resize-buttons .font-largest > a:active { background: url("../images/text-size-largest-on.png") no-repeat 0px = 1px; } #resize-buttons .font-largest > a.focus { background: url("../images/text-size-largest-on.png") no-repeat 0px = 1px; } .large-fonts .more-link-news-en { padding-right: 45px; padding-left: 45px; } .large-fonts .more-link-client-en { padding-right: 45px; padding-left: 45px; } .large-fonts .more-link-news-tc { padding-right: 53px; padding-left: 53px; } .large-fonts .more-link-client-tc { padding-right: 53px; padding-left: 53px; } .largest-fonts .more-link-news-en { padding-top: 2px; padding-right: 40px; padding-left: 40px; } .largest-fonts .more-link-client-en { padding-top: 2px; padding-right: 35px; padding-left: 35px; } .largest-fonts .more-link-news-tc { padding-top: 2px; padding-right: 47px; padding-left: 47px; } .largest-fonts .more-link-client-tc { padding-top: 2px; padding-right: 47px; padding-left: 47px; } .large-fonts .footer-block { padding-top: 16px; } .largest-fonts .footer-block { padding-top: 16px; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/modules/kanhan_language_switcher/css/language_switcher.css?nv614b #block-kanhan-language-switcher-language-switcher { display: inline; } #language-buttons ul li { padding: 0px 5px 0px 8px; color: rgb(114, 169, 68); border-left-color: = rgb(142, 142, 142); border-left-width: 1px; border-left-style: solid; = display: inline; } #language-buttons ul li:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } #language-buttons a { color: rgb(142, 142, 142); } #language-buttons a:hover { color: rgb(114, 169, 68); } #language-buttons a:focus { color: rgb(114, 169, 68); } #language-buttons a:active { color: rgb(114, 169, 68); } .mobile-language-switcher { margin-top: 10px; } .mobile-language-switcher .mobile-language-switcher-title { font-weight: bold; float: left; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/libraries/superfish/css/superfish.css?nv614b .sf-menu { list-style: none; margin: 0px; padding: 0px; } .sf-menu * { list-style: none; margin: 0px; padding: 0px; } .sf-menu { z-index: 10; } .sf-menu ul { left: 0px; top: -99999em; width: 12em; position: absolute; } .sf-menu ul li { width: 100%; } .sf-menu li { float: left; position: relative; z-index: 11; } .sf-menu a { display: block; position: relative; } .sf-menu span.nolink { display: block; position: relative; } .sf-menu li:hover { z-index: 12; } .sf-menu li.sfHover { z-index: 12; } .sf-menu li:hover ul { z-index: 12; } .sf-menu li.sfHover ul { z-index: 12; } .sf-menu li:hover > ul { left: 0px; top: 2.5em; } .sf-menu li.sfHover > ul { left: 0px; top: 2.5em; } .sf-menu li li:hover > ul { left: 12em; top: 0px; } .sf-menu li li.sfHover > ul { left: 12em; top: 0px; } .menu.sf-menu { margin: 0px; } .menu.sf-menu ul { margin: 0px; } .menu.sf-menu li { margin: 0px; } .sf-hidden { left: -99999em !important; top: -99999em !important; } .sf-menu a.sf-with-ul { min-width: 1px; } .sf-menu span.sf-with-ul.nolink { min-width: 1px; } .sf-sub-indicator { background: url("../images/arrows-ffffff.png") no-repeat -10px -100px; = top: 1.05em; width: 10px; height: 10px; right: 0.75em; text-indent: = -999em; overflow: hidden; display: block; position: absolute; } a > .sf-sub-indicator { background-position: 0px -100px; top: 0.8em; } span.nolink > .sf-sub-indicator { background-position: 0px -100px; top: 0.8em; } a:focus > .sf-sub-indicator { background-position: -10px -100px; } a:hover > .sf-sub-indicator { background-position: -10px -100px; } a:active > .sf-sub-indicator { background-position: -10px -100px; } li:hover > a > .sf-sub-indicator { background-position: -10px -100px; } li.sfHover > a > .sf-sub-indicator { background-position: -10px -100px; } span.nolink:hover > .sf-sub-indicator { background-position: -10px -100px; } li:hover > span.nolink > .sf-sub-indicator { background-position: -10px -100px; } li.sfHover > span.nolink > .sf-sub-indicator { background-position: -10px -100px; } .sf-menu ul .sf-sub-indicator { background-position: -10px 0px; } .sf-menu ul a > .sf-sub-indicator { background-position: 0px 0px; } .sf-menu ul span.nolink > .sf-sub-indicator { background-position: 0px 0px; } .sf-menu ul a:focus > .sf-sub-indicator { background-position: -10px 0px; } .sf-menu ul a:hover > .sf-sub-indicator { background-position: -10px 0px; } .sf-menu ul a:active > .sf-sub-indicator { background-position: -10px 0px; } .sf-menu ul li:hover > a > .sf-sub-indicator { background-position: -10px 0px; } .sf-menu ul li.sfHover > a > .sf-sub-indicator { background-position: -10px 0px; } .sf-menu ul span.nolink:hover > .sf-sub-indicator { background-position: -10px 0px; } .sf-menu ul li:hover > span.nolink > .sf-sub-indicator { background-position: -10px 0px; } .sf-menu ul li.sfHover > span.nolink > .sf-sub-indicator { background-position: -10px 0px; } .sf-shadow.sf-horizontal.sf-menu ul { background: url("../images/shadow.png") no-repeat right bottom; = padding: 0px 8px 9px 0px !important; border-top-right-radius: 8px; = border-bottom-left-radius: 8px; -webkit-border-top-right-radius: 8px; = -webkit-border-bottom-left-radius: 8px; -moz-border-radius-topright: = 8px; -moz-border-radius-bottomleft: 8px; } .sf-shadow.sf-vertical.sf-menu ul { background: url("../images/shadow.png") no-repeat right bottom; = padding: 0px 8px 9px 0px !important; border-top-right-radius: 8px; = border-bottom-left-radius: 8px; -webkit-border-top-right-radius: 8px; = -webkit-border-bottom-left-radius: 8px; -moz-border-radius-topright: = 8px; -moz-border-radius-bottomleft: 8px; } .sf-shadow.sf-navbar.sf-menu ul ul { background: url("../images/shadow.png") no-repeat right bottom; = padding: 0px 8px 9px 0px !important; border-top-right-radius: 8px; = border-bottom-left-radius: 8px; -webkit-border-top-right-radius: 8px; = -webkit-border-bottom-left-radius: 8px; -moz-border-radius-topright: = 8px; -moz-border-radius-bottomleft: 8px; } .sf-shadow ul.sf-shadow-off { background: none; } .rtl.sf-menu { float: right; } .rtl.sf-menu li { float: right; } .rtl.sf-menu li:hover > ul { left: auto; right: 0px; } .rtl.sf-menu li.sfHover > ul { left: auto; right: 0px; } .rtl.sf-menu li li:hover > ul { left: auto; right: 12em; } .rtl.sf-menu li li.sfHover > ul { left: auto; right: 12em; } .rtl.sf-menu ul { left: auto; right: 0px; } .rtl.sf-menu .sf-sub-indicator { background: url("../images/arrows-ffffff-rtl.png") no-repeat -10px = -100px; left: 0.75em; right: auto; } .rtl.sf-menu a > .sf-sub-indicator { background-position: -10px -100px; top: 0.8em; } .rtl.sf-menu span.nolink > .sf-sub-indicator { background-position: -10px -100px; top: 0.8em; } .rtl.sf-menu a:focus > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-menu a:hover > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-menu a:active > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-menu li:hover > a > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-menu li.sfHover > a > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-menu span.nolink:hover > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-menu li:hover > span.nolink > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-menu li.sfHover > span.nolink > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-menu ul .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-menu ul a > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-menu ul span.nolink > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-menu ul a:focus > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-menu ul a:hover > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-menu ul a:active > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-menu ul li:hover > a > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-menu ul li.sfHover > a > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-menu ul span.nolink:hover > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-menu ul li:hover > span.nolink > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-menu ul li.sfHover > span.nolink > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-menu .sf-hidden { left: auto !important; right: -99999em !important; } .sf-hidden.rtl.sf-menu { left: auto !important; right: -99999em !important; } .sf-shadow.sf-horizontal.rtl.sf-menu ul { background-position: left bottom; padding: 0px 0px 9px 8px !important; = border-radius: 8px 0px; -moz-border-radius: 8px; -webkit-border-radius: = 8px; -webkit-border-top-right-radius: 0; = -webkit-border-bottom-left-radius: 0; -moz-border-radius-topright: 0; = -moz-border-radius-bottomleft: 0; } .sf-shadow.sf-vertical.rtl.sf-menu ul { background-position: left bottom; padding: 0px 0px 9px 8px !important; = border-radius: 8px 0px; -moz-border-radius: 8px; -webkit-border-radius: = 8px; -webkit-border-top-right-radius: 0; = -webkit-border-bottom-left-radius: 0; -moz-border-radius-topright: 0; = -moz-border-radius-bottomleft: 0; } .sf-shadow.sf-navbar.rtl.sf-menu ul ul { background-position: left bottom; padding: 0px 0px 9px 8px !important; = border-radius: 8px 0px; -moz-border-radius: 8px; -webkit-border-radius: = 8px; -webkit-border-top-right-radius: 0; = -webkit-border-bottom-left-radius: 0; -moz-border-radius-topright: 0; = -moz-border-radius-bottomleft: 0; } .rtl.sf-vertical li:hover > ul { left: auto; right: 12em; } .rtl.sf-vertical li.sfHover > ul { left: auto; right: 12em; } .rtl.sf-vertical .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-vertical a > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-vertical span.nolink > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-vertical a:focus > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-vertical a:hover > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-vertical a:active > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-vertical li:hover > a > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-vertical li.sfHover > a > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-vertical span.nolink:hover > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-vertical li:hover > span.nolink > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-vertical li.sfHover > span.nolink > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-navbar li li { float: right; } .rtl.sf-navbar ul .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-navbar ul a > .sf-sub-indicator { background-position: -10px -100px; } .rtl.sf-navbar ul a:focus > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-navbar ul a:hover > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-navbar ul a:active > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-navbar ul li:hover > a > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-navbar ul li.sfHover > a > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-navbar ul span.nolink:hover > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-navbar ul li:hover > span.nolink > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-navbar ul li.sfHover > span.nolink > .sf-sub-indicator { background-position: 0px -100px; } .rtl.sf-navbar ul ul .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-navbar ul ul a > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-navbar ul ul span.nolink > .sf-sub-indicator { background-position: -10px 0px; } .rtl.sf-navbar ul ul a:focus > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-navbar ul ul a:hover > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-navbar ul ul a:active > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-navbar ul ul li:hover > a > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-navbar ul ul li.sfHover > a > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-navbar ul ul span.nolink:hover > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-navbar ul ul li:hover > span.nolink > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-navbar ul ul li.sfHover > span.nolink > .sf-sub-indicator { background-position: 0px 0px; } .rtl.sf-navbar li li:hover > ul { left: auto; right: 0px; } .rtl.sf-navbar li li.sfHover > ul { left: auto; right: 0px; } .rtl.sf-navbar li li li:hover > ul { left: auto; right: 12em; } .rtl.sf-navbar li li li.sfHover > ul { left: auto; right: 12em; } .rtl.sf-navbar > li > ul { background: none; padding: 0px; -moz-border-radius-bottomright: 0; = -moz-border-radius-topleft: 0; -webkit-border-top-left-radius: 0; = -webkit-border-bottom-right-radius: 0; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/all/libraries/superfish/css/superfish-navbar.css?nv614b .sf-navbar { position: relative; } .sf-navbar li { position: static; } .sf-navbar li li { position: relative; } .sf-navbar li ul { width: 100%; } .sf-navbar li li li { width: 100%; } .sf-navbar li li { width: auto; float: left; } .sf-navbar li li:hover > ul { left: 0px; top: 2.5em; } .sf-navbar li li.sfHover > ul { left: 0px; top: 2.5em; } .sf-navbar > li.active-trail > ul { left: 0px; top: 2.5em; } .sf-navbar li li li:hover > ul { left: 12em; top: 0px; } .sf-navbar li li li.sfHover > ul { left: 12em; top: 0px; } .sf-navbar ul .sf-sub-indicator { background-position: -10px -100px; } .sf-navbar ul a > .sf-sub-indicator { background-position: 0px -100px; } .sf-navbar ul span.nolink > .sf-sub-indicator { background-position: 0px -100px; } .sf-navbar ul a:focus > .sf-sub-indicator { background-position: -10px -100px; } .sf-navbar ul a:hover > .sf-sub-indicator { background-position: -10px -100px; } .sf-navbar ul a:active > .sf-sub-indicator { background-position: -10px -100px; } .sf-navbar ul li:hover > a > .sf-sub-indicator { background-position: -10px -100px; } .sf-navbar ul li.sfHover > a > .sf-sub-indicator { background-position: -10px -100px; } .sf-navbar ul span.nolink:hover > .sf-sub-indicator { background-position: -10px -100px; } .sf-navbar ul li:hover > span.nolink > .sf-sub-indicator { background-position: -10px -100px; } .sf-navbar ul li.sfHover > span.nolink > .sf-sub-indicator { background-position: -10px -100px; } .sf-navbar ul ul .sf-sub-indicator { background-position: -10px 0px; } .sf-navbar ul ul a > .sf-sub-indicator { background-position: 0px 0px; } .sf-navbar ul ul span.nolink > .sf-sub-indicator { background-position: 0px 0px; } .sf-navbar ul ul a:focus > .sf-sub-indicator { background-position: -10px 0px; } .sf-navbar ul ul a:hover > .sf-sub-indicator { background-position: -10px 0px; } .sf-navbar ul ul a:active > .sf-sub-indicator { background-position: -10px 0px; } .sf-navbar ul ul li:hover > a > .sf-sub-indicator { background-position: -10px 0px; } .sf-navbar ul ul li.sfHover > a > .sf-sub-indicator { background-position: -10px 0px; } .sf-navbar ul ul span.nolink > .sf-sub-indicator { background-position: -10px 0px; } .sf-navbar ul ul li:hover > span.nolink > .sf-sub-indicator { background-position: -10px 0px; } .sf-navbar ul ul li.sfHover > span.nolink > .sf-sub-indicator { background-position: -10px 0px; } .sf-navbar > li > ul { background: none; padding: 0px; -webkit-border-top-right-radius: 0; = -webkit-border-bottom-left-radius: 0; -moz-border-radius-topright: 0; = -moz-border-radius-bottomleft: 0; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/consumer/themes/bootstrap/css/bootstrap.min.css?nv614b @font-face { } article { display: block; } aside { display: block; } details { display: block; } figcaption { display: block; } figure { display: block; } footer { display: block; } header { display: block; } hgroup { display: block; } main { display: block; } nav { display: block; } section { display: block; } summary { display: block; } audio { display: inline-block; } canvas { display: inline-block; } video { display: inline-block; } audio:not([controls]) { height: 0px; display: none; } [hidden] { display: none; } template { display: none; } html { font-family: sans-serif; -ms-text-size-adjust: 100%; = -webkit-text-size-adjust: 100%; } body { margin: 0px; } a { background: none; } a:focus { outline: dotted thin; } a:active { outline: 0px; } a:hover { outline: 0px; } h1 { margin: 0.67em 0px; font-size: 2em; } abbr[title] { border-bottom-color: currentColor; border-bottom-width: 1px; = border-bottom-style: dotted; } b { font-weight: bold; } strong { font-weight: bold; } dfn { font-style: italic; } hr { height: 0px; box-sizing: content-box; -moz-box-sizing: content-box; } mark { background: rgb(255, 255, 0); color: rgb(0, 0, 0); } code { font-family: monospace, serif; font-size: 1em; } kbd { font-family: monospace, serif; font-size: 1em; } pre { font-family: monospace, serif; font-size: 1em; } samp { font-family: monospace, serif; font-size: 1em; } pre { white-space: pre-wrap; } q { quotes: "=A1=A7" "=A1=A8" "=A1=A5" "=A1=A6"; } small { font-size: 80%; } sub { line-height: 0; font-size: 75%; vertical-align: baseline; position: = relative; } sup { line-height: 0; font-size: 75%; vertical-align: baseline; position: = relative; } sup { top: -0.5em; } sub { bottom: -0.25em; } img { border: 0px currentColor; } svg:not(:root) { overflow: hidden; } figure { margin: 0px; } fieldset { margin: 0px 2px; padding: 0.35em 0.62em 0.75em; border: 1px solid = rgb(192, 192, 192); } legend { padding: 0px; border: 0px currentColor; } button { margin: 0px; font-family: inherit; font-size: 100%; } input { margin: 0px; font-family: inherit; font-size: 100%; } select { margin: 0px; font-family: inherit; font-size: 100%; } textarea { margin: 0px; font-family: inherit; font-size: 100%; } button { line-height: normal; } input { line-height: normal; } button { text-transform: none; } select { text-transform: none; } button { cursor: pointer; -webkit-appearance: button; } html input[type=3D'button'] { cursor: pointer; -webkit-appearance: button; } input[type=3D'reset'] { cursor: pointer; -webkit-appearance: button; } input[type=3D'submit'] { cursor: pointer; -webkit-appearance: button; } button[disabled] { cursor: default; } html input[disabled] { cursor: default; } input[type=3D'checkbox'] { padding: 0px; box-sizing: border-box; } input[type=3D'radio'] { padding: 0px; box-sizing: border-box; } input[type=3D'search'] { box-sizing: content-box; -moz-box-sizing: content-box; = -webkit-box-sizing: content-box; -webkit-appearance: textfield; } textarea { overflow: auto; vertical-align: top; } table { border-collapse: collapse; border-spacing: 0; } @media print { * { background: none !important; color: rgb(0, 0, 0) !important; = box-shadow: none !important; text-shadow: none !important; } a { text-decoration: underline; } a:visited { text-decoration: underline; } pre { border: 1px solid rgb(153, 153, 153); page-break-inside: avoid; } blockquote { border: 1px solid rgb(153, 153, 153); page-break-inside: avoid; } thead { display: table-header-group; } tr { page-break-inside: avoid; } img { page-break-inside: avoid; } img { max-width: 100% !important; } p { orphans: 3; widows: 3; } h2 { orphans: 3; widows: 3; } h3 { orphans: 3; widows: 3; } h2 { page-break-after: avoid; } h3 { page-break-after: avoid; } select { background: rgb(255, 255, 255) !important; } .navbar { display: none; } .table td { background-color: rgb(255, 255, 255) !important; } .table th { background-color: rgb(255, 255, 255) !important; } .btn > .caret { border-top-color: rgb(0, 0, 0) !important; } .dropup > .btn > .caret { border-top-color: rgb(0, 0, 0) !important; } .label { border: 1px solid rgb(0, 0, 0); } .table { border-collapse: collapse !important; } .table-bordered th { border: 1px solid rgb(221, 221, 221) !important; } .table-bordered td { border: 1px solid rgb(221, 221, 221) !important; } } * { box-sizing: border-box; -moz-box-sizing: border-box; = -webkit-box-sizing: border-box; } *::before { box-sizing: border-box; -moz-box-sizing: border-box; = -webkit-box-sizing: border-box; } *::after { box-sizing: border-box; -moz-box-sizing: border-box; = -webkit-box-sizing: border-box; } html { font-size: 62.5%; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { =09 } input { line-height: inherit; font-family: inherit; font-size: inherit; } button { line-height: inherit; font-family: inherit; font-size: inherit; } select { line-height: inherit; font-family: inherit; font-size: inherit; } textarea { line-height: inherit; font-family: inherit; font-size: inherit; } a { color: rgb(66, 139, 202); text-decoration: none; } a:hover { color: rgb(42, 100, 150); text-decoration: underline; } a:focus { color: rgb(42, 100, 150); text-decoration: underline; } a:focus { outline: rgb(51, 51, 51) dotted thin; outline-offset: -2px; } img { vertical-align: middle; } .img-responsive { height: auto; display: block; max-width: 100%; } .img-rounded { border-radius: 6px; } .img-thumbnail { padding: 4px; border-radius: 4px; border: 1px solid rgb(221, 221, 221); = transition:0.2s ease-in-out; height: auto; line-height: 1.4285; display: = inline-block; max-width: 100%; background-color: rgb(255, 255, 255); = -webkit-transition: all .2s ease-in-out; } .img-circle { border-radius: 50%; } hr { border-width: 1px 0px 0px; border-style: solid none none; border-color: = rgb(238, 238, 238) currentColor currentColor; margin-top: 20px; = margin-bottom: 20px; } .sr-only { margin: -1px; padding: 0px; border: 0px currentColor; width: 1px; = height: 1px; overflow: hidden; position: absolute; clip: rect(0px, 0px, = 0px, 0px); } p { margin: 0px 0px 10px; } .lead { line-height: 1.4; font-size: 16px; font-weight: 200; margin-bottom: = 20px; } @media all and (min-width:768px) { .lead { font-size: 21px; } } small { font-size: 85%; } .small { font-size: 85%; } cite { font-style: normal; } .text-muted { color: rgb(153, 153, 153); } .text-primary { color: rgb(66, 139, 202); } .text-primary:hover { color: rgb(48, 113, 169); } .text-warning { color: rgb(192, 152, 83); } .text-warning:hover { color: rgb(164, 126, 60); } .text-danger { color: rgb(185, 74, 72); } .text-danger:hover { color: rgb(149, 59, 57); } .text-success { color: rgb(70, 136, 71); } .text-success:hover { color: rgb(53, 102, 53); } .text-info { color: rgb(58, 135, 173); } .text-info:hover { color: rgb(45, 105, 135); } .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } h1 { =09 } h2 { =09 } h3 { =09 } h4 { =09 } h5 { =09 } h6 { =09 } .h1 { =09 } .h2 { =09 } .h3 { =09 } .h4 { =09 } .h5 { =09 } .h6 { =09 } h1 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h2 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h3 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h4 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h5 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h6 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h1 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h2 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h3 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h4 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h5 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h6 small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h1 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h2 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h3 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h4 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h5 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h6 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h1 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h2 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h3 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h4 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h5 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } .h6 .small { color: rgb(153, 153, 153); line-height: 1; font-weight: normal; } h1 { margin-top: 20px; margin-bottom: 10px; } h2 { margin-top: 20px; margin-bottom: 10px; } h3 { margin-top: 20px; margin-bottom: 10px; } h1 small { font-size: 65%; } h2 small { font-size: 65%; } h3 small { font-size: 65%; } h1 .small { font-size: 65%; } h2 .small { font-size: 65%; } h3 .small { font-size: 65%; } h4 { margin-top: 10px; margin-bottom: 10px; } h5 { margin-top: 10px; margin-bottom: 10px; } h6 { margin-top: 10px; margin-bottom: 10px; } h4 small { font-size: 75%; } h5 small { font-size: 75%; } h6 small { font-size: 75%; } h4 .small { font-size: 75%; } h5 .small { font-size: 75%; } h6 .small { font-size: 75%; } h1 { font-size: 36px; } .h1 { font-size: 36px; } h2 { font-size: 30px; } .h2 { font-size: 30px; } h3 { font-size: 24px; } .h3 { font-size: 24px; } h4 { font-size: 18px; } .h4 { font-size: 18px; } h5 { font-size: 14px; } .h5 { font-size: 14px; } h6 { font-size: 12px; } .h6 { font-size: 12px; } .page-header { margin: 40px 0px 20px; padding-bottom: 9px; border-bottom-color: = rgb(238, 238, 238); border-bottom-width: 1px; border-bottom-style: = solid; } ul { margin-top: 0px; margin-bottom: 10px; } ol { margin-top: 0px; margin-bottom: 10px; } ul ul { margin-bottom: 0px; } ol ul { margin-bottom: 0px; } ul ol { margin-bottom: 0px; } ol ol { margin-bottom: 0px; } .list-unstyled { list-style: none; padding-left: 0px; } .list-inline { list-style: none; padding-left: 0px; } .list-inline > li { padding-right: 5px; padding-left: 5px; display: inline-block; } .list-inline > li:first-child { padding-left: 0px; } dl { margin-bottom: 20px; } dt { line-height: 1.4285; } dd { line-height: 1.4285; } dt { font-weight: bold; } dd { margin-left: 0px; } @media all and (min-width:768px) { .dl-horizontal dt { width: 160px; text-align: right; overflow: hidden; clear: left; float: = left; white-space: nowrap; -ms-text-overflow: ellipsis; } .dl-horizontal dd { margin-left: 180px; } .dl-horizontal dd::before { display: table; content: " "; } .dl-horizontal dd::after { display: table; content: " "; } .dl-horizontal dd::after { clear: both; } .dl-horizontal dd::before { display: table; content: " "; } .dl-horizontal dd::after { display: table; content: " "; } .dl-horizontal dd::after { clear: both; } } abbr[title] { border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1px; = border-bottom-style: dotted; cursor: help; } abbr[data-original-title] { border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1px; = border-bottom-style: dotted; cursor: help; } abbr.initialism { text-transform: uppercase; font-size: 90%; } blockquote { margin: 0px 0px 20px; padding: 10px 20px; border-left-color: rgb(238, = 238, 238); border-left-width: 5px; border-left-style: solid; } blockquote p { line-height: 1.25; font-size: 17.5px; font-weight: 300; } blockquote p:last-child { margin-bottom: 0px; } blockquote small { color: rgb(153, 153, 153); line-height: 1.4285; display: block; } blockquote small::before { content: "\2014 \00A0"; } blockquote.pull-right { padding-right: 15px; padding-left: 0px; border-right-color: rgb(238, = 238, 238); border-left-color: currentColor; border-right-width: 5px; = border-left-width: 0px; border-right-style: solid; border-left-style: = none; } blockquote.pull-right p { text-align: right; } blockquote.pull-right small { text-align: right; } blockquote.pull-right .small { text-align: right; } blockquote.pull-right small::before { content: ""; } blockquote.pull-right .small::before { content: ""; } blockquote.pull-right small::after { content: "\00A0 \2014"; } blockquote.pull-right .small::after { content: "\00A0 \2014"; } blockquote::before { content: ""; } blockquote::after { content: ""; } address { line-height: 1.4285; font-style: normal; margin-bottom: 20px; } code { font-family: Monaco, Menlo, Consolas, "Courier New", monospace; } kbd { font-family: Monaco, Menlo, Consolas, "Courier New", monospace; } pre { font-family: Monaco, Menlo, Consolas, "Courier New", monospace; } samp { font-family: Monaco, Menlo, Consolas, "Courier New", monospace; } code { padding: 2px 4px; border-radius: 4px; color: rgb(199, 37, 78); = font-size: 90%; white-space: nowrap; background-color: rgb(249, 242, = 244); } pre { margin: 0px 0px 10px; padding: 9.5px; border-radius: 4px; border: 1px = solid rgb(204, 204, 204); color: rgb(51, 51, 51); line-height: 1.4285; = font-size: 13px; display: block; -ms-word-break: break-all; = -ms-word-wrap: break-word; background-color: rgb(245, 245, 245); } pre code { padding: 0px; border-radius: 0px; color: inherit; font-size: inherit; = white-space: pre-wrap; background-color: transparent; } .pre-scrollable { -ms-overflow-y: scroll; max-height: 340px; } .container { padding-right: 15px; padding-left: 15px; margin-right: auto; = margin-left: auto; } .container::before { display: table; content: " "; } .container::after { display: table; content: " "; } .container::after { clear: both; } .container::before { display: table; content: " "; } .container::after { display: table; content: " "; } .container::after { clear: both; } .row { margin-right: -15px; margin-left: -15px; } .row::before { display: table; content: " "; } .row::after { display: table; content: " "; } .row::after { clear: both; } .row::before { display: table; content: " "; } .row::after { display: table; content: " "; } .row::after { clear: both; } .col-xs-1 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-1 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-1 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-1 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-2 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-2 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-2 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-2 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-3 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-3 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-3 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-3 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-4 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-4 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-4 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-4 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-5 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-5 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-5 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-5 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-6 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-6 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-6 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-6 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-7 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-7 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-7 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-7 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-8 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-8 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-8 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-8 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-9 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-9 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-9 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-9 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-10 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-10 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-10 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-10 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-11 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-11 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-11 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-11 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-12 { padding-right: 15px; padding-left: 15px; position: relative; } .col-sm-12 { padding-right: 15px; padding-left: 15px; position: relative; } .col-md-12 { padding-right: 15px; padding-left: 15px; position: relative; } .col-lg-12 { padding-right: 15px; padding-left: 15px; position: relative; } .col-xs-1 { float: left; } .col-xs-2 { float: left; } .col-xs-3 { float: left; } .col-xs-4 { float: left; } .col-xs-5 { float: left; } .col-xs-6 { float: left; } .col-xs-7 { float: left; } .col-xs-8 { float: left; } .col-xs-9 { float: left; } .col-xs-10 { float: left; } .col-xs-11 { float: left; } .col-xs-12 { width: 100%; } .col-xs-11 { width: 91.66%; } .col-xs-10 { width: 83.33%; } .col-xs-9 { width: 75%; } .col-xs-8 { width: 66.66%; } .col-xs-7 { width: 58.33%; } .col-xs-6 { width: 50%; } .col-xs-5 { width: 41.66%; } .col-xs-4 { width: 33.33%; } .col-xs-3 { width: 25%; } .col-xs-2 { width: 16.66%; } .col-xs-1 { width: 8.33%; } .col-xs-pull-12 { right: 100%; } .col-xs-pull-11 { right: 91.66%; } .col-xs-pull-10 { right: 83.33%; } .col-xs-pull-9 { right: 75%; } .col-xs-pull-8 { right: 66.66%; } .col-xs-pull-7 { right: 58.33%; } .col-xs-pull-6 { right: 50%; } .col-xs-pull-5 { right: 41.66%; } .col-xs-pull-4 { right: 33.33%; } .col-xs-pull-3 { right: 25%; } .col-xs-pull-2 { right: 16.66%; } .col-xs-pull-1 { right: 8.33%; } .col-xs-pull-0 { right: 0px; } .col-xs-push-12 { left: 100%; } .col-xs-push-11 { left: 91.66%; } .col-xs-push-10 { left: 83.33%; } .col-xs-push-9 { left: 75%; } .col-xs-push-8 { left: 66.66%; } .col-xs-push-7 { left: 58.33%; } .col-xs-push-6 { left: 50%; } .col-xs-push-5 { left: 41.66%; } .col-xs-push-4 { left: 33.33%; } .col-xs-push-3 { left: 25%; } .col-xs-push-2 { left: 16.66%; } .col-xs-push-1 { left: 8.33%; } .col-xs-push-0 { left: 0px; } .col-xs-offset-12 { margin-left: 100%; } .col-xs-offset-11 { margin-left: 91.66%; } .col-xs-offset-10 { margin-left: 83.33%; } .col-xs-offset-9 { margin-left: 75%; } .col-xs-offset-8 { margin-left: 66.66%; } .col-xs-offset-7 { margin-left: 58.33%; } .col-xs-offset-6 { margin-left: 50%; } .col-xs-offset-5 { margin-left: 41.66%; } .col-xs-offset-4 { margin-left: 33.33%; } .col-xs-offset-3 { margin-left: 25%; } .col-xs-offset-2 { margin-left: 16.66%; } .col-xs-offset-1 { margin-left: 8.33%; } .col-xs-offset-0 { margin-left: 0px; } @media all and (min-width:768px) { .container { width: 750px; } .col-sm-1 { float: left; } .col-sm-2 { float: left; } .col-sm-3 { float: left; } .col-sm-4 { float: left; } .col-sm-5 { float: left; } .col-sm-6 { float: left; } .col-sm-7 { float: left; } .col-sm-8 { float: left; } .col-sm-9 { float: left; } .col-sm-10 { float: left; } .col-sm-11 { float: left; } .col-sm-12 { width: 100%; } .col-sm-11 { width: 91.66%; } .col-sm-10 { width: 83.33%; } .col-sm-9 { width: 75%; } .col-sm-8 { width: 66.66%; } .col-sm-7 { width: 58.33%; } .col-sm-6 { width: 50%; } .col-sm-5 { width: 41.66%; } .col-sm-4 { width: 33.33%; } .col-sm-3 { width: 25%; } .col-sm-2 { width: 16.66%; } .col-sm-1 { width: 8.33%; } .col-sm-pull-12 { right: 100%; } .col-sm-pull-11 { right: 91.66%; } .col-sm-pull-10 { right: 83.33%; } .col-sm-pull-9 { right: 75%; } .col-sm-pull-8 { right: 66.66%; } .col-sm-pull-7 { right: 58.33%; } .col-sm-pull-6 { right: 50%; } .col-sm-pull-5 { right: 41.66%; } .col-sm-pull-4 { right: 33.33%; } .col-sm-pull-3 { right: 25%; } .col-sm-pull-2 { right: 16.66%; } .col-sm-pull-1 { right: 8.33%; } .col-sm-pull-0 { right: 0px; } .col-sm-push-12 { left: 100%; } .col-sm-push-11 { left: 91.66%; } .col-sm-push-10 { left: 83.33%; } .col-sm-push-9 { left: 75%; } .col-sm-push-8 { left: 66.66%; } .col-sm-push-7 { left: 58.33%; } .col-sm-push-6 { left: 50%; } .col-sm-push-5 { left: 41.66%; } .col-sm-push-4 { left: 33.33%; } .col-sm-push-3 { left: 25%; } .col-sm-push-2 { left: 16.66%; } .col-sm-push-1 { left: 8.33%; } .col-sm-push-0 { left: 0px; } .col-sm-offset-12 { margin-left: 100%; } .col-sm-offset-11 { margin-left: 91.66%; } .col-sm-offset-10 { margin-left: 83.33%; } .col-sm-offset-9 { margin-left: 75%; } .col-sm-offset-8 { margin-left: 66.66%; } .col-sm-offset-7 { margin-left: 58.33%; } .col-sm-offset-6 { margin-left: 50%; } .col-sm-offset-5 { margin-left: 41.66%; } .col-sm-offset-4 { margin-left: 33.33%; } .col-sm-offset-3 { margin-left: 25%; } .col-sm-offset-2 { margin-left: 16.66%; } .col-sm-offset-1 { margin-left: 8.33%; } .col-sm-offset-0 { margin-left: 0px; } } @media all and (min-width:992px) { .container { width: 970px; } .col-md-1 { float: left; } .col-md-2 { float: left; } .col-md-3 { float: left; } .col-md-4 { float: left; } .col-md-5 { float: left; } .col-md-6 { float: left; } .col-md-7 { float: left; } .col-md-8 { float: left; } .col-md-9 { float: left; } .col-md-10 { float: left; } .col-md-11 { float: left; } .col-md-12 { width: 100%; } .col-md-11 { width: 91.66%; } .col-md-10 { width: 83.33%; } .col-md-9 { width: 75%; } .col-md-8 { width: 66.66%; } .col-md-7 { width: 58.33%; } .col-md-6 { width: 50%; } .col-md-5 { width: 41.66%; } .col-md-4 { width: 33.33%; } .col-md-3 { width: 25%; } .col-md-2 { width: 16.66%; } .col-md-1 { width: 8.33%; } .col-md-pull-12 { right: 100%; } .col-md-pull-11 { right: 91.66%; } .col-md-pull-10 { right: 83.33%; } .col-md-pull-9 { right: 75%; } .col-md-pull-8 { right: 66.66%; } .col-md-pull-7 { right: 58.33%; } .col-md-pull-6 { right: 50%; } .col-md-pull-5 { right: 41.66%; } .col-md-pull-4 { right: 33.33%; } .col-md-pull-3 { right: 25%; } .col-md-pull-2 { right: 16.66%; } .col-md-pull-1 { right: 8.33%; } .col-md-pull-0 { right: 0px; } .col-md-push-12 { left: 100%; } .col-md-push-11 { left: 91.66%; } .col-md-push-10 { left: 83.33%; } .col-md-push-9 { left: 75%; } .col-md-push-8 { left: 66.66%; } .col-md-push-7 { left: 58.33%; } .col-md-push-6 { left: 50%; } .col-md-push-5 { left: 41.66%; } .col-md-push-4 { left: 33.33%; } .col-md-push-3 { left: 25%; } .col-md-push-2 { left: 16.66%; } .col-md-push-1 { left: 8.33%; } .col-md-push-0 { left: 0px; } .col-md-offset-12 { margin-left: 100%; } .col-md-offset-11 { margin-left: 91.66%; } .col-md-offset-10 { margin-left: 83.33%; } .col-md-offset-9 { margin-left: 75%; } .col-md-offset-8 { margin-left: 66.66%; } .col-md-offset-7 { margin-left: 58.33%; } .col-md-offset-6 { margin-left: 50%; } .col-md-offset-5 { margin-left: 41.66%; } .col-md-offset-4 { margin-left: 33.33%; } .col-md-offset-3 { margin-left: 25%; } .col-md-offset-2 { margin-left: 16.66%; } .col-md-offset-1 { margin-left: 8.33%; } .col-md-offset-0 { margin-left: 0px; } } @media all and (min-width:1200px) { .container { width: 1170px; } .col-lg-1 { float: left; } .col-lg-2 { float: left; } .col-lg-3 { float: left; } .col-lg-4 { float: left; } .col-lg-5 { float: left; } .col-lg-6 { float: left; } .col-lg-7 { float: left; } .col-lg-8 { float: left; } .col-lg-9 { float: left; } .col-lg-10 { float: left; } .col-lg-11 { float: left; } .col-lg-12 { width: 100%; } .col-lg-11 { width: 91.66%; } .col-lg-10 { width: 83.33%; } .col-lg-9 { width: 75%; } .col-lg-8 { width: 66.66%; } .col-lg-7 { width: 58.33%; } .col-lg-6 { width: 50%; } .col-lg-5 { width: 41.66%; } .col-lg-4 { width: 33.33%; } .col-lg-3 { width: 25%; } .col-lg-2 { width: 16.66%; } .col-lg-1 { width: 8.33%; } .col-lg-pull-12 { right: 100%; } .col-lg-pull-11 { right: 91.66%; } .col-lg-pull-10 { right: 83.33%; } .col-lg-pull-9 { right: 75%; } .col-lg-pull-8 { right: 66.66%; } .col-lg-pull-7 { right: 58.33%; } .col-lg-pull-6 { right: 50%; } .col-lg-pull-5 { right: 41.66%; } .col-lg-pull-4 { right: 33.33%; } .col-lg-pull-3 { right: 25%; } .col-lg-pull-2 { right: 16.66%; } .col-lg-pull-1 { right: 8.33%; } .col-lg-pull-0 { right: 0px; } .col-lg-push-12 { left: 100%; } .col-lg-push-11 { left: 91.66%; } .col-lg-push-10 { left: 83.33%; } .col-lg-push-9 { left: 75%; } .col-lg-push-8 { left: 66.66%; } .col-lg-push-7 { left: 58.33%; } .col-lg-push-6 { left: 50%; } .col-lg-push-5 { left: 41.66%; } .col-lg-push-4 { left: 33.33%; } .col-lg-push-3 { left: 25%; } .col-lg-push-2 { left: 16.66%; } .col-lg-push-1 { left: 8.33%; } .col-lg-push-0 { left: 0px; } .col-lg-offset-12 { margin-left: 100%; } .col-lg-offset-11 { margin-left: 91.66%; } .col-lg-offset-10 { margin-left: 83.33%; } .col-lg-offset-9 { margin-left: 75%; } .col-lg-offset-8 { margin-left: 66.66%; } .col-lg-offset-7 { margin-left: 58.33%; } .col-lg-offset-6 { margin-left: 50%; } .col-lg-offset-5 { margin-left: 41.66%; } .col-lg-offset-4 { margin-left: 33.33%; } .col-lg-offset-3 { margin-left: 25%; } .col-lg-offset-2 { margin-left: 16.66%; } .col-lg-offset-1 { margin-left: 8.33%; } .col-lg-offset-0 { margin-left: 0px; } } table { max-width: 100%; background-color: transparent; } th { text-align: left; } .table { width: 100%; margin-bottom: 20px; } .table > thead > tr > th { padding: 8px; line-height: 1.4285; vertical-align: top; = border-top-color: rgb(221, 221, 221); border-top-width: 1px; = border-top-style: solid; } .table > tbody > tr > th { padding: 8px; line-height: 1.4285; vertical-align: top; = border-top-color: rgb(221, 221, 221); border-top-width: 1px; = border-top-style: solid; } .table > tfoot > tr > th { padding: 8px; line-height: 1.4285; vertical-align: top; = border-top-color: rgb(221, 221, 221); border-top-width: 1px; = border-top-style: solid; } .table > thead > tr > td { padding: 8px; line-height: 1.4285; vertical-align: top; = border-top-color: rgb(221, 221, 221); border-top-width: 1px; = border-top-style: solid; } .table > tbody > tr > td { padding: 8px; line-height: 1.4285; vertical-align: top; = border-top-color: rgb(221, 221, 221); border-top-width: 1px; = border-top-style: solid; } .table > tfoot > tr > td { padding: 8px; line-height: 1.4285; vertical-align: top; = border-top-color: rgb(221, 221, 221); border-top-width: 1px; = border-top-style: solid; } .table > thead > tr > th { vertical-align: bottom; border-bottom-color: rgb(221, 221, 221); = border-bottom-width: 2px; border-bottom-style: solid; } .table > caption + thead > tr:first-child > th { border-top-color: currentColor; border-top-width: 0px; = border-top-style: none; } .table > colgroup + thead > tr:first-child > th { border-top-color: currentColor; border-top-width: 0px; = border-top-style: none; } .table > thead:first-child > tr:first-child > th { border-top-color: currentColor; border-top-width: 0px; = border-top-style: none; } .table > caption + thead > tr:first-child > td { border-top-color: currentColor; border-top-width: 0px; = border-top-style: none; } .table > colgroup + thead > tr:first-child > td { border-top-color: currentColor; border-top-width: 0px; = border-top-style: none; } .table > thead:first-child > tr:first-child > td { border-top-color: currentColor; border-top-width: 0px; = border-top-style: none; } .table > tbody + tbody { border-top-color: rgb(221, 221, 221); border-top-width: 2px; = border-top-style: solid; } .table .table { background-color: rgb(255, 255, 255); } .table-condensed > thead > tr > th { padding: 5px; } .table-condensed > tbody > tr > th { padding: 5px; } .table-condensed > tfoot > tr > th { padding: 5px; } .table-condensed > thead > tr > td { padding: 5px; } .table-condensed > tbody > tr > td { padding: 5px; } .table-condensed > tfoot > tr > td { padding: 5px; } .table-bordered { border: 1px solid rgb(221, 221, 221); } .table-bordered > thead > tr > th { border: 1px solid rgb(221, 221, 221); } .table-bordered > tbody > tr > th { border: 1px solid rgb(221, 221, 221); } .table-bordered > tfoot > tr > th { border: 1px solid rgb(221, 221, 221); } .table-bordered > thead > tr > td { border: 1px solid rgb(221, 221, 221); } .table-bordered > tbody > tr > td { border: 1px solid rgb(221, 221, 221); } .table-bordered > tfoot > tr > td { border: 1px solid rgb(221, 221, 221); } .table-bordered > thead > tr > th { border-bottom-width: 2px; } .table-bordered > thead > tr > td { border-bottom-width: 2px; } .table-striped > tbody > tr:nth-child(2n+1) > td { background-color: rgb(249, 249, 249); } .table-hover > tbody > tr:hover > td { background-color: rgb(245, 245, 245); } .table-hover > tbody > tr:hover > th { background-color: rgb(245, 245, 245); } table col[class*=3D'col-'] { float: none; display: table-column; } table td[class*=3D'col-'] { float: none; display: table-cell; } table th[class*=3D'col-'] { float: none; display: table-cell; } .table > thead > tr > td.active { background-color: rgb(245, 245, 245); } .table > tbody > tr > td.active { background-color: rgb(245, 245, 245); } .table > tfoot > tr > td.active { background-color: rgb(245, 245, 245); } .table > thead > tr > th.active { background-color: rgb(245, 245, 245); } .table > tbody > tr > th.active { background-color: rgb(245, 245, 245); } .table > tfoot > tr > th.active { background-color: rgb(245, 245, 245); } .table > thead > tr.active > td { background-color: rgb(245, 245, 245); } .table > tbody > tr.active > td { background-color: rgb(245, 245, 245); } .table > tfoot > tr.active > td { background-color: rgb(245, 245, 245); } .table > thead > tr.active > th { background-color: rgb(245, 245, 245); } .table > tbody > tr.active > th { background-color: rgb(245, 245, 245); } .table > tfoot > tr.active > th { background-color: rgb(245, 245, 245); } .table > thead > tr > td.success { background-color: rgb(223, 240, 216); } .table > tbody > tr > td.success { background-color: rgb(223, 240, 216); } .table > tfoot > tr > td.success { background-color: rgb(223, 240, 216); } .table > thead > tr > th.success { background-color: rgb(223, 240, 216); } .table > tbody > tr > th.success { background-color: rgb(223, 240, 216); } .table > tfoot > tr > th.success { background-color: rgb(223, 240, 216); } .table > thead > tr.success > td { background-color: rgb(223, 240, 216); } .table > tbody > tr.success > td { background-color: rgb(223, 240, 216); } .table > tfoot > tr.success > td { background-color: rgb(223, 240, 216); } .table > thead > tr.success > th { background-color: rgb(223, 240, 216); } .table > tbody > tr.success > th { background-color: rgb(223, 240, 216); } .table > tfoot > tr.success > th { background-color: rgb(223, 240, 216); } .table-hover > tbody > tr > td.success:hover { background-color: rgb(208, 233, 198); } .table-hover > tbody > tr > th.success:hover { background-color: rgb(208, 233, 198); } .table-hover > tbody > tr.success:hover > td { background-color: rgb(208, 233, 198); } .table-hover > tbody > tr.success:hover > th { background-color: rgb(208, 233, 198); } .table > thead > tr > td.danger { background-color: rgb(242, 222, 222); } .table > tbody > tr > td.danger { background-color: rgb(242, 222, 222); } .table > tfoot > tr > td.danger { background-color: rgb(242, 222, 222); } .table > thead > tr > th.danger { background-color: rgb(242, 222, 222); } .table > tbody > tr > th.danger { background-color: rgb(242, 222, 222); } .table > tfoot > tr > th.danger { background-color: rgb(242, 222, 222); } .table > thead > tr.danger > td { background-color: rgb(242, 222, 222); } .table > tbody > tr.danger > td { background-color: rgb(242, 222, 222); } .table > tfoot > tr.danger > td { background-color: rgb(242, 222, 222); } .table > thead > tr.danger > th { background-color: rgb(242, 222, 222); } .table > tbody > tr.danger > th { background-color: rgb(242, 222, 222); } .table > tfoot > tr.danger > th { background-color: rgb(242, 222, 222); } .table-hover > tbody > tr > td.danger:hover { background-color: rgb(235, 204, 204); } .table-hover > tbody > tr > th.danger:hover { background-color: rgb(235, 204, 204); } .table-hover > tbody > tr.danger:hover > td { background-color: rgb(235, 204, 204); } .table-hover > tbody > tr.danger:hover > th { background-color: rgb(235, 204, 204); } .table > thead > tr > td.warning { background-color: rgb(252, 248, 227); } .table > tbody > tr > td.warning { background-color: rgb(252, 248, 227); } .table > tfoot > tr > td.warning { background-color: rgb(252, 248, 227); } .table > thead > tr > th.warning { background-color: rgb(252, 248, 227); } .table > tbody > tr > th.warning { background-color: rgb(252, 248, 227); } .table > tfoot > tr > th.warning { background-color: rgb(252, 248, 227); } .table > thead > tr.warning > td { background-color: rgb(252, 248, 227); } .table > tbody > tr.warning > td { background-color: rgb(252, 248, 227); } .table > tfoot > tr.warning > td { background-color: rgb(252, 248, 227); } .table > thead > tr.warning > th { background-color: rgb(252, 248, 227); } .table > tbody > tr.warning > th { background-color: rgb(252, 248, 227); } .table > tfoot > tr.warning > th { background-color: rgb(252, 248, 227); } .table-hover > tbody > tr > td.warning:hover { background-color: rgb(250, 242, 204); } .table-hover > tbody > tr > th.warning:hover { background-color: rgb(250, 242, 204); } .table-hover > tbody > tr.warning:hover > td { background-color: rgb(250, 242, 204); } .table-hover > tbody > tr.warning:hover > th { background-color: rgb(250, 242, 204); } @media all and (max-width:767px) { .table-responsive { border: 1px solid rgb(221, 221, 221); width: 100%; margin-bottom: 15px; = -ms-overflow-x: scroll; -ms-overflow-y: hidden; -ms-overflow-style: = -ms-autohiding-scrollbar; -webkit-overflow-scrolling: touch; } .table-responsive > .table { margin-bottom: 0px; } .table-responsive > .table > thead > tr > th { white-space: nowrap; } .table-responsive > .table > tbody > tr > th { white-space: nowrap; } .table-responsive > .table > tfoot > tr > th { white-space: nowrap; } .table-responsive > .table > thead > tr > td { white-space: nowrap; } .table-responsive > .table > tbody > tr > td { white-space: nowrap; } .table-responsive > .table > tfoot > tr > td { white-space: nowrap; } .table-responsive > .table-bordered { border: 0px currentColor; } .table-responsive > .table-bordered > thead > tr > th:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .table-responsive > .table-bordered > tbody > tr > th:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .table-responsive > .table-bordered > tfoot > tr > th:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .table-responsive > .table-bordered > thead > tr > td:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .table-responsive > .table-bordered > tbody > tr > td:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .table-responsive > .table-bordered > tfoot > tr > td:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .table-responsive > .table-bordered > thead > tr > th:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .table-responsive > .table-bordered > tbody > tr > th:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .table-responsive > .table-bordered > tfoot > tr > th:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .table-responsive > .table-bordered > thead > tr > td:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .table-responsive > .table-bordered > tbody > tr > td:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .table-responsive > .table-bordered > tfoot > tr > td:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .table-responsive > .table-bordered > tbody > tr:last-child > th { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .table-responsive > .table-bordered > tfoot > tr:last-child > th { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .table-responsive > .table-bordered > tbody > tr:last-child > td { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .table-responsive > .table-bordered > tfoot > tr:last-child > td { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } } fieldset { margin: 0px; padding: 0px; border: 0px currentColor; } legend { border-width: 0px 0px 1px; border-style: none none solid; border-color: = currentColor currentColor rgb(229, 229, 229); padding: 0px; width: 100%; = color: rgb(51, 51, 51); line-height: inherit; font-size: 21px; = margin-bottom: 20px; display: block; } label { font-weight: bold; margin-bottom: 5px; display: inline-block; } input[type=3D'search'] { box-sizing: border-box; -moz-box-sizing: border-box; = -webkit-box-sizing: border-box; } input[type=3D'radio'] { margin: 1px 0px 0px; line-height: normal; } input[type=3D'checkbox'] { margin: 1px 0px 0px; line-height: normal; } input[type=3D'file'] { display: block; } select[multiple] { height: auto; } select[size] { height: auto; } select optgroup { font-family: inherit; font-size: inherit; font-style: inherit; } input[type=3D'file']:focus { outline: rgb(51, 51, 51) dotted thin; outline-offset: -2px; } input[type=3D'radio']:focus { outline: rgb(51, 51, 51) dotted thin; outline-offset: -2px; } input[type=3D'checkbox']:focus { outline: rgb(51, 51, 51) dotted thin; outline-offset: -2px; } output { color: rgb(85, 85, 85); line-height: 1.4285; padding-top: 7px; = font-size: 14px; vertical-align: middle; display: block; } .form-control { padding: 6px 12px; border-radius: 4px; border: 1px solid rgb(204, 204, = 204); transition:border-color 0.15s ease-in-out, box-shadow 0.15s = ease-in-out; width: 100%; height: 34px; color: rgb(85, 85, 85); = line-height: 1.4285; font-size: 14px; vertical-align: middle; display: = block; box-shadow: inset 0px 1px 1px rgba(0,0,0,0.075); = background-image: none; background-color: rgb(255, 255, 255); = -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); = -webkit-transition: border-color ease-in-out .15s, box-shadow = ease-in-out .15s; } .form-control:focus { border-color: rgb(102, 175, 233); outline: 0px; box-shadow: inset 0px = 1px 1px rgba(0,0,0,0.075), 0px 0px 8px rgba(102,175,233,0.6); = -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px = rgba(102, 175, 233, 0.6); } :-ms-input-placeholder.form-control { color: rgb(153, 153, 153); } [disabled].form-control { cursor: not-allowed; background-color: rgb(238, 238, 238); } [readonly].form-control { cursor: not-allowed; background-color: rgb(238, 238, 238); } fieldset[disabled] .form-control { cursor: not-allowed; background-color: rgb(238, 238, 238); } textarea.form-control { height: auto; } .form-group { margin-bottom: 15px; } .radio { padding-left: 20px; margin-top: 10px; margin-bottom: 10px; = vertical-align: middle; display: block; min-height: 20px; } .checkbox { padding-left: 20px; margin-top: 10px; margin-bottom: 10px; = vertical-align: middle; display: block; min-height: 20px; } .radio label { font-weight: normal; margin-bottom: 0px; display: inline; cursor: = pointer; } .checkbox label { font-weight: normal; margin-bottom: 0px; display: inline; cursor: = pointer; } .radio input[type=3D'radio'] { margin-left: -20px; float: left; } .radio-inline input[type=3D'radio'] { margin-left: -20px; float: left; } .checkbox input[type=3D'checkbox'] { margin-left: -20px; float: left; } .checkbox-inline input[type=3D'checkbox'] { margin-left: -20px; float: left; } .radio + .radio { margin-top: -5px; } .checkbox + .checkbox { margin-top: -5px; } .radio-inline { padding-left: 20px; font-weight: normal; margin-bottom: 0px; = vertical-align: middle; display: inline-block; cursor: pointer; } .checkbox-inline { padding-left: 20px; font-weight: normal; margin-bottom: 0px; = vertical-align: middle; display: inline-block; cursor: pointer; } .radio-inline + .radio-inline { margin-top: 0px; margin-left: 10px; } .checkbox-inline + .checkbox-inline { margin-top: 0px; margin-left: 10px; } input[type=3D'radio'][disabled] { cursor: not-allowed; } input[type=3D'checkbox'][disabled] { cursor: not-allowed; } [disabled].radio { cursor: not-allowed; } [disabled].radio-inline { cursor: not-allowed; } [disabled].checkbox { cursor: not-allowed; } [disabled].checkbox-inline { cursor: not-allowed; } fieldset[disabled] input[type=3D'radio'] { cursor: not-allowed; } fieldset[disabled] input[type=3D'checkbox'] { cursor: not-allowed; } fieldset[disabled] .radio { cursor: not-allowed; } fieldset[disabled] .radio-inline { cursor: not-allowed; } fieldset[disabled] .checkbox { cursor: not-allowed; } fieldset[disabled] .checkbox-inline { cursor: not-allowed; } .input-sm { padding: 5px 10px; border-radius: 3px; height: 30px; line-height: 1.5; = font-size: 12px; } select.input-sm { height: 30px; line-height: 30px; } textarea.input-sm { height: auto; } .input-lg { padding: 10px 16px; border-radius: 6px; height: 45px; line-height: = 1.33; font-size: 18px; } select.input-lg { height: 45px; line-height: 45px; } textarea.input-lg { height: auto; } .has-warning .help-block { color: rgb(192, 152, 83); } .has-warning .control-label { color: rgb(192, 152, 83); } .has-warning .radio { color: rgb(192, 152, 83); } .has-warning .checkbox { color: rgb(192, 152, 83); } .has-warning .radio-inline { color: rgb(192, 152, 83); } .has-warning .checkbox-inline { color: rgb(192, 152, 83); } .has-warning .form-control { border-color: rgb(192, 152, 83); box-shadow: inset 0px 1px 1px = rgba(0,0,0,0.075); -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, = 0.075); } .has-warning .form-control:focus { border-color: rgb(164, 126, 60); box-shadow: inset 0px 1px 1px = rgba(0,0,0,0.075), 0px 0px 6px #dbc59e; -webkit-box-shadow: inset 0 1px = 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; } .has-warning .input-group-addon { border-color: rgb(192, 152, 83); color: rgb(192, 152, 83); = background-color: rgb(252, 248, 227); } .has-error .help-block { color: rgb(185, 74, 72); } .has-error .control-label { color: rgb(185, 74, 72); } .has-error .radio { color: rgb(185, 74, 72); } .has-error .checkbox { color: rgb(185, 74, 72); } .has-error .radio-inline { color: rgb(185, 74, 72); } .has-error .checkbox-inline { color: rgb(185, 74, 72); } .has-error .form-control { border-color: rgb(185, 74, 72); box-shadow: inset 0px 1px 1px = rgba(0,0,0,0.075); -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, = 0.075); } .has-error .form-control:focus { border-color: rgb(149, 59, 57); box-shadow: inset 0px 1px 1px = rgba(0,0,0,0.075), 0px 0px 6px #d59392; -webkit-box-shadow: inset 0 1px = 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; } .has-error .input-group-addon { border-color: rgb(185, 74, 72); color: rgb(185, 74, 72); = background-color: rgb(242, 222, 222); } .has-success .help-block { color: rgb(70, 136, 71); } .has-success .control-label { color: rgb(70, 136, 71); } .has-success .radio { color: rgb(70, 136, 71); } .has-success .checkbox { color: rgb(70, 136, 71); } .has-success .radio-inline { color: rgb(70, 136, 71); } .has-success .checkbox-inline { color: rgb(70, 136, 71); } .has-success .form-control { border-color: rgb(70, 136, 71); box-shadow: inset 0px 1px 1px = rgba(0,0,0,0.075); -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, = 0.075); } .has-success .form-control:focus { border-color: rgb(53, 102, 53); box-shadow: inset 0px 1px 1px = rgba(0,0,0,0.075), 0px 0px 6px #7aba7b; -webkit-box-shadow: inset 0 1px = 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; } .has-success .input-group-addon { border-color: rgb(70, 136, 71); color: rgb(70, 136, 71); = background-color: rgb(223, 240, 216); } .form-control-static { margin-bottom: 0px; } .help-block { color: rgb(115, 115, 115); margin-top: 5px; margin-bottom: 10px; = display: block; } @media all and (min-width:768px) { .form-inline .form-group { margin-bottom: 0px; vertical-align: middle; display: inline-block; } .form-inline .form-control { display: inline-block; } .form-inline .radio { padding-left: 0px; margin-top: 0px; margin-bottom: 0px; display: = inline-block; } .form-inline .checkbox { padding-left: 0px; margin-top: 0px; margin-bottom: 0px; display: = inline-block; } .form-inline .radio input[type=3D'radio'] { margin-left: 0px; float: none; } .form-inline .checkbox input[type=3D'checkbox'] { margin-left: 0px; float: none; } } .form-horizontal .control-label { padding-top: 7px; margin-top: 0px; margin-bottom: 0px; } .form-horizontal .radio { padding-top: 7px; margin-top: 0px; margin-bottom: 0px; } .form-horizontal .checkbox { padding-top: 7px; margin-top: 0px; margin-bottom: 0px; } .form-horizontal .radio-inline { padding-top: 7px; margin-top: 0px; margin-bottom: 0px; } .form-horizontal .checkbox-inline { padding-top: 7px; margin-top: 0px; margin-bottom: 0px; } .form-horizontal .form-group { margin-right: -15px; margin-left: -15px; } .form-horizontal .form-group::before { display: table; content: " "; } .form-horizontal .form-group::after { display: table; content: " "; } .form-horizontal .form-group::after { clear: both; } .form-horizontal .form-group::before { display: table; content: " "; } .form-horizontal .form-group::after { display: table; content: " "; } .form-horizontal .form-group::after { clear: both; } .form-horizontal .form-control-static { padding-top: 7px; } @media all and (min-width:768px) { .form-horizontal .control-label { text-align: right; } } .btn { padding: 6px 12px; border-radius: 4px; border: 1px solid transparent; = text-align: center; line-height: 1.4285; font-size: 14px; font-weight: = normal; margin-bottom: 0px; vertical-align: middle; display: = inline-block; white-space: nowrap; cursor: pointer; -ms-user-select: = none; background-image: none; -webkit-user-select: none; = -moz-user-select: none; -o-user-select: none; user-select: none; } .btn:focus { outline: rgb(51, 51, 51) dotted thin; outline-offset: -2px; } .btn:hover { color: rgb(51, 51, 51); text-decoration: none; } .btn:focus { color: rgb(51, 51, 51); text-decoration: none; } .btn:active { outline: 0px; box-shadow: inset 0px 3px 5px rgba(0,0,0,0.125); = background-image: none; -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, = 0, 0.125); } .active.btn { outline: 0px; box-shadow: inset 0px 3px 5px rgba(0,0,0,0.125); = background-image: none; -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, = 0, 0.125); } .disabled.btn { cursor: not-allowed; opacity: 0.65; pointer-events: none; box-shadow: = none; -webkit-box-shadow: none; } [disabled].btn { cursor: not-allowed; opacity: 0.65; pointer-events: none; box-shadow: = none; -webkit-box-shadow: none; } fieldset[disabled] .btn { cursor: not-allowed; opacity: 0.65; pointer-events: none; box-shadow: = none; -webkit-box-shadow: none; } .btn-default { border-color: rgb(204, 204, 204); color: rgb(51, 51, 51); = background-color: rgb(255, 255, 255); } .btn-default:hover { border-color: rgb(173, 173, 173); color: rgb(51, 51, 51); = background-color: rgb(235, 235, 235); } .btn-default:focus { border-color: rgb(173, 173, 173); color: rgb(51, 51, 51); = background-color: rgb(235, 235, 235); } .btn-default:active { border-color: rgb(173, 173, 173); color: rgb(51, 51, 51); = background-color: rgb(235, 235, 235); } .active.btn-default { border-color: rgb(173, 173, 173); color: rgb(51, 51, 51); = background-color: rgb(235, 235, 235); } .open .btn-default.dropdown-toggle { border-color: rgb(173, 173, 173); color: rgb(51, 51, 51); = background-color: rgb(235, 235, 235); } .btn-default:active { background-image: none; } .active.btn-default { background-image: none; } .open .btn-default.dropdown-toggle { background-image: none; } .disabled.btn-default { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } [disabled].btn-default { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } fieldset[disabled] .btn-default { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } .disabled.btn-default:hover { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } [disabled].btn-default:hover { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } fieldset[disabled] .btn-default:hover { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } .disabled.btn-default:focus { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } [disabled].btn-default:focus { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } fieldset[disabled] .btn-default:focus { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } .disabled.btn-default:active { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } [disabled].btn-default:active { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } fieldset[disabled] .btn-default:active { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } .active.disabled.btn-default { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } [disabled].active.btn-default { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } fieldset[disabled] .active.btn-default { border-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); } .btn-primary { border-color: rgb(53, 126, 189); color: rgb(255, 255, 255); = background-color: rgb(66, 139, 202); } .btn-primary:hover { border-color: rgb(40, 94, 142); color: rgb(255, 255, 255); = background-color: rgb(50, 118, 177); } .btn-primary:focus { border-color: rgb(40, 94, 142); color: rgb(255, 255, 255); = background-color: rgb(50, 118, 177); } .btn-primary:active { border-color: rgb(40, 94, 142); color: rgb(255, 255, 255); = background-color: rgb(50, 118, 177); } .active.btn-primary { border-color: rgb(40, 94, 142); color: rgb(255, 255, 255); = background-color: rgb(50, 118, 177); } .open .btn-primary.dropdown-toggle { border-color: rgb(40, 94, 142); color: rgb(255, 255, 255); = background-color: rgb(50, 118, 177); } .btn-primary:active { background-image: none; } .active.btn-primary { background-image: none; } .open .btn-primary.dropdown-toggle { background-image: none; } .disabled.btn-primary { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } [disabled].btn-primary { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } fieldset[disabled] .btn-primary { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } .disabled.btn-primary:hover { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } [disabled].btn-primary:hover { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } fieldset[disabled] .btn-primary:hover { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } .disabled.btn-primary:focus { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } [disabled].btn-primary:focus { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } fieldset[disabled] .btn-primary:focus { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } .disabled.btn-primary:active { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } [disabled].btn-primary:active { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } fieldset[disabled] .btn-primary:active { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } .active.disabled.btn-primary { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } [disabled].active.btn-primary { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } fieldset[disabled] .active.btn-primary { border-color: rgb(53, 126, 189); background-color: rgb(66, 139, 202); } .btn-warning { border-color: rgb(238, 162, 54); color: rgb(255, 255, 255); = background-color: rgb(240, 173, 78); } .btn-warning:hover { border-color: rgb(213, 133, 18); color: rgb(255, 255, 255); = background-color: rgb(237, 156, 40); } .btn-warning:focus { border-color: rgb(213, 133, 18); color: rgb(255, 255, 255); = background-color: rgb(237, 156, 40); } .btn-warning:active { border-color: rgb(213, 133, 18); color: rgb(255, 255, 255); = background-color: rgb(237, 156, 40); } .active.btn-warning { border-color: rgb(213, 133, 18); color: rgb(255, 255, 255); = background-color: rgb(237, 156, 40); } .open .btn-warning.dropdown-toggle { border-color: rgb(213, 133, 18); color: rgb(255, 255, 255); = background-color: rgb(237, 156, 40); } .btn-warning:active { background-image: none; } .active.btn-warning { background-image: none; } .open .btn-warning.dropdown-toggle { background-image: none; } .disabled.btn-warning { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } [disabled].btn-warning { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } fieldset[disabled] .btn-warning { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } .disabled.btn-warning:hover { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } [disabled].btn-warning:hover { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } fieldset[disabled] .btn-warning:hover { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } .disabled.btn-warning:focus { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } [disabled].btn-warning:focus { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } fieldset[disabled] .btn-warning:focus { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } .disabled.btn-warning:active { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } [disabled].btn-warning:active { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } fieldset[disabled] .btn-warning:active { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } .active.disabled.btn-warning { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } [disabled].active.btn-warning { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } fieldset[disabled] .active.btn-warning { border-color: rgb(238, 162, 54); background-color: rgb(240, 173, 78); } .btn-danger { border-color: rgb(212, 63, 58); color: rgb(255, 255, 255); = background-color: rgb(217, 83, 79); } .btn-danger:hover { border-color: rgb(172, 41, 37); color: rgb(255, 255, 255); = background-color: rgb(210, 50, 45); } .btn-danger:focus { border-color: rgb(172, 41, 37); color: rgb(255, 255, 255); = background-color: rgb(210, 50, 45); } .btn-danger:active { border-color: rgb(172, 41, 37); color: rgb(255, 255, 255); = background-color: rgb(210, 50, 45); } .active.btn-danger { border-color: rgb(172, 41, 37); color: rgb(255, 255, 255); = background-color: rgb(210, 50, 45); } .open .btn-danger.dropdown-toggle { border-color: rgb(172, 41, 37); color: rgb(255, 255, 255); = background-color: rgb(210, 50, 45); } .btn-danger:active { background-image: none; } .active.btn-danger { background-image: none; } .open .btn-danger.dropdown-toggle { background-image: none; } .disabled.btn-danger { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } [disabled].btn-danger { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } fieldset[disabled] .btn-danger { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } .disabled.btn-danger:hover { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } [disabled].btn-danger:hover { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } fieldset[disabled] .btn-danger:hover { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } .disabled.btn-danger:focus { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } [disabled].btn-danger:focus { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } fieldset[disabled] .btn-danger:focus { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } .disabled.btn-danger:active { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } [disabled].btn-danger:active { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } fieldset[disabled] .btn-danger:active { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } .active.disabled.btn-danger { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } [disabled].active.btn-danger { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } fieldset[disabled] .active.btn-danger { border-color: rgb(212, 63, 58); background-color: rgb(217, 83, 79); } .btn-success { border-color: rgb(76, 174, 76); color: rgb(255, 255, 255); = background-color: rgb(92, 184, 92); } .btn-success:hover { border-color: rgb(57, 132, 57); color: rgb(255, 255, 255); = background-color: rgb(71, 164, 71); } .btn-success:focus { border-color: rgb(57, 132, 57); color: rgb(255, 255, 255); = background-color: rgb(71, 164, 71); } .btn-success:active { border-color: rgb(57, 132, 57); color: rgb(255, 255, 255); = background-color: rgb(71, 164, 71); } .active.btn-success { border-color: rgb(57, 132, 57); color: rgb(255, 255, 255); = background-color: rgb(71, 164, 71); } .open .btn-success.dropdown-toggle { border-color: rgb(57, 132, 57); color: rgb(255, 255, 255); = background-color: rgb(71, 164, 71); } .btn-success:active { background-image: none; } .active.btn-success { background-image: none; } .open .btn-success.dropdown-toggle { background-image: none; } .disabled.btn-success { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } [disabled].btn-success { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } fieldset[disabled] .btn-success { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } .disabled.btn-success:hover { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } [disabled].btn-success:hover { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } fieldset[disabled] .btn-success:hover { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } .disabled.btn-success:focus { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } [disabled].btn-success:focus { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } fieldset[disabled] .btn-success:focus { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } .disabled.btn-success:active { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } [disabled].btn-success:active { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } fieldset[disabled] .btn-success:active { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } .active.disabled.btn-success { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } [disabled].active.btn-success { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } fieldset[disabled] .active.btn-success { border-color: rgb(76, 174, 76); background-color: rgb(92, 184, 92); } .btn-info { border-color: rgb(70, 184, 218); color: rgb(255, 255, 255); = background-color: rgb(91, 192, 222); } .btn-info:hover { border-color: rgb(38, 154, 188); color: rgb(255, 255, 255); = background-color: rgb(57, 179, 215); } .btn-info:focus { border-color: rgb(38, 154, 188); color: rgb(255, 255, 255); = background-color: rgb(57, 179, 215); } .btn-info:active { border-color: rgb(38, 154, 188); color: rgb(255, 255, 255); = background-color: rgb(57, 179, 215); } .active.btn-info { border-color: rgb(38, 154, 188); color: rgb(255, 255, 255); = background-color: rgb(57, 179, 215); } .open .btn-info.dropdown-toggle { border-color: rgb(38, 154, 188); color: rgb(255, 255, 255); = background-color: rgb(57, 179, 215); } .btn-info:active { background-image: none; } .active.btn-info { background-image: none; } .open .btn-info.dropdown-toggle { background-image: none; } .disabled.btn-info { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } [disabled].btn-info { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } fieldset[disabled] .btn-info { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } .disabled.btn-info:hover { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } [disabled].btn-info:hover { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } fieldset[disabled] .btn-info:hover { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } .disabled.btn-info:focus { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } [disabled].btn-info:focus { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } fieldset[disabled] .btn-info:focus { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } .disabled.btn-info:active { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } [disabled].btn-info:active { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } fieldset[disabled] .btn-info:active { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } .active.disabled.btn-info { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } [disabled].active.btn-info { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } fieldset[disabled] .active.btn-info { border-color: rgb(70, 184, 218); background-color: rgb(91, 192, 222); } .btn-link { border-radius: 0px; color: rgb(66, 139, 202); font-weight: normal; = cursor: pointer; } .btn-link { box-shadow: none; background-color: transparent; -webkit-box-shadow: = none; } .btn-link:active { box-shadow: none; background-color: transparent; -webkit-box-shadow: = none; } [disabled].btn-link { box-shadow: none; background-color: transparent; -webkit-box-shadow: = none; } fieldset[disabled] .btn-link { box-shadow: none; background-color: transparent; -webkit-box-shadow: = none; } .btn-link { border-color: transparent; } .btn-link:hover { border-color: transparent; } .btn-link:focus { border-color: transparent; } .btn-link:active { border-color: transparent; } .btn-link:hover { color: rgb(42, 100, 150); text-decoration: underline; background-color: = transparent; } .btn-link:focus { color: rgb(42, 100, 150); text-decoration: underline; background-color: = transparent; } [disabled].btn-link:hover { color: rgb(153, 153, 153); text-decoration: none; } fieldset[disabled] .btn-link:hover { color: rgb(153, 153, 153); text-decoration: none; } [disabled].btn-link:focus { color: rgb(153, 153, 153); text-decoration: none; } fieldset[disabled] .btn-link:focus { color: rgb(153, 153, 153); text-decoration: none; } .btn-lg { padding: 10px 16px; border-radius: 6px; line-height: 1.33; font-size: = 18px; } .btn-sm { padding: 5px 10px; border-radius: 3px; line-height: 1.5; font-size: = 12px; } .btn-xs { padding: 5px 10px; border-radius: 3px; line-height: 1.5; font-size: = 12px; } .btn-xs { padding: 1px 5px; } .btn-block { width: 100%; padding-right: 0px; padding-left: 0px; display: block; } .btn-block + .btn-block { margin-top: 5px; } input[type=3D'submit'].btn-block { width: 100%; } input[type=3D'reset'].btn-block { width: 100%; } input[type=3D'button'].btn-block { width: 100%; } .fade { transition:opacity 0.15s linear; opacity: 0; -webkit-transition: = opacity .15s linear; } .in.fade { opacity: 1; } .collapse { display: none; } .in.collapse { display: block; } .collapsing { transition:height 0.35s; height: 0px; overflow: hidden; position: = relative; -webkit-transition: height .35s ease; } .glyphicon { top: 1px; line-height: 1; font-family: "Glyphicons Halflings"; = font-style: normal; font-weight: normal; display: inline-block; = position: relative; -webkit-font-smoothing: antialiased; = -moz-osx-font-smoothing: grayscale; } :empty.glyphicon { width: 1em; } .glyphicon-asterisk::before { content: "\2a"; } .glyphicon-plus::before { content: "\2b"; } .glyphicon-euro::before { content: "\20ac"; } .glyphicon-minus::before { content: "\2212"; } .glyphicon-cloud::before { content: "\2601"; } .glyphicon-envelope::before { content: "\2709"; } .glyphicon-pencil::before { content: "\270f"; } .glyphicon-glass::before { content: "\e001"; } .glyphicon-music::before { content: "\e002"; } .glyphicon-search::before { content: "\e003"; } .glyphicon-heart::before { content: "\e005"; } .glyphicon-star::before { content: "\e006"; } .glyphicon-star-empty::before { content: "\e007"; } .glyphicon-user::before { content: "\e008"; } .glyphicon-film::before { content: "\e009"; } .glyphicon-th-large::before { content: "\e010"; } .glyphicon-th::before { content: "\e011"; } .glyphicon-th-list::before { content: "\e012"; } .glyphicon-ok::before { content: "\e013"; } .glyphicon-remove::before { content: "\e014"; } .glyphicon-zoom-in::before { content: "\e015"; } .glyphicon-zoom-out::before { content: "\e016"; } .glyphicon-off::before { content: "\e017"; } .glyphicon-signal::before { content: "\e018"; } .glyphicon-cog::before { content: "\e019"; } .glyphicon-trash::before { content: "\e020"; } .glyphicon-home::before { content: "\e021"; } .glyphicon-file::before { content: "\e022"; } .glyphicon-time::before { content: "\e023"; } .glyphicon-road::before { content: "\e024"; } .glyphicon-download-alt::before { content: "\e025"; } .glyphicon-download::before { content: "\e026"; } .glyphicon-upload::before { content: "\e027"; } .glyphicon-inbox::before { content: "\e028"; } .glyphicon-play-circle::before { content: "\e029"; } .glyphicon-repeat::before { content: "\e030"; } .glyphicon-refresh::before { content: "\e031"; } .glyphicon-list-alt::before { content: "\e032"; } .glyphicon-lock::before { content: "\e033"; } .glyphicon-flag::before { content: "\e034"; } .glyphicon-headphones::before { content: "\e035"; } .glyphicon-volume-off::before { content: "\e036"; } .glyphicon-volume-down::before { content: "\e037"; } .glyphicon-volume-up::before { content: "\e038"; } .glyphicon-qrcode::before { content: "\e039"; } .glyphicon-barcode::before { content: "\e040"; } .glyphicon-tag::before { content: "\e041"; } .glyphicon-tags::before { content: "\e042"; } .glyphicon-book::before { content: "\e043"; } .glyphicon-bookmark::before { content: "\e044"; } .glyphicon-print::before { content: "\e045"; } .glyphicon-camera::before { content: "\e046"; } .glyphicon-font::before { content: "\e047"; } .glyphicon-bold::before { content: "\e048"; } .glyphicon-italic::before { content: "\e049"; } .glyphicon-text-height::before { content: "\e050"; } .glyphicon-text-width::before { content: "\e051"; } .glyphicon-align-left::before { content: "\e052"; } .glyphicon-align-center::before { content: "\e053"; } .glyphicon-align-right::before { content: "\e054"; } .glyphicon-align-justify::before { content: "\e055"; } .glyphicon-list::before { content: "\e056"; } .glyphicon-indent-left::before { content: "\e057"; } .glyphicon-indent-right::before { content: "\e058"; } .glyphicon-facetime-video::before { content: "\e059"; } .glyphicon-picture::before { content: "\e060"; } .glyphicon-map-marker::before { content: "\e062"; } .glyphicon-adjust::before { content: "\e063"; } .glyphicon-tint::before { content: "\e064"; } .glyphicon-edit::before { content: "\e065"; } .glyphicon-share::before { content: "\e066"; } .glyphicon-check::before { content: "\e067"; } .glyphicon-move::before { content: "\e068"; } .glyphicon-step-backward::before { content: "\e069"; } .glyphicon-fast-backward::before { content: "\e070"; } .glyphicon-backward::before { content: "\e071"; } .glyphicon-play::before { content: "\e072"; } .glyphicon-pause::before { content: "\e073"; } .glyphicon-stop::before { content: "\e074"; } .glyphicon-forward::before { content: "\e075"; } .glyphicon-fast-forward::before { content: "\e076"; } .glyphicon-step-forward::before { content: "\e077"; } .glyphicon-eject::before { content: "\e078"; } .glyphicon-chevron-left::before { content: "\e079"; } .glyphicon-chevron-right::before { content: "\e080"; } .glyphicon-plus-sign::before { content: "\e081"; } .glyphicon-minus-sign::before { content: "\e082"; } .glyphicon-remove-sign::before { content: "\e083"; } .glyphicon-ok-sign::before { content: "\e084"; } .glyphicon-question-sign::before { content: "\e085"; } .glyphicon-info-sign::before { content: "\e086"; } .glyphicon-screenshot::before { content: "\e087"; } .glyphicon-remove-circle::before { content: "\e088"; } .glyphicon-ok-circle::before { content: "\e089"; } .glyphicon-ban-circle::before { content: "\e090"; } .glyphicon-arrow-left::before { content: "\e091"; } .glyphicon-arrow-right::before { content: "\e092"; } .glyphicon-arrow-up::before { content: "\e093"; } .glyphicon-arrow-down::before { content: "\e094"; } .glyphicon-share-alt::before { content: "\e095"; } .glyphicon-resize-full::before { content: "\e096"; } .glyphicon-resize-small::before { content: "\e097"; } .glyphicon-exclamation-sign::before { content: "\e101"; } .glyphicon-gift::before { content: "\e102"; } .glyphicon-leaf::before { content: "\e103"; } .glyphicon-fire::before { content: "\e104"; } .glyphicon-eye-open::before { content: "\e105"; } .glyphicon-eye-close::before { content: "\e106"; } .glyphicon-warning-sign::before { content: "\e107"; } .glyphicon-plane::before { content: "\e108"; } .glyphicon-calendar::before { content: "\e109"; } .glyphicon-random::before { content: "\e110"; } .glyphicon-comment::before { content: "\e111"; } .glyphicon-magnet::before { content: "\e112"; } .glyphicon-chevron-up::before { content: "\e113"; } .glyphicon-chevron-down::before { content: "\e114"; } .glyphicon-retweet::before { content: "\e115"; } .glyphicon-shopping-cart::before { content: "\e116"; } .glyphicon-folder-close::before { content: "\e117"; } .glyphicon-folder-open::before { content: "\e118"; } .glyphicon-resize-vertical::before { content: "\e119"; } .glyphicon-resize-horizontal::before { content: "\e120"; } .glyphicon-hdd::before { content: "\e121"; } .glyphicon-bullhorn::before { content: "\e122"; } .glyphicon-bell::before { content: "\e123"; } .glyphicon-certificate::before { content: "\e124"; } .glyphicon-thumbs-up::before { content: "\e125"; } .glyphicon-thumbs-down::before { content: "\e126"; } .glyphicon-hand-right::before { content: "\e127"; } .glyphicon-hand-left::before { content: "\e128"; } .glyphicon-hand-up::before { content: "\e129"; } .glyphicon-hand-down::before { content: "\e130"; } .glyphicon-circle-arrow-right::before { content: "\e131"; } .glyphicon-circle-arrow-left::before { content: "\e132"; } .glyphicon-circle-arrow-up::before { content: "\e133"; } .glyphicon-circle-arrow-down::before { content: "\e134"; } .glyphicon-globe::before { content: "\e135"; } .glyphicon-wrench::before { content: "\e136"; } .glyphicon-tasks::before { content: "\e137"; } .glyphicon-filter::before { content: "\e138"; } .glyphicon-briefcase::before { content: "\e139"; } .glyphicon-fullscreen::before { content: "\e140"; } .glyphicon-dashboard::before { content: "\e141"; } .glyphicon-paperclip::before { content: "\e142"; } .glyphicon-heart-empty::before { content: "\e143"; } .glyphicon-link::before { content: "\e144"; } .glyphicon-phone::before { content: "\e145"; } .glyphicon-pushpin::before { content: "\e146"; } .glyphicon-usd::before { content: "\e148"; } .glyphicon-gbp::before { content: "\e149"; } .glyphicon-sort::before { content: "\e150"; } .glyphicon-sort-by-alphabet::before { content: "\e151"; } .glyphicon-sort-by-alphabet-alt::before { content: "\e152"; } .glyphicon-sort-by-order::before { content: "\e153"; } .glyphicon-sort-by-order-alt::before { content: "\e154"; } .glyphicon-sort-by-attributes::before { content: "\e155"; } .glyphicon-sort-by-attributes-alt::before { content: "\e156"; } .glyphicon-unchecked::before { content: "\e157"; } .glyphicon-expand::before { content: "\e158"; } .glyphicon-collapse-down::before { content: "\e159"; } .glyphicon-collapse-up::before { content: "\e160"; } .glyphicon-log-in::before { content: "\e161"; } .glyphicon-flash::before { content: "\e162"; } .glyphicon-log-out::before { content: "\e163"; } .glyphicon-new-window::before { content: "\e164"; } .glyphicon-record::before { content: "\e165"; } .glyphicon-save::before { content: "\e166"; } .glyphicon-open::before { content: "\e167"; } .glyphicon-saved::before { content: "\e168"; } .glyphicon-import::before { content: "\e169"; } .glyphicon-export::before { content: "\e170"; } .glyphicon-send::before { content: "\e171"; } .glyphicon-floppy-disk::before { content: "\e172"; } .glyphicon-floppy-saved::before { content: "\e173"; } .glyphicon-floppy-remove::before { content: "\e174"; } .glyphicon-floppy-save::before { content: "\e175"; } .glyphicon-floppy-open::before { content: "\e176"; } .glyphicon-credit-card::before { content: "\e177"; } .glyphicon-transfer::before { content: "\e178"; } .glyphicon-cutlery::before { content: "\e179"; } .glyphicon-header::before { content: "\e180"; } .glyphicon-compressed::before { content: "\e181"; } .glyphicon-earphone::before { content: "\e182"; } .glyphicon-phone-alt::before { content: "\e183"; } .glyphicon-tower::before { content: "\e184"; } .glyphicon-stats::before { content: "\e185"; } .glyphicon-sd-video::before { content: "\e186"; } .glyphicon-hd-video::before { content: "\e187"; } .glyphicon-subtitles::before { content: "\e188"; } .glyphicon-sound-stereo::before { content: "\e189"; } .glyphicon-sound-dolby::before { content: "\e190"; } .glyphicon-sound-5-1::before { content: "\e191"; } .glyphicon-sound-6-1::before { content: "\e192"; } .glyphicon-sound-7-1::before { content: "\e193"; } .glyphicon-copyright-mark::before { content: "\e194"; } .glyphicon-registration-mark::before { content: "\e195"; } .glyphicon-cloud-download::before { content: "\e197"; } .glyphicon-cloud-upload::before { content: "\e198"; } .glyphicon-tree-conifer::before { content: "\e199"; } .glyphicon-tree-deciduous::before { content: "\e200"; } .caret { border-width: 4px 4px 0px; border-style: solid solid dotted; = border-color: rgb(0, 0, 0) transparent currentColor; width: 0px; height: = 0px; margin-left: 2px; vertical-align: middle; display: inline-block; } .dropdown { position: relative; } .dropdown-toggle:focus { outline: 0px; } .dropdown-menu { list-style: none; margin: 2px 0px 0px; padding: 5px 0px; border-radius: = 4px; border: 1px solid rgba(0, 0, 0, 0.15); left: 0px; top: 100%; = font-size: 14px; float: left; display: none; position: absolute; = z-index: 1000; min-width: 160px; box-shadow: 0px 6px 12px = rgba(0,0,0,0.175); background-clip: padding-box; background-color: = rgb(255, 255, 255); -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); } .pull-right.dropdown-menu { left: auto; right: 0px; } .dropdown-menu .divider { margin: 9px 0px; height: 1px; overflow: hidden; background-color: = rgb(229, 229, 229); } .dropdown-menu > li > a { padding: 3px 20px; color: rgb(51, 51, 51); line-height: 1.4285; clear: = both; font-weight: normal; display: block; white-space: nowrap; } .dropdown-menu > li > a:hover { color: rgb(38, 38, 38); text-decoration: none; background-color: = rgb(245, 245, 245); } .dropdown-menu > li > a:focus { color: rgb(38, 38, 38); text-decoration: none; background-color: = rgb(245, 245, 245); } .dropdown-menu > .active > a { outline: 0px; color: rgb(255, 255, 255); text-decoration: none; = background-color: rgb(66, 139, 202); } .dropdown-menu > .active > a:hover { outline: 0px; color: rgb(255, 255, 255); text-decoration: none; = background-color: rgb(66, 139, 202); } .dropdown-menu > .active > a:focus { outline: 0px; color: rgb(255, 255, 255); text-decoration: none; = background-color: rgb(66, 139, 202); } .dropdown-menu > .disabled > a { color: rgb(153, 153, 153); } .dropdown-menu > .disabled > a:hover { color: rgb(153, 153, 153); } .dropdown-menu > .disabled > a:focus { color: rgb(153, 153, 153); } .dropdown-menu > .disabled > a:hover { text-decoration: none; cursor: not-allowed; background-image: none; = background-color: transparent; } .dropdown-menu > .disabled > a:focus { text-decoration: none; cursor: not-allowed; background-image: none; = background-color: transparent; } .open > .dropdown-menu { display: block; } .open > a { outline: 0px; } .dropdown-header { padding: 3px 20px; color: rgb(153, 153, 153); line-height: 1.4285; = font-size: 12px; display: block; } .dropdown-backdrop { left: 0px; top: 0px; right: 0px; bottom: 0px; position: fixed; z-index: = 990; } .pull-right > .dropdown-menu { left: auto; right: 0px; } .dropup .caret { border-top-color: currentColor; border-bottom-color: rgb(0, 0, 0); = border-top-width: 0px; border-bottom-width: 4px; border-top-style: = dotted; border-bottom-style: solid; content: ""; } .navbar-fixed-bottom .dropdown .caret { border-top-color: currentColor; border-bottom-color: rgb(0, 0, 0); = border-top-width: 0px; border-bottom-width: 4px; border-top-style: = dotted; border-bottom-style: solid; content: ""; } .dropup .dropdown-menu { top: auto; bottom: 100%; margin-bottom: 1px; } .navbar-fixed-bottom .dropdown .dropdown-menu { top: auto; bottom: 100%; margin-bottom: 1px; } @media all and (min-width:768px) { .navbar-right .dropdown-menu { left: auto; right: 0px; } } .btn-default .caret { border-top-color: rgb(51, 51, 51); } .btn-primary .caret { border-top-color: rgb(255, 255, 255); } .btn-success .caret { border-top-color: rgb(255, 255, 255); } .btn-warning .caret { border-top-color: rgb(255, 255, 255); } .btn-danger .caret { border-top-color: rgb(255, 255, 255); } .btn-info .caret { border-top-color: rgb(255, 255, 255); } .dropup .btn-default .caret { border-bottom-color: rgb(51, 51, 51); } .dropup .btn-primary .caret { border-bottom-color: rgb(255, 255, 255); } .dropup .btn-success .caret { border-bottom-color: rgb(255, 255, 255); } .dropup .btn-warning .caret { border-bottom-color: rgb(255, 255, 255); } .dropup .btn-danger .caret { border-bottom-color: rgb(255, 255, 255); } .dropup .btn-info .caret { border-bottom-color: rgb(255, 255, 255); } .btn-group { vertical-align: middle; display: inline-block; position: relative; } .btn-group-vertical { vertical-align: middle; display: inline-block; position: relative; } .btn-group > .btn { float: left; position: relative; } .btn-group-vertical > .btn { float: left; position: relative; } .btn-group > .btn:hover { z-index: 2; } .btn-group-vertical > .btn:hover { z-index: 2; } .btn-group > .btn:focus { z-index: 2; } .btn-group-vertical > .btn:focus { z-index: 2; } .btn-group > .btn:active { z-index: 2; } .btn-group-vertical > .btn:active { z-index: 2; } .btn-group > .active.btn { z-index: 2; } .btn-group-vertical > .active.btn { z-index: 2; } .btn-group > .btn:focus { outline: 0px; } .btn-group-vertical > .btn:focus { outline: 0px; } .btn-group .btn + .btn { margin-left: -1px; } .btn-group .btn + .btn-group { margin-left: -1px; } .btn-group .btn-group + .btn { margin-left: -1px; } .btn-group .btn-group + .btn-group { margin-left: -1px; } .btn-toolbar::before { display: table; content: " "; } .btn-toolbar::after { display: table; content: " "; } .btn-toolbar::after { clear: both; } .btn-toolbar::before { display: table; content: " "; } .btn-toolbar::after { display: table; content: " "; } .btn-toolbar::after { clear: both; } .btn-toolbar .btn-group { float: left; } .btn-toolbar > .btn + .btn { margin-left: 5px; } .btn-toolbar > .btn-group + .btn { margin-left: 5px; } .btn-toolbar > .btn + .btn-group { margin-left: 5px; } .btn-toolbar > .btn-group + .btn-group { margin-left: 5px; } .btn-group > = :not(:first-child):not(.dropdown-toggle):not(:last-child).btn { border-radius: 0px; } .btn-group > :first-child.btn { margin-left: 0px; } .btn-group > :first-child:not(.dropdown-toggle):not(:last-child).btn { border-top-right-radius: 0px; border-bottom-right-radius: 0px; } .btn-group > :last-child:not(:first-child).btn { border-top-left-radius: 0px; border-bottom-left-radius: 0px; } .btn-group > :not(:first-child).dropdown-toggle { border-top-left-radius: 0px; border-bottom-left-radius: 0px; } .btn-group > .btn-group { float: left; } .btn-group > :not(:first-child):not(:last-child).btn-group > .btn { border-radius: 0px; } .btn-group > :first-child.btn-group > :last-child.btn { border-top-right-radius: 0px; border-bottom-right-radius: 0px; } .btn-group > :first-child.btn-group > .dropdown-toggle { border-top-right-radius: 0px; border-bottom-right-radius: 0px; } .btn-group > :last-child.btn-group > :first-child.btn { border-top-left-radius: 0px; border-bottom-left-radius: 0px; } .btn-group .dropdown-toggle:active { outline: 0px; } .open.btn-group .dropdown-toggle { outline: 0px; } .btn-group-xs > .btn { padding: 1px 5px; border-radius: 3px; line-height: 1.5; font-size: = 12px; } .btn-group-sm > .btn { padding: 5px 10px; border-radius: 3px; line-height: 1.5; font-size: = 12px; } .btn-group-lg > .btn { padding: 10px 16px; border-radius: 6px; line-height: 1.33; font-size: = 18px; } .btn-group > .btn + .dropdown-toggle { padding-right: 8px; padding-left: 8px; } .btn-group > .btn-lg + .dropdown-toggle { padding-right: 12px; padding-left: 12px; } .open.btn-group .dropdown-toggle { box-shadow: inset 0px 3px 5px rgba(0,0,0,0.125); -webkit-box-shadow: = inset 0 3px 5px rgba(0, 0, 0, 0.125); } .open.btn-group .btn-link.dropdown-toggle { box-shadow: none; -webkit-box-shadow: none; } .btn .caret { margin-left: 0px; } .btn-lg .caret { border-width: 5px 5px 0px; } .dropup .btn-lg .caret { border-width: 0px 5px 5px; } .btn-group-vertical > .btn { width: 100%; float: none; display: block; max-width: 100%; } .btn-group-vertical > .btn-group { width: 100%; float: none; display: block; max-width: 100%; } .btn-group-vertical > .btn-group::before { display: table; content: " "; } .btn-group-vertical > .btn-group::after { display: table; content: " "; } .btn-group-vertical > .btn-group::after { clear: both; } .btn-group-vertical > .btn-group::before { display: table; content: " "; } .btn-group-vertical > .btn-group::after { display: table; content: " "; } .btn-group-vertical > .btn-group::after { clear: both; } .btn-group-vertical > .btn-group > .btn { float: none; } .btn-group-vertical > .btn + .btn { margin-top: -1px; margin-left: 0px; } .btn-group-vertical > .btn + .btn-group { margin-top: -1px; margin-left: 0px; } .btn-group-vertical > .btn-group + .btn { margin-top: -1px; margin-left: 0px; } .btn-group-vertical > .btn-group + .btn-group { margin-top: -1px; margin-left: 0px; } .btn-group-vertical > :not(:first-child):not(:last-child).btn { border-radius: 0px; } .btn-group-vertical > :first-child:not(:last-child).btn { border-top-right-radius: 4px; border-bottom-right-radius: 0px; = border-bottom-left-radius: 0px; } .btn-group-vertical > :last-child:not(:first-child).btn { border-top-left-radius: 0px; border-top-right-radius: 0px; = border-bottom-left-radius: 4px; } .btn-group-vertical > :not(:first-child):not(:last-child).btn-group > = .btn { border-radius: 0px; } .btn-group-vertical > :first-child.btn-group > :last-child.btn { border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; } .btn-group-vertical > :first-child.btn-group > .dropdown-toggle { border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; } .btn-group-vertical > :last-child.btn-group > :first-child.btn { border-top-left-radius: 0px; border-top-right-radius: 0px; } .btn-group-justified { width: 100%; display: table; border-collapse: separate; table-layout: = fixed; } .btn-group-justified .btn { width: 1%; float: none; display: table-cell; } [data-toggle=3D'buttons'] > .btn > input[type=3D'radio'] { display: none; } [data-toggle=3D'buttons'] > .btn > input[type=3D'checkbox'] { display: none; } .input-group { display: table; border-collapse: separate; position: relative; } .col.input-group { padding-right: 0px; padding-left: 0px; float: none; } .input-group .form-control { width: 100%; margin-bottom: 0px; } .input-group-lg > .form-control { padding: 10px 16px; border-radius: 6px; height: 45px; line-height: = 1.33; font-size: 18px; } .input-group-lg > .input-group-addon { padding: 10px 16px; border-radius: 6px; height: 45px; line-height: = 1.33; font-size: 18px; } .input-group-lg > .input-group-btn > .btn { padding: 10px 16px; border-radius: 6px; height: 45px; line-height: = 1.33; font-size: 18px; } select.input-group-lg > .form-control { height: 45px; line-height: 45px; } select.input-group-lg > .input-group-addon { height: 45px; line-height: 45px; } select.input-group-lg > .input-group-btn > .btn { height: 45px; line-height: 45px; } textarea.input-group-lg > .form-control { height: auto; } textarea.input-group-lg > .input-group-addon { height: auto; } textarea.input-group-lg > .input-group-btn > .btn { height: auto; } .input-group-sm > .form-control { padding: 5px 10px; border-radius: 3px; height: 30px; line-height: 1.5; = font-size: 12px; } .input-group-sm > .input-group-addon { padding: 5px 10px; border-radius: 3px; height: 30px; line-height: 1.5; = font-size: 12px; } .input-group-sm > .input-group-btn > .btn { padding: 5px 10px; border-radius: 3px; height: 30px; line-height: 1.5; = font-size: 12px; } select.input-group-sm > .form-control { height: 30px; line-height: 30px; } select.input-group-sm > .input-group-addon { height: 30px; line-height: 30px; } select.input-group-sm > .input-group-btn > .btn { height: 30px; line-height: 30px; } textarea.input-group-sm > .form-control { height: auto; } textarea.input-group-sm > .input-group-addon { height: auto; } textarea.input-group-sm > .input-group-btn > .btn { height: auto; } .input-group-addon { display: table-cell; } .input-group-btn { display: table-cell; } .input-group .form-control { display: table-cell; } .input-group .input-group-select-container { display: table-cell; } .input-group .input-group-select-container .form-control { display: block; } :not(:first-child):not(:last-child).input-group-addon { border-radius: 0px; } :not(:first-child):not(:last-child).input-group-btn { border-radius: 0px; } .input-group :not(:first-child):not(:last-child).form-control { border-radius: 0px; } .input-group-addon { width: 1%; vertical-align: middle; white-space: nowrap; } .input-group-btn { width: 1%; vertical-align: middle; white-space: nowrap; } .input-group-addon { padding: 6px 12px; border-radius: 4px; border: 1px solid rgb(204, 204, = 204); text-align: center; color: rgb(85, 85, 85); line-height: 1; = font-size: 14px; font-weight: normal; background-color: rgb(238, 238, = 238); } .input-sm.input-group-addon { padding: 5px 10px; border-radius: 3px; font-size: 12px; } .input-lg.input-group-addon { padding: 10px 16px; border-radius: 6px; font-size: 18px; } .input-group-addon input[type=3D'radio'] { margin-top: 0px; } .input-group-addon input[type=3D'checkbox'] { margin-top: 0px; } .input-group :first-child.form-control { border-top-right-radius: 0px; border-bottom-right-radius: 0px; } :first-child.input-group-addon { border-top-right-radius: 0px; border-bottom-right-radius: 0px; } :first-child.input-group-btn > .btn { border-top-right-radius: 0px; border-bottom-right-radius: 0px; } :first-child.input-group-btn > .dropdown-toggle { border-top-right-radius: 0px; border-bottom-right-radius: 0px; } :last-child.input-group-btn > = :not(:last-child):not(.dropdown-toggle).btn { border-top-right-radius: 0px; border-bottom-right-radius: 0px; } :first-child.input-group-addon { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .input-group :last-child.form-control { border-top-left-radius: 0px; border-bottom-left-radius: 0px; } :last-child.input-group-addon { border-top-left-radius: 0px; border-bottom-left-radius: 0px; } :last-child.input-group-btn > .btn { border-top-left-radius: 0px; border-bottom-left-radius: 0px; } :last-child.input-group-btn > .dropdown-toggle { border-top-left-radius: 0px; border-bottom-left-radius: 0px; } :first-child.input-group-btn > :not(:first-child).btn { border-top-left-radius: 0px; border-bottom-left-radius: 0px; } :last-child.input-group-addon { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .input-group-btn { white-space: nowrap; position: relative; } :first-child.input-group-btn > .btn { margin-right: -1px; } :last-child.input-group-btn > .btn { margin-left: -1px; } .input-group-btn > .btn { position: relative; } .input-group-btn > .btn + .btn { margin-left: -4px; } .input-group-btn > .btn:hover { z-index: 2; } .input-group-btn > .btn:active { z-index: 2; } .nav { list-style: none; padding-left: 0px; margin-bottom: 0px; } .nav::before { display: table; content: " "; } .nav::after { display: table; content: " "; } .nav::after { clear: both; } .nav::before { display: table; content: " "; } .nav::after { display: table; content: " "; } .nav::after { clear: both; } .nav > li { display: block; position: relative; } .nav > li > a { padding: 10px 15px; display: block; position: relative; } .nav > li > a:hover { text-decoration: none; background-color: rgb(238, 238, 238); } .nav > li > a:focus { text-decoration: none; background-color: rgb(238, 238, 238); } .nav > li.disabled > a { color: rgb(153, 153, 153); } .nav > li.disabled > a:hover { color: rgb(153, 153, 153); text-decoration: none; cursor: not-allowed; = background-color: transparent; } .nav > li.disabled > a:focus { color: rgb(153, 153, 153); text-decoration: none; cursor: not-allowed; = background-color: transparent; } .nav .open > a { border-color: rgb(66, 139, 202); background-color: rgb(238, 238, 238); } .nav .open > a:hover { border-color: rgb(66, 139, 202); background-color: rgb(238, 238, 238); } .nav .open > a:focus { border-color: rgb(66, 139, 202); background-color: rgb(238, 238, 238); } .nav .open > a .caret { border-top-color: rgb(42, 100, 150); border-bottom-color: rgb(42, 100, = 150); } .nav .open > a:hover .caret { border-top-color: rgb(42, 100, 150); border-bottom-color: rgb(42, 100, = 150); } .nav .open > a:focus .caret { border-top-color: rgb(42, 100, 150); border-bottom-color: rgb(42, 100, = 150); } .nav .nav-divider { margin: 9px 0px; height: 1px; overflow: hidden; background-color: = rgb(229, 229, 229); } .nav > li > a > img { max-width: none; } .nav-tabs { border-bottom-color: rgb(221, 221, 221); border-bottom-width: 1px; = border-bottom-style: solid; } .nav-tabs > li { margin-bottom: -1px; float: left; } .nav-tabs > li > a { border-radius: 4px 4px 0px 0px; border: 1px solid transparent; = line-height: 1.4285; margin-right: 2px; } .nav-tabs > li > a:hover { border-color: rgb(238, 238, 238) rgb(238, 238, 238) rgb(221, 221, 221); } .nav-tabs > li.active > a { border-width: 1px; border-style: solid; border-color: rgb(221, 221, = 221) rgb(221, 221, 221) transparent; color: rgb(85, 85, 85); cursor: = default; background-color: rgb(255, 255, 255); } .nav-tabs > li.active > a:hover { border-width: 1px; border-style: solid; border-color: rgb(221, 221, = 221) rgb(221, 221, 221) transparent; color: rgb(85, 85, 85); cursor: = default; background-color: rgb(255, 255, 255); } .nav-tabs > li.active > a:focus { border-width: 1px; border-style: solid; border-color: rgb(221, 221, = 221) rgb(221, 221, 221) transparent; color: rgb(85, 85, 85); cursor: = default; background-color: rgb(255, 255, 255); } .nav-justified.nav-tabs { width: 100%; border-bottom-color: currentColor; border-bottom-width: = 0px; border-bottom-style: none; } .nav-justified.nav-tabs > li { float: none; } .nav-justified.nav-tabs > li > a { text-align: center; margin-bottom: 5px; } .nav-justified.nav-tabs > .dropdown .dropdown-menu { left: auto; top: auto; } @media all and (min-width:768px) { .nav-justified.nav-tabs > li { width: 1%; display: table-cell; } .nav-justified.nav-tabs > li > a { margin-bottom: 0px; } } .nav-justified.nav-tabs > li > a { border-radius: 4px; margin-right: 0px; } .nav-justified.nav-tabs > .active > a { border: 1px solid rgb(221, 221, 221); } .nav-justified.nav-tabs > .active > a:hover { border: 1px solid rgb(221, 221, 221); } .nav-justified.nav-tabs > .active > a:focus { border: 1px solid rgb(221, 221, 221); } @media all and (min-width:768px) { .nav-justified.nav-tabs > li > a { border-radius: 4px 4px 0px 0px; border-bottom-color: rgb(221, 221, = 221); border-bottom-width: 1px; border-bottom-style: solid; } .nav-justified.nav-tabs > .active > a { border-bottom-color: rgb(255, 255, 255); } .nav-justified.nav-tabs > .active > a:hover { border-bottom-color: rgb(255, 255, 255); } .nav-justified.nav-tabs > .active > a:focus { border-bottom-color: rgb(255, 255, 255); } } .nav-pills > li { float: left; } .nav-pills > li > a { border-radius: 4px; } .nav-pills > li + li { margin-left: 2px; } .nav-pills > li.active > a { color: rgb(255, 255, 255); background-color: rgb(66, 139, 202); } .nav-pills > li.active > a:hover { color: rgb(255, 255, 255); background-color: rgb(66, 139, 202); } .nav-pills > li.active > a:focus { color: rgb(255, 255, 255); background-color: rgb(66, 139, 202); } .nav-pills > li.active > a .caret { border-top-color: rgb(255, 255, 255); border-bottom-color: rgb(255, = 255, 255); } .nav-pills > li.active > a:hover .caret { border-top-color: rgb(255, 255, 255); border-bottom-color: rgb(255, = 255, 255); } .nav-pills > li.active > a:focus .caret { border-top-color: rgb(255, 255, 255); border-bottom-color: rgb(255, = 255, 255); } .nav-stacked > li { float: none; } .nav-stacked > li + li { margin-top: 2px; margin-left: 0px; } .nav-justified { width: 100%; } .nav-justified > li { float: none; } .nav-justified > li > a { text-align: center; margin-bottom: 5px; } .nav-justified > .dropdown .dropdown-menu { left: auto; top: auto; } @media all and (min-width:768px) { .nav-justified > li { width: 1%; display: table-cell; } .nav-justified > li > a { margin-bottom: 0px; } } .nav-tabs-justified { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .nav-tabs-justified > li > a { border-radius: 4px; margin-right: 0px; } .nav-tabs-justified > .active > a { border: 1px solid rgb(221, 221, 221); } .nav-tabs-justified > .active > a:hover { border: 1px solid rgb(221, 221, 221); } .nav-tabs-justified > .active > a:focus { border: 1px solid rgb(221, 221, 221); } @media all and (min-width:768px) { .nav-tabs-justified > li > a { border-radius: 4px 4px 0px 0px; border-bottom-color: rgb(221, 221, = 221); border-bottom-width: 1px; border-bottom-style: solid; } .nav-tabs-justified > .active > a { border-bottom-color: rgb(255, 255, 255); } .nav-tabs-justified > .active > a:hover { border-bottom-color: rgb(255, 255, 255); } .nav-tabs-justified > .active > a:focus { border-bottom-color: rgb(255, 255, 255); } } .tab-content > .tab-pane { display: none; } .tab-content > .active { display: block; } .nav .caret { border-top-color: rgb(66, 139, 202); border-bottom-color: rgb(66, 139, = 202); } .nav a:hover .caret { border-top-color: rgb(42, 100, 150); border-bottom-color: rgb(42, 100, = 150); } .nav-tabs .dropdown-menu { margin-top: -1px; border-top-left-radius: 0px; border-top-right-radius: = 0px; } .navbar { border: 1px solid transparent; margin-bottom: 20px; position: relative; = min-height: 50px; } .navbar::before { display: table; content: " "; } .navbar::after { display: table; content: " "; } .navbar::after { clear: both; } .navbar::before { display: table; content: " "; } .navbar::after { display: table; content: " "; } .navbar::after { clear: both; } @media all and (min-width:768px) { .navbar { border-radius: 4px; } } .navbar-header::before { display: table; content: " "; } .navbar-header::after { display: table; content: " "; } .navbar-header::after { clear: both; } .navbar-header::before { display: table; content: " "; } .navbar-header::after { display: table; content: " "; } .navbar-header::after { clear: both; } @media all and (min-width:768px) { .navbar-header { float: left; } } .navbar-collapse { padding-right: 15px; padding-left: 15px; border-top-color: transparent; = border-top-width: 1px; border-top-style: solid; -ms-overflow-x: visible; = max-height: 340px; box-shadow: inset 0px 1px 0px rgba(255,255,255,0.1); = -webkit-overflow-scrolling: touch; } .navbar-collapse::before { display: table; content: " "; } .navbar-collapse::after { display: table; content: " "; } .navbar-collapse::after { clear: both; } .navbar-collapse::before { display: table; content: " "; } .navbar-collapse::after { display: table; content: " "; } .navbar-collapse::after { clear: both; } .in.navbar-collapse { -ms-overflow-y: auto; } @media all and (min-width:768px) { .navbar-collapse { width: auto; border-top-color: currentColor; border-top-width: 0px; = border-top-style: none; box-shadow: none; } .collapse.navbar-collapse { height: auto !important; overflow: visible !important; padding-bottom: = 0px; display: block !important; } .in.navbar-collapse { -ms-overflow-y: auto; } .navbar-collapse :first-child.navbar-left.navbar-nav { margin-left: -15px; } .navbar-collapse :last-child.navbar-right.navbar-nav { margin-right: -15px; } .navbar-collapse :last-child.navbar-text { margin-right: 0px; } } .container > .navbar-header { margin-right: -15px; margin-left: -15px; } .container > .navbar-collapse { margin-right: -15px; margin-left: -15px; } @media all and (min-width:768px) { .container > .navbar-header { margin-right: 0px; margin-left: 0px; } .container > .navbar-collapse { margin-right: 0px; margin-left: 0px; } } .navbar-static-top { border-width: 0px 0px 1px; z-index: 1000; } @media all and (min-width:768px) { .navbar-static-top { border-radius: 0px; } } .navbar-fixed-top { left: 0px; right: 0px; position: fixed; z-index: 1030; } .navbar-fixed-bottom { left: 0px; right: 0px; position: fixed; z-index: 1030; } @media all and (min-width:768px) { .navbar-fixed-top { border-radius: 0px; } .navbar-fixed-bottom { border-radius: 0px; } } .navbar-fixed-top { border-width: 0px 0px 1px; top: 0px; } .navbar-fixed-bottom { border-width: 1px 0px 0px; bottom: 0px; margin-bottom: 0px; } .navbar-brand { padding: 15px; line-height: 20px; font-size: 18px; float: left; } .navbar-brand:hover { text-decoration: none; } .navbar-brand:focus { text-decoration: none; } @media all and (min-width:768px) { .navbar > .container .navbar-brand { margin-left: -15px; } } .navbar-toggle { padding: 9px 10px; border-radius: 4px; border: 1px solid transparent; = margin-top: 8px; margin-right: 15px; margin-bottom: 8px; float: right; = position: relative; background-color: transparent; } .navbar-toggle .icon-bar { border-radius: 1px; width: 22px; height: 2px; display: block; } .navbar-toggle .icon-bar + .icon-bar { margin-top: 4px; } @media all and (min-width:768px) { .navbar-toggle { display: none; } } .navbar-nav { margin: 7.5px -15px; } .navbar-nav > li > a { line-height: 20px; padding-top: 10px; padding-bottom: 10px; } @media all and (max-width:767px) { .navbar-nav .open .dropdown-menu { border: 0px currentColor; width: auto; margin-top: 0px; float: none; = position: static; box-shadow: none; background-color: transparent; } .navbar-nav .open .dropdown-menu > li > a { padding: 5px 15px 5px 25px; } .navbar-nav .open .dropdown-menu .dropdown-header { padding: 5px 15px 5px 25px; } .navbar-nav .open .dropdown-menu > li > a { line-height: 20px; } .navbar-nav .open .dropdown-menu > li > a:hover { background-image: none; } .navbar-nav .open .dropdown-menu > li > a:focus { background-image: none; } } @media all and (min-width:768px) { .navbar-nav { margin: 0px; float: left; } .navbar-nav > li { float: left; } .navbar-nav > li > a { padding-top: 15px; padding-bottom: 15px; } } @media all and (min-width:768px) { .navbar-left { float: left !important; } .navbar-right { float: right !important; } } .navbar-form { margin: 8px -15px; padding: 10px 15px; border-top-color: transparent; = border-bottom-color: transparent; border-top-width: 1px; = border-bottom-width: 1px; border-top-style: solid; border-bottom-style: = solid; box-shadow: inset 0px 1px 0px rgba(255,255,255,0.1), 0px 1px 0px = rgba(255,255,255,0.1); -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, = 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); } @media all and (min-width:768px) { .navbar-form .form-group { margin-bottom: 0px; vertical-align: middle; display: inline-block; } .navbar-form .form-control { display: inline-block; } .navbar-form .radio { padding-left: 0px; margin-top: 0px; margin-bottom: 0px; display: = inline-block; } .navbar-form .checkbox { padding-left: 0px; margin-top: 0px; margin-bottom: 0px; display: = inline-block; } .navbar-form .radio input[type=3D'radio'] { margin-left: 0px; float: none; } .navbar-form .checkbox input[type=3D'checkbox'] { margin-left: 0px; float: none; } } @media all and (max-width:767px) { .navbar-form .form-group { margin-bottom: 5px; } } @media all and (min-width:768px) { .navbar-form { border: 0px currentColor; width: auto; padding-top: 0px; = padding-bottom: 0px; margin-right: 0px; margin-left: 0px; box-shadow: = none; -webkit-box-shadow: none; } } .navbar-nav > li > .dropdown-menu { margin-top: 0px; border-top-left-radius: 0px; border-top-right-radius: = 0px; } .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; } .pull-right.navbar-nav > li > .dropdown-menu { left: auto; right: 0px; } .navbar-nav > li > .pull-right.dropdown-menu { left: auto; right: 0px; } .navbar-btn { margin-top: 8px; margin-bottom: 8px; } .navbar-text { margin-top: 15px; margin-bottom: 15px; float: left; } @media all and (min-width:768px) { .navbar-text { margin-right: 15px; margin-left: 15px; } } .navbar-default { border-color: rgb(231, 231, 231); background-color: rgb(248, 248, 248); } .navbar-default .navbar-brand { color: rgb(119, 119, 119); } .navbar-default .navbar-brand:hover { color: rgb(94, 94, 94); background-color: transparent; } .navbar-default .navbar-brand:focus { color: rgb(94, 94, 94); background-color: transparent; } .navbar-default .navbar-text { color: rgb(119, 119, 119); } .navbar-default .navbar-nav > li > a { color: rgb(119, 119, 119); } .navbar-default .navbar-nav > li > a:hover { color: rgb(51, 51, 51); background-color: transparent; } .navbar-default .navbar-nav > li > a:focus { color: rgb(51, 51, 51); background-color: transparent; } .navbar-default .navbar-nav > .active > a { color: rgb(85, 85, 85); background-color: rgb(231, 231, 231); } .navbar-default .navbar-nav > .active > a:hover { color: rgb(85, 85, 85); background-color: rgb(231, 231, 231); } .navbar-default .navbar-nav > .active > a:focus { color: rgb(85, 85, 85); background-color: rgb(231, 231, 231); } .navbar-default .navbar-nav > .disabled > a { color: rgb(204, 204, 204); background-color: transparent; } .navbar-default .navbar-nav > .disabled > a:hover { color: rgb(204, 204, 204); background-color: transparent; } .navbar-default .navbar-nav > .disabled > a:focus { color: rgb(204, 204, 204); background-color: transparent; } .navbar-default .navbar-toggle { border-color: rgb(221, 221, 221); } .navbar-default .navbar-toggle:hover { background-color: rgb(221, 221, 221); } .navbar-default .navbar-toggle:focus { background-color: rgb(221, 221, 221); } .navbar-default .navbar-toggle .icon-bar { background-color: rgb(204, 204, 204); } .navbar-default .navbar-collapse { border-color: rgb(231, 231, 231); } .navbar-default .navbar-form { border-color: rgb(231, 231, 231); } .navbar-default .navbar-nav > .dropdown > a:hover .caret { border-top-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, = 51); } .navbar-default .navbar-nav > .dropdown > a:focus .caret { border-top-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, = 51); } .navbar-default .navbar-nav > .open > a { color: rgb(85, 85, 85); background-color: rgb(231, 231, 231); } .navbar-default .navbar-nav > .open > a:hover { color: rgb(85, 85, 85); background-color: rgb(231, 231, 231); } .navbar-default .navbar-nav > .open > a:focus { color: rgb(85, 85, 85); background-color: rgb(231, 231, 231); } .navbar-default .navbar-nav > .open > a .caret { border-top-color: rgb(85, 85, 85); border-bottom-color: rgb(85, 85, = 85); } .navbar-default .navbar-nav > .open > a:hover .caret { border-top-color: rgb(85, 85, 85); border-bottom-color: rgb(85, 85, = 85); } .navbar-default .navbar-nav > .open > a:focus .caret { border-top-color: rgb(85, 85, 85); border-bottom-color: rgb(85, 85, = 85); } .navbar-default .navbar-nav > .dropdown > a .caret { border-top-color: rgb(119, 119, 119); border-bottom-color: rgb(119, = 119, 119); } @media all and (max-width:767px) { .navbar-default .navbar-nav .open .dropdown-menu > li > a { color: rgb(119, 119, 119); } .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover { color: rgb(51, 51, 51); background-color: transparent; } .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { color: rgb(51, 51, 51); background-color: transparent; } .navbar-default .navbar-nav .open .dropdown-menu > .active > a { color: rgb(85, 85, 85); background-color: rgb(231, 231, 231); } .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover { color: rgb(85, 85, 85); background-color: rgb(231, 231, 231); } .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { color: rgb(85, 85, 85); background-color: rgb(231, 231, 231); } .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a { color: rgb(204, 204, 204); background-color: transparent; } .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover { color: rgb(204, 204, 204); background-color: transparent; } .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: rgb(204, 204, 204); background-color: transparent; } } .navbar-default .navbar-link { color: rgb(119, 119, 119); } .navbar-default .navbar-link:hover { color: rgb(51, 51, 51); } .navbar-inverse { border-color: rgb(8, 8, 8); background-color: rgb(34, 34, 34); } .navbar-inverse .navbar-brand { color: rgb(153, 153, 153); } .navbar-inverse .navbar-brand:hover { color: rgb(255, 255, 255); background-color: transparent; } .navbar-inverse .navbar-brand:focus { color: rgb(255, 255, 255); background-color: transparent; } .navbar-inverse .navbar-text { color: rgb(153, 153, 153); } .navbar-inverse .navbar-nav > li > a { color: rgb(153, 153, 153); } .navbar-inverse .navbar-nav > li > a:hover { color: rgb(255, 255, 255); background-color: transparent; } .navbar-inverse .navbar-nav > li > a:focus { color: rgb(255, 255, 255); background-color: transparent; } .navbar-inverse .navbar-nav > .active > a { color: rgb(255, 255, 255); background-color: rgb(8, 8, 8); } .navbar-inverse .navbar-nav > .active > a:hover { color: rgb(255, 255, 255); background-color: rgb(8, 8, 8); } .navbar-inverse .navbar-nav > .active > a:focus { color: rgb(255, 255, 255); background-color: rgb(8, 8, 8); } .navbar-inverse .navbar-nav > .disabled > a { color: rgb(68, 68, 68); background-color: transparent; } .navbar-inverse .navbar-nav > .disabled > a:hover { color: rgb(68, 68, 68); background-color: transparent; } .navbar-inverse .navbar-nav > .disabled > a:focus { color: rgb(68, 68, 68); background-color: transparent; } .navbar-inverse .navbar-toggle { border-color: rgb(51, 51, 51); } .navbar-inverse .navbar-toggle:hover { background-color: rgb(51, 51, 51); } .navbar-inverse .navbar-toggle:focus { background-color: rgb(51, 51, 51); } .navbar-inverse .navbar-toggle .icon-bar { background-color: rgb(255, 255, 255); } .navbar-inverse .navbar-collapse { border-color: rgb(16, 16, 16); } .navbar-inverse .navbar-form { border-color: rgb(16, 16, 16); } .navbar-inverse .navbar-nav > .open > a { color: rgb(255, 255, 255); background-color: rgb(8, 8, 8); } .navbar-inverse .navbar-nav > .open > a:hover { color: rgb(255, 255, 255); background-color: rgb(8, 8, 8); } .navbar-inverse .navbar-nav > .open > a:focus { color: rgb(255, 255, 255); background-color: rgb(8, 8, 8); } .navbar-inverse .navbar-nav > .dropdown > a:hover .caret { border-top-color: rgb(255, 255, 255); border-bottom-color: rgb(255, = 255, 255); } .navbar-inverse .navbar-nav > .dropdown > a .caret { border-top-color: rgb(153, 153, 153); border-bottom-color: rgb(153, = 153, 153); } .navbar-inverse .navbar-nav > .open > a .caret { border-top-color: rgb(255, 255, 255); border-bottom-color: rgb(255, = 255, 255); } .navbar-inverse .navbar-nav > .open > a:hover .caret { border-top-color: rgb(255, 255, 255); border-bottom-color: rgb(255, = 255, 255); } .navbar-inverse .navbar-nav > .open > a:focus .caret { border-top-color: rgb(255, 255, 255); border-bottom-color: rgb(255, = 255, 255); } @media all and (max-width:767px) { .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { border-color: rgb(8, 8, 8); } .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { color: rgb(153, 153, 153); } .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover { color: rgb(255, 255, 255); background-color: transparent; } .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { color: rgb(255, 255, 255); background-color: transparent; } .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a { color: rgb(255, 255, 255); background-color: rgb(8, 8, 8); } .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover { color: rgb(255, 255, 255); background-color: rgb(8, 8, 8); } .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { color: rgb(255, 255, 255); background-color: rgb(8, 8, 8); } .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a { color: rgb(68, 68, 68); background-color: transparent; } .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover { color: rgb(68, 68, 68); background-color: transparent; } .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: rgb(68, 68, 68); background-color: transparent; } } .navbar-inverse .navbar-link { color: rgb(153, 153, 153); } .navbar-inverse .navbar-link:hover { color: rgb(255, 255, 255); } .breadcrumb { list-style: none; padding: 8px 15px; border-radius: 4px; margin-bottom: = 20px; background-color: rgb(245, 245, 245); } .breadcrumb > li { display: inline-block; } .breadcrumb > li + li::before { padding: 0px 5px; color: rgb(204, 204, 204); content: "/\00a0"; } .breadcrumb > .active { color: rgb(153, 153, 153); } .pagination { margin: 20px 0px; border-radius: 4px; padding-left: 0px; display: = inline-block; } .pagination > li { display: inline; } .pagination > li > a { padding: 6px 12px; border: 1px solid rgb(221, 221, 221); line-height: = 1.4285; text-decoration: none; margin-left: -1px; float: left; position: = relative; background-color: rgb(255, 255, 255); } .pagination > li > span { padding: 6px 12px; border: 1px solid rgb(221, 221, 221); line-height: = 1.4285; text-decoration: none; margin-left: -1px; float: left; position: = relative; background-color: rgb(255, 255, 255); } .pagination > li:first-child > a { margin-left: 0px; border-top-left-radius: 4px; = border-bottom-left-radius: 4px; } .pagination > li:first-child > span { margin-left: 0px; border-top-left-radius: 4px; = border-bottom-left-radius: 4px; } .pagination > li:last-child > a { border-top-right-radius: 4px; border-bottom-right-radius: 4px; } .pagination > li:last-child > span { border-top-right-radius: 4px; border-bottom-right-radius: 4px; } .pagination > li > a:hover { background-color: rgb(238, 238, 238); } .pagination > li > span:hover { background-color: rgb(238, 238, 238); } .pagination > li > a:focus { background-color: rgb(238, 238, 238); } .pagination > li > span:focus { background-color: rgb(238, 238, 238); } .pagination > .active > a { border-color: rgb(66, 139, 202); color: rgb(255, 255, 255); z-index: 2; = cursor: default; background-color: rgb(66, 139, 202); } .pagination > .active > span { border-color: rgb(66, 139, 202); color: rgb(255, 255, 255); z-index: 2; = cursor: default; background-color: rgb(66, 139, 202); } .pagination > .active > a:hover { border-color: rgb(66, 139, 202); color: rgb(255, 255, 255); z-index: 2; = cursor: default; background-color: rgb(66, 139, 202); } .pagination > .active > span:hover { border-color: rgb(66, 139, 202); color: rgb(255, 255, 255); z-index: 2; = cursor: default; background-color: rgb(66, 139, 202); } .pagination > .active > a:focus { border-color: rgb(66, 139, 202); color: rgb(255, 255, 255); z-index: 2; = cursor: default; background-color: rgb(66, 139, 202); } .pagination > .active > span:focus { border-color: rgb(66, 139, 202); color: rgb(255, 255, 255); z-index: 2; = cursor: default; background-color: rgb(66, 139, 202); } .pagination > .disabled > span { border-color: rgb(221, 221, 221); color: rgb(153, 153, 153); cursor: = not-allowed; background-color: rgb(255, 255, 255); } .pagination > .disabled > span:hover { border-color: rgb(221, 221, 221); color: rgb(153, 153, 153); cursor: = not-allowed; background-color: rgb(255, 255, 255); } .pagination > .disabled > span:focus { border-color: rgb(221, 221, 221); color: rgb(153, 153, 153); cursor: = not-allowed; background-color: rgb(255, 255, 255); } .pagination > .disabled > a { border-color: rgb(221, 221, 221); color: rgb(153, 153, 153); cursor: = not-allowed; background-color: rgb(255, 255, 255); } .pagination > .disabled > a:hover { border-color: rgb(221, 221, 221); color: rgb(153, 153, 153); cursor: = not-allowed; background-color: rgb(255, 255, 255); } .pagination > .disabled > a:focus { border-color: rgb(221, 221, 221); color: rgb(153, 153, 153); cursor: = not-allowed; background-color: rgb(255, 255, 255); } .pagination-lg > li > a { padding: 10px 16px; font-size: 18px; } .pagination-lg > li > span { padding: 10px 16px; font-size: 18px; } .pagination-lg > li:first-child > a { border-top-left-radius: 6px; border-bottom-left-radius: 6px; } .pagination-lg > li:first-child > span { border-top-left-radius: 6px; border-bottom-left-radius: 6px; } .pagination-lg > li:last-child > a { border-top-right-radius: 6px; border-bottom-right-radius: 6px; } .pagination-lg > li:last-child > span { border-top-right-radius: 6px; border-bottom-right-radius: 6px; } .pagination-sm > li > a { padding: 5px 10px; font-size: 12px; } .pagination-sm > li > span { padding: 5px 10px; font-size: 12px; } .pagination-sm > li:first-child > a { border-top-left-radius: 3px; border-bottom-left-radius: 3px; } .pagination-sm > li:first-child > span { border-top-left-radius: 3px; border-bottom-left-radius: 3px; } .pagination-sm > li:last-child > a { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .pagination-sm > li:last-child > span { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .pager { list-style: none; margin: 20px 0px; text-align: center; padding-left: = 0px; } .pager::before { display: table; content: " "; } .pager::after { display: table; content: " "; } .pager::after { clear: both; } .pager::before { display: table; content: " "; } .pager::after { display: table; content: " "; } .pager::after { clear: both; } .pager li { display: inline; } .pager li > a { padding: 5px 14px; border-radius: 15px; border: 1px solid rgb(221, 221, = 221); display: inline-block; background-color: rgb(255, 255, 255); } .pager li > span { padding: 5px 14px; border-radius: 15px; border: 1px solid rgb(221, 221, = 221); display: inline-block; background-color: rgb(255, 255, 255); } .pager li > a:hover { text-decoration: none; background-color: rgb(238, 238, 238); } .pager li > a:focus { text-decoration: none; background-color: rgb(238, 238, 238); } .pager .next > a { float: right; } .pager .next > span { float: right; } .pager .previous > a { float: left; } .pager .previous > span { float: left; } .pager .disabled > a { color: rgb(153, 153, 153); cursor: not-allowed; background-color: = rgb(255, 255, 255); } .pager .disabled > a:hover { color: rgb(153, 153, 153); cursor: not-allowed; background-color: = rgb(255, 255, 255); } .pager .disabled > a:focus { color: rgb(153, 153, 153); cursor: not-allowed; background-color: = rgb(255, 255, 255); } .pager .disabled > span { color: rgb(153, 153, 153); cursor: not-allowed; background-color: = rgb(255, 255, 255); } .label { padding: 0.2em 0.6em 0.3em; border-radius: 0.25em; text-align: center; = color: rgb(255, 255, 255); line-height: 1; font-size: 75%; font-weight: = bold; vertical-align: baseline; display: inline; white-space: nowrap; } [href].label:hover { color: rgb(255, 255, 255); text-decoration: none; cursor: pointer; } [href].label:focus { color: rgb(255, 255, 255); text-decoration: none; cursor: pointer; } :empty.label { display: none; } .label-default { background-color: rgb(153, 153, 153); } [href].label-default:hover { background-color: rgb(128, 128, 128); } [href].label-default:focus { background-color: rgb(128, 128, 128); } .label-primary { background-color: rgb(66, 139, 202); } [href].label-primary:hover { background-color: rgb(48, 113, 169); } [href].label-primary:focus { background-color: rgb(48, 113, 169); } .label-success { background-color: rgb(92, 184, 92); } [href].label-success:hover { background-color: rgb(68, 157, 68); } [href].label-success:focus { background-color: rgb(68, 157, 68); } .label-info { background-color: rgb(91, 192, 222); } [href].label-info:hover { background-color: rgb(49, 176, 213); } [href].label-info:focus { background-color: rgb(49, 176, 213); } .label-warning { background-color: rgb(240, 173, 78); } [href].label-warning:hover { background-color: rgb(236, 151, 31); } [href].label-warning:focus { background-color: rgb(236, 151, 31); } .label-danger { background-color: rgb(217, 83, 79); } [href].label-danger:hover { background-color: rgb(201, 48, 44); } [href].label-danger:focus { background-color: rgb(201, 48, 44); } .badge { padding: 3px 7px; border-radius: 10px; text-align: center; color: = rgb(255, 255, 255); line-height: 1; font-size: 12px; font-weight: bold; = vertical-align: baseline; display: inline-block; white-space: nowrap; = min-width: 10px; background-color: rgb(153, 153, 153); } :empty.badge { display: none; } a.badge:hover { color: rgb(255, 255, 255); text-decoration: none; cursor: pointer; } a.badge:focus { color: rgb(255, 255, 255); text-decoration: none; cursor: pointer; } .btn .badge { top: -1px; position: relative; } a.active.list-group-item > .badge { color: rgb(66, 139, 202); background-color: rgb(255, 255, 255); } .nav-pills > .active > a > .badge { color: rgb(66, 139, 202); background-color: rgb(255, 255, 255); } .nav-pills > li > a > .badge { margin-left: 3px; } .jumbotron { padding: 30px; color: inherit; line-height: 2.1428; font-size: 21px; = font-weight: 200; margin-bottom: 30px; background-color: rgb(238, 238, = 238); } .jumbotron h1 { color: inherit; line-height: 1; } .jumbotron p { line-height: 1.4; } .container .jumbotron { border-radius: 6px; } @media screen and (min-width:768px) { .jumbotron { padding-top: 48px; padding-bottom: 48px; } .container .jumbotron { padding-right: 60px; padding-left: 60px; } .jumbotron h1 { font-size: 63px; } } .thumbnail { padding: 4px; border-radius: 4px; border: 1px solid rgb(221, 221, 221); = transition:0.2s ease-in-out; height: auto; line-height: 1.4285; = margin-bottom: 20px; display: block; max-width: 100%; background-color: = rgb(255, 255, 255); -webkit-transition: all .2s ease-in-out; } .thumbnail > img { height: auto; margin-right: auto; margin-left: auto; display: block; = max-width: 100%; } a.thumbnail:hover { border-color: rgb(66, 139, 202); } a.thumbnail:focus { border-color: rgb(66, 139, 202); } a.active.thumbnail { border-color: rgb(66, 139, 202); } .thumbnail .caption { padding: 9px; color: rgb(51, 51, 51); } .alert { padding: 15px; border-radius: 4px; border: 1px solid transparent; = margin-bottom: 20px; } .alert h4 { color: inherit; margin-top: 0px; } .alert .alert-link { font-weight: bold; } .alert > p { margin-bottom: 0px; } .alert > ul { margin-bottom: 0px; } .alert > p + p { margin-top: 5px; } .alert-dismissable { padding-right: 35px; } .alert-dismissable .close { top: -2px; right: -21px; color: inherit; position: relative; } .alert-success { border-color: rgb(214, 233, 198); color: rgb(70, 136, 71); = background-color: rgb(223, 240, 216); } .alert-success hr { border-top-color: rgb(201, 226, 179); } .alert-success .alert-link { color: rgb(53, 102, 53); } .alert-info { border-color: rgb(188, 232, 241); color: rgb(58, 135, 173); = background-color: rgb(217, 237, 247); } .alert-info hr { border-top-color: rgb(166, 225, 236); } .alert-info .alert-link { color: rgb(45, 105, 135); } .alert-warning { border-color: rgb(250, 235, 204); color: rgb(192, 152, 83); = background-color: rgb(252, 248, 227); } .alert-warning hr { border-top-color: rgb(247, 225, 181); } .alert-warning .alert-link { color: rgb(164, 126, 60); } .alert-danger { border-color: rgb(235, 204, 209); color: rgb(185, 74, 72); = background-color: rgb(242, 222, 222); } .alert-danger hr { border-top-color: rgb(228, 185, 192); } .alert-danger .alert-link { color: rgb(149, 59, 57); } .progress { border-radius: 4px; height: 20px; overflow: hidden; margin-bottom: = 20px; box-shadow: inset 0px 1px 2px rgba(0,0,0,0.1); background-color: = rgb(245, 245, 245); -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, = 0.1); } .progress-bar { transition:width 0.6s; width: 0px; height: 100%; text-align: center; = color: rgb(255, 255, 255); line-height: 20px; font-size: 12px; float: = left; box-shadow: inset 0px -1px 0px rgba(0,0,0,0.15); background-color: = rgb(66, 139, 202); -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, = 0.15); -webkit-transition: width .6s ease; } .progress-striped .progress-bar { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, = transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, = rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); = background-size: 40px 40px; } .active.progress .progress-bar { animation:progress-bar-stripes 2s linear infinite; -webkit-animation: = progress-bar-stripes 2s linear infinite; } .progress-bar-success { background-color: rgb(92, 184, 92); } .progress-striped .progress-bar-success { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, = transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, = rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-bar-info { background-color: rgb(91, 192, 222); } .progress-striped .progress-bar-info { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, = transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, = rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-bar-warning { background-color: rgb(240, 173, 78); } .progress-striped .progress-bar-warning { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, = transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, = rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-bar-danger { background-color: rgb(217, 83, 79); } .progress-striped .progress-bar-danger { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, = transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, = rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .media { overflow: hidden; -ms-zoom: 1; } .media-body { overflow: hidden; -ms-zoom: 1; } .media { margin-top: 15px; } .media .media { margin-top: 15px; } :first-child.media { margin-top: 0px; } .media-object { display: block; } .media-heading { margin: 0px 0px 5px; } .media > .pull-left { margin-right: 10px; } .media > .pull-right { margin-left: 10px; } .media-list { list-style: none; padding-left: 0px; } .list-group { padding-left: 0px; margin-bottom: 20px; } .list-group-item { padding: 10px 15px; border: 1px solid rgb(221, 221, 221); = margin-bottom: -1px; display: block; position: relative; = background-color: rgb(255, 255, 255); } :first-child.list-group-item { border-top-left-radius: 4px; border-top-right-radius: 4px; } :last-child.list-group-item { margin-bottom: 0px; border-bottom-right-radius: 4px; = border-bottom-left-radius: 4px; } .list-group-item > .badge { float: right; } .list-group-item > .badge + .badge { margin-right: 5px; } a.list-group-item { color: rgb(85, 85, 85); } a.list-group-item .list-group-item-heading { color: rgb(51, 51, 51); } a.list-group-item:hover { text-decoration: none; background-color: rgb(245, 245, 245); } a.list-group-item:focus { text-decoration: none; background-color: rgb(245, 245, 245); } a.active.list-group-item { border-color: rgb(66, 139, 202); color: rgb(255, 255, 255); z-index: 2; = background-color: rgb(66, 139, 202); } a.active.list-group-item:hover { border-color: rgb(66, 139, 202); color: rgb(255, 255, 255); z-index: 2; = background-color: rgb(66, 139, 202); } a.active.list-group-item:focus { border-color: rgb(66, 139, 202); color: rgb(255, 255, 255); z-index: 2; = background-color: rgb(66, 139, 202); } a.active.list-group-item .list-group-item-heading { color: inherit; } a.active.list-group-item:hover .list-group-item-heading { color: inherit; } a.active.list-group-item:focus .list-group-item-heading { color: inherit; } a.active.list-group-item .list-group-item-text { color: rgb(225, 237, 247); } a.active.list-group-item:hover .list-group-item-text { color: rgb(225, 237, 247); } a.active.list-group-item:focus .list-group-item-text { color: rgb(225, 237, 247); } .list-group-item-heading { margin-top: 0px; margin-bottom: 5px; } .list-group-item-text { line-height: 1.3; margin-bottom: 0px; } .panel { border-radius: 4px; border: 1px solid transparent; margin-bottom: 20px; = box-shadow: 0px 1px 1px rgba(0,0,0,0.05); background-color: rgb(255, = 255, 255); -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); } .panel-body { padding: 15px; } .panel-body::before { display: table; content: " "; } .panel-body::after { display: table; content: " "; } .panel-body::after { clear: both; } .panel-body::before { display: table; content: " "; } .panel-body::after { display: table; content: " "; } .panel-body::after { clear: both; } .panel > .list-group { margin-bottom: 0px; } .panel > .list-group .list-group-item { border-width: 1px 0px; } .panel > .list-group :first-child.list-group-item { border-top-left-radius: 0px; border-top-right-radius: 0px; } .panel > .list-group :last-child.list-group-item { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel-heading + .list-group :first-child.list-group-item { border-top-width: 0px; } .panel > .table { margin-bottom: 0px; } .panel > .table-responsive { margin-bottom: 0px; } .panel > .panel-body + .table { border-top-color: rgb(221, 221, 221); border-top-width: 1px; = border-top-style: solid; } .panel > .panel-body + .table-responsive { border-top-color: rgb(221, 221, 221); border-top-width: 1px; = border-top-style: solid; } .panel > .table-bordered { border: 0px currentColor; } .panel > .table-responsive > .table-bordered { border: 0px currentColor; } .panel > .table-bordered > thead > tr > th:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-responsive > .table-bordered > thead > tr > = th:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-bordered > tbody > tr > th:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-responsive > .table-bordered > tbody > tr > = th:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-bordered > tfoot > tr > th:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-responsive > .table-bordered > tfoot > tr > = th:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-bordered > thead > tr > td:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-responsive > .table-bordered > thead > tr > = td:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-bordered > tbody > tr > td:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-responsive > .table-bordered > tbody > tr > = td:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-bordered > tfoot > tr > td:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-responsive > .table-bordered > tfoot > tr > = td:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .panel > .table-bordered > thead > tr > th:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-responsive > .table-bordered > thead > tr > = th:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-bordered > tbody > tr > th:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-responsive > .table-bordered > tbody > tr > = th:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-bordered > tfoot > tr > th:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-responsive > .table-bordered > tfoot > tr > = th:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-bordered > thead > tr > td:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-responsive > .table-bordered > thead > tr > = td:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-bordered > tbody > tr > td:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-responsive > .table-bordered > tbody > tr > = td:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-bordered > tfoot > tr > td:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-responsive > .table-bordered > tfoot > tr > = td:last-child { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .panel > .table-bordered > thead > tr:last-child > th { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel > .table-responsive > .table-bordered > thead > tr:last-child > = th { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel > .table-bordered > tbody > tr:last-child > th { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel > .table-responsive > .table-bordered > tbody > tr:last-child > = th { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel > .table-bordered > tfoot > tr:last-child > th { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > = th { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel > .table-bordered > thead > tr:last-child > td { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel > .table-responsive > .table-bordered > thead > tr:last-child > = td { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel > .table-bordered > tbody > tr:last-child > td { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel > .table-responsive > .table-bordered > tbody > tr:last-child > = td { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel > .table-bordered > tfoot > tr:last-child > td { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > = td { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel-heading { padding: 10px 15px; border-bottom-color: transparent; = border-bottom-width: 1px; border-bottom-style: solid; = border-top-left-radius: 3px; border-top-right-radius: 3px; } .panel-heading > .dropdown .dropdown-toggle { color: inherit; } .panel-title { font-size: 16px; margin-top: 0px; margin-bottom: 0px; } .panel-title > a { color: inherit; } .panel-footer { padding: 10px 15px; border-top-color: rgb(221, 221, 221); = border-top-width: 1px; border-top-style: solid; = border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; = background-color: rgb(245, 245, 245); } .panel-group .panel { border-radius: 4px; overflow: hidden; margin-bottom: 0px; } .panel-group .panel + .panel { margin-top: 5px; } .panel-group .panel-heading { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .panel-group .panel-heading + .panel-collapse .panel-body { border-top-color: rgb(221, 221, 221); border-top-width: 1px; = border-top-style: solid; } .panel-group .panel-footer { border-top-color: currentColor; border-top-width: 0px; = border-top-style: none; } .panel-group .panel-footer + .panel-collapse .panel-body { border-bottom-color: rgb(221, 221, 221); border-bottom-width: 1px; = border-bottom-style: solid; } .panel-default { border-color: rgb(221, 221, 221); } .panel-default > .panel-heading { border-color: rgb(221, 221, 221); color: rgb(51, 51, 51); = background-color: rgb(245, 245, 245); } .panel-default > .panel-heading + .panel-collapse .panel-body { border-top-color: rgb(221, 221, 221); } .panel-default > .panel-heading > .dropdown .caret { border-color: rgb(51, 51, 51) transparent; } .panel-default > .panel-footer + .panel-collapse .panel-body { border-bottom-color: rgb(221, 221, 221); } .panel-primary { border-color: rgb(66, 139, 202); } .panel-primary > .panel-heading { border-color: rgb(66, 139, 202); color: rgb(255, 255, 255); = background-color: rgb(66, 139, 202); } .panel-primary > .panel-heading + .panel-collapse .panel-body { border-top-color: rgb(66, 139, 202); } .panel-primary > .panel-heading > .dropdown .caret { border-color: rgb(255, 255, 255) transparent; } .panel-primary > .panel-footer + .panel-collapse .panel-body { border-bottom-color: rgb(66, 139, 202); } .panel-success { border-color: rgb(214, 233, 198); } .panel-success > .panel-heading { border-color: rgb(214, 233, 198); color: rgb(70, 136, 71); = background-color: rgb(223, 240, 216); } .panel-success > .panel-heading + .panel-collapse .panel-body { border-top-color: rgb(214, 233, 198); } .panel-success > .panel-heading > .dropdown .caret { border-color: rgb(70, 136, 71) transparent; } .panel-success > .panel-footer + .panel-collapse .panel-body { border-bottom-color: rgb(214, 233, 198); } .panel-warning { border-color: rgb(250, 235, 204); } .panel-warning > .panel-heading { border-color: rgb(250, 235, 204); color: rgb(192, 152, 83); = background-color: rgb(252, 248, 227); } .panel-warning > .panel-heading + .panel-collapse .panel-body { border-top-color: rgb(250, 235, 204); } .panel-warning > .panel-heading > .dropdown .caret { border-color: rgb(192, 152, 83) transparent; } .panel-warning > .panel-footer + .panel-collapse .panel-body { border-bottom-color: rgb(250, 235, 204); } .panel-danger { border-color: rgb(235, 204, 209); } .panel-danger > .panel-heading { border-color: rgb(235, 204, 209); color: rgb(185, 74, 72); = background-color: rgb(242, 222, 222); } .panel-danger > .panel-heading + .panel-collapse .panel-body { border-top-color: rgb(235, 204, 209); } .panel-danger > .panel-heading > .dropdown .caret { border-color: rgb(185, 74, 72) transparent; } .panel-danger > .panel-footer + .panel-collapse .panel-body { border-bottom-color: rgb(235, 204, 209); } .panel-info { border-color: rgb(188, 232, 241); } .panel-info > .panel-heading { border-color: rgb(188, 232, 241); color: rgb(58, 135, 173); = background-color: rgb(217, 237, 247); } .panel-info > .panel-heading + .panel-collapse .panel-body { border-top-color: rgb(188, 232, 241); } .panel-info > .panel-heading > .dropdown .caret { border-color: rgb(58, 135, 173) transparent; } .panel-info > .panel-footer + .panel-collapse .panel-body { border-bottom-color: rgb(188, 232, 241); } .well { padding: 19px; border-radius: 4px; border: 1px solid rgb(227, 227, = 227); margin-bottom: 20px; min-height: 20px; box-shadow: inset 0px 1px = 1px rgba(0,0,0,0.05); background-color: rgb(245, 245, 245); = -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); } .well blockquote { border-color: rgba(0, 0, 0, 0.15); } .well-lg { padding: 24px; border-radius: 6px; } .well-sm { padding: 9px; border-radius: 3px; } .close { color: rgb(0, 0, 0); line-height: 1; font-size: 21px; font-weight: = bold; float: right; opacity: 0.2; text-shadow: 0px 1px 0px #fff; } .close:hover { color: rgb(0, 0, 0); text-decoration: none; cursor: pointer; opacity: = 0.5; } .close:focus { color: rgb(0, 0, 0); text-decoration: none; cursor: pointer; opacity: = 0.5; } button.close { background: none; padding: 0px; border: 0px currentColor; cursor: = pointer; -webkit-appearance: none; } .modal-open { overflow: hidden; } .modal { left: 0px; top: 0px; right: 0px; bottom: 0px; overflow: auto; display: = none; position: fixed; z-index: 1040; -ms-overflow-y: scroll; } .fade.modal .modal-dialog { transition:transform 0.3s ease-out; transform: translate(0, -25%); = -webkit-transition: -webkit-transform .3s ease-out; -webkit-transform: = translate(0, -25%); -moz-transition: -moz-transform .3s ease-out; = -o-transition: -o-transform .3s ease-out; } .in.modal .modal-dialog { transform: translate(0, 0); -webkit-transform: translate(0, 0); } .modal-dialog { padding: 10px; width: auto; margin-right: auto; margin-left: auto; = position: relative; z-index: 1050; } .modal-content { outline: 0px; border-radius: 6px; border: 1px solid rgba(0, 0, 0, 0.2); = position: relative; box-shadow: 0px 3px 9px rgba(0,0,0,0.5); = background-clip: padding-box; background-color: rgb(255, 255, 255); = -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); } .modal-backdrop { left: 0px; top: 0px; right: 0px; bottom: 0px; position: fixed; z-index: = 1030; background-color: rgb(0, 0, 0); } .fade.modal-backdrop { opacity: 0; } .in.modal-backdrop { opacity: 0.5; } .modal-header { padding: 15px; border-bottom-color: rgb(229, 229, 229); = border-bottom-width: 1px; border-bottom-style: solid; min-height: = 16.42px; } .modal-header .close { margin-top: -2px; } .modal-title { margin: 0px; line-height: 1.4285; } .modal-body { padding: 20px; position: relative; } .modal-footer { padding: 19px 20px 20px; text-align: right; margin-top: 15px; = border-top-color: rgb(229, 229, 229); border-top-width: 1px; = border-top-style: solid; } .modal-footer::before { display: table; content: " "; } .modal-footer::after { display: table; content: " "; } .modal-footer::after { clear: both; } .modal-footer::before { display: table; content: " "; } .modal-footer::after { display: table; content: " "; } .modal-footer::after { clear: both; } .modal-footer .btn + .btn { margin-bottom: 0px; margin-left: 5px; } .modal-footer .btn-group .btn + .btn { margin-left: -1px; } .modal-footer .btn-block + .btn-block { margin-left: 0px; } @media screen and (min-width:768px) { .modal-dialog { width: 600px; padding-top: 30px; padding-bottom: 30px; } .modal-content { box-shadow: 0px 5px 15px rgba(0,0,0,0.5); -webkit-box-shadow: 0 5px = 15px rgba(0, 0, 0, 0.5); } } .tooltip { line-height: 1.4; font-size: 12px; display: block; visibility: visible; = position: absolute; z-index: 1030; opacity: 0; } .in.tooltip { opacity: 0.9; } .top.tooltip { padding: 5px 0px; margin-top: -3px; } .right.tooltip { padding: 0px 5px; margin-left: 3px; } .bottom.tooltip { padding: 5px 0px; margin-top: 3px; } .left.tooltip { padding: 0px 5px; margin-left: -3px; } .tooltip-inner { padding: 3px 8px; border-radius: 4px; text-align: center; color: = rgb(255, 255, 255); text-decoration: none; max-width: 200px; = background-color: rgb(0, 0, 0); } .tooltip-arrow { border-style: solid; border-color: transparent; width: 0px; height: = 0px; position: absolute; } .top.tooltip .tooltip-arrow { border-width: 5px 5px 0px; left: 50%; bottom: 0px; margin-left: -5px; = border-top-color: rgb(0, 0, 0); } .top-left.tooltip .tooltip-arrow { border-width: 5px 5px 0px; left: 5px; bottom: 0px; border-top-color: = rgb(0, 0, 0); } .top-right.tooltip .tooltip-arrow { border-width: 5px 5px 0px; right: 5px; bottom: 0px; border-top-color: = rgb(0, 0, 0); } .right.tooltip .tooltip-arrow { border-width: 5px 5px 5px 0px; left: 0px; top: 50%; margin-top: -5px; = border-right-color: rgb(0, 0, 0); } .left.tooltip .tooltip-arrow { border-width: 5px 0px 5px 5px; top: 50%; right: 0px; margin-top: -5px; = border-left-color: rgb(0, 0, 0); } .bottom.tooltip .tooltip-arrow { border-width: 0px 5px 5px; left: 50%; top: 0px; margin-left: -5px; = border-bottom-color: rgb(0, 0, 0); } .bottom-left.tooltip .tooltip-arrow { border-width: 0px 5px 5px; left: 5px; top: 0px; border-bottom-color: = rgb(0, 0, 0); } .bottom-right.tooltip .tooltip-arrow { border-width: 0px 5px 5px; top: 0px; right: 5px; border-bottom-color: = rgb(0, 0, 0); } .popover { padding: 1px; border-radius: 6px; border: 1px solid rgba(0, 0, 0, 0.2); = left: 0px; top: 0px; text-align: left; display: none; white-space: = normal; position: absolute; z-index: 1010; max-width: 276px; box-shadow: = 0px 5px 10px rgba(0,0,0,0.2); background-clip: padding-box; = background-color: rgb(255, 255, 255); -webkit-box-shadow: 0 5px 10px = rgba(0, 0, 0, 0.2); } .top.popover { margin-top: -10px; } .right.popover { margin-left: 10px; } .bottom.popover { margin-top: 10px; } .left.popover { margin-left: -10px; } .popover-title { margin: 0px; padding: 8px 14px; border-radius: 5px 5px 0px 0px; = line-height: 18px; font-size: 14px; font-weight: normal; = border-bottom-color: rgb(235, 235, 235); border-bottom-width: 1px; = border-bottom-style: solid; background-color: rgb(247, 247, 247); } .popover-content { padding: 9px 14px; } .popover .arrow { border-style: solid; border-color: transparent; width: 0px; height: = 0px; display: block; position: absolute; } .popover .arrow::after { border-style: solid; border-color: transparent; width: 0px; height: = 0px; display: block; position: absolute; } .popover .arrow { border-width: 11px; } .popover .arrow::after { border-width: 10px; content: ""; } .top.popover .arrow { left: 50%; bottom: -11px; margin-left: -11px; border-top-color: rgba(0, = 0, 0, 0.25); border-bottom-width: 0px; } .top.popover .arrow::after { bottom: 1px; margin-left: -10px; border-top-color: rgb(255, 255, 255); = border-bottom-width: 0px; content: " "; } .right.popover .arrow { left: -11px; top: 50%; margin-top: -11px; border-right-color: rgba(0, = 0, 0, 0.25); border-left-width: 0px; } .right.popover .arrow::after { left: 1px; bottom: -10px; border-right-color: rgb(255, 255, 255); = border-left-width: 0px; content: " "; } .bottom.popover .arrow { left: 50%; top: -11px; margin-left: -11px; border-bottom-color: rgba(0, = 0, 0, 0.25); border-top-width: 0px; } .bottom.popover .arrow::after { top: 1px; margin-left: -10px; border-bottom-color: rgb(255, 255, 255); = border-top-width: 0px; content: " "; } .left.popover .arrow { top: 50%; right: -11px; margin-top: -11px; border-left-color: rgba(0, = 0, 0, 0.25); border-right-width: 0px; } .left.popover .arrow::after { right: 1px; bottom: -10px; border-left-color: rgb(255, 255, 255); = border-right-width: 0px; content: " "; } .carousel { position: relative; } .carousel-inner { width: 100%; overflow: hidden; position: relative; } .carousel-inner > .item { transition:left 0.6s ease-in-out; display: none; position: relative; = -webkit-transition: .6s ease-in-out left; } .carousel-inner > .item > img { height: auto; line-height: 1; display: block; max-width: 100%; } .carousel-inner > .item > a > img { height: auto; line-height: 1; display: block; max-width: 100%; } .carousel-inner > .active { display: block; } .carousel-inner > .next { display: block; } .carousel-inner > .prev { display: block; } .carousel-inner > .active { left: 0px; } .carousel-inner > .next { top: 0px; width: 100%; position: absolute; } .carousel-inner > .prev { top: 0px; width: 100%; position: absolute; } .carousel-inner > .next { left: 100%; } .carousel-inner > .prev { left: -100%; } .carousel-inner > .left.next { left: 0px; } .carousel-inner > .right.prev { left: 0px; } .carousel-inner > .left.active { left: -100%; } .carousel-inner > .right.active { left: 100%; } .carousel-control { left: 0px; top: 0px; width: 15%; text-align: center; bottom: 0px; = color: rgb(255, 255, 255); font-size: 20px; position: absolute; opacity: = 0.5; text-shadow: 0px 1px 2px rgba(0,0,0,0.6); } .left.carousel-control { background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0px, = rgba(0, 0, 0, 0.0001) 100%); background-repeat: repeat-x; } .right.carousel-control { left: auto; right: 0px; background-image: linear-gradient(to right, = rgba(0, 0, 0, 0.0001) 0px, rgba(0, 0, 0, 0.5) 100%); background-repeat: = repeat-x; } .carousel-control:hover { color: rgb(255, 255, 255); text-decoration: none; opacity: 0.9; } .carousel-control:focus { color: rgb(255, 255, 255); text-decoration: none; opacity: 0.9; } .carousel-control .icon-prev { top: 50%; display: inline-block; position: absolute; z-index: 5; } .carousel-control .icon-next { top: 50%; display: inline-block; position: absolute; z-index: 5; } .carousel-control .glyphicon-chevron-left { top: 50%; display: inline-block; position: absolute; z-index: 5; } .carousel-control .glyphicon-chevron-right { top: 50%; display: inline-block; position: absolute; z-index: 5; } .carousel-control .icon-prev { left: 50%; } .carousel-control .glyphicon-chevron-left { left: 50%; } .carousel-control .icon-next { right: 50%; } .carousel-control .glyphicon-chevron-right { right: 50%; } .carousel-control .icon-prev { width: 20px; height: 20px; font-family: serif; margin-top: -10px; = margin-left: -10px; } .carousel-control .icon-next { width: 20px; height: 20px; font-family: serif; margin-top: -10px; = margin-left: -10px; } .carousel-control .icon-prev::before { content: "\2039"; } .carousel-control .icon-next::before { content: "\203a"; } .carousel-indicators { list-style: none; left: 50%; width: 60%; text-align: center; bottom: = 10px; padding-left: 0px; margin-left: -30%; position: absolute; z-index: = 15; } .carousel-indicators li { margin: 1px; border-radius: 10px; border: 1px solid rgb(255, 255, 255); = width: 10px; height: 10px; text-indent: -999px; display: inline-block; = cursor: pointer; background-color: rgba(0, 0, 0, 0); } .carousel-indicators .active { margin: 0px; width: 12px; height: 12px; background-color: rgb(255, 255, = 255); } .carousel-caption { left: 15%; text-align: center; right: 15%; bottom: 20px; color: = rgb(255, 255, 255); padding-top: 20px; padding-bottom: 20px; position: = absolute; z-index: 10; text-shadow: 0px 1px 2px rgba(0,0,0,0.6); } .carousel-caption .btn { text-shadow: none; } @media screen and (min-width:768px) { .carousel-control .glyphicons-chevron-left { width: 30px; height: 30px; font-size: 30px; margin-top: -15px; = margin-left: -15px; } .carousel-control .glyphicons-chevron-right { width: 30px; height: 30px; font-size: 30px; margin-top: -15px; = margin-left: -15px; } .carousel-control .icon-prev { width: 30px; height: 30px; font-size: 30px; margin-top: -15px; = margin-left: -15px; } .carousel-control .icon-next { width: 30px; height: 30px; font-size: 30px; margin-top: -15px; = margin-left: -15px; } .carousel-caption { left: 20%; right: 20%; padding-bottom: 30px; } .carousel-indicators { bottom: 20px; } } .clearfix::before { display: table; content: " "; } .clearfix::after { display: table; content: " "; } .clearfix::after { clear: both; } .center-block { margin-right: auto; margin-left: auto; display: block; } .pull-right { float: right !important; } .pull-left { float: left !important; } .hide { display: none !important; } .show { display: block !important; } .invisible { visibility: hidden; } .text-hide { font: 0px/0 a; border: 0px currentColor; color: transparent; = font-size-adjust: none; font-stretch: normal; text-shadow: none; = background-color: transparent; } .hidden { display: none !important; visibility: hidden !important; } .affix { position: fixed; } .visible-xs { display: none !important; } tr.visible-xs { display: none !important; } th.visible-xs { display: none !important; } td.visible-xs { display: none !important; } @media all and (max-width:767px) { .visible-xs { display: block !important; } tr.visible-xs { display: table-row !important; } th.visible-xs { display: table-cell !important; } td.visible-xs { display: table-cell !important; } } @media all and (max-width:991px) and (min-width:768px) { .visible-sm.visible-xs { display: block !important; } tr.visible-sm.visible-xs { display: table-row !important; } th.visible-sm.visible-xs { display: table-cell !important; } td.visible-sm.visible-xs { display: table-cell !important; } } @media all and (max-width:1199px) and (min-width:992px) { .visible-md.visible-xs { display: block !important; } tr.visible-md.visible-xs { display: table-row !important; } th.visible-md.visible-xs { display: table-cell !important; } td.visible-md.visible-xs { display: table-cell !important; } } @media all and (min-width:1200px) { .visible-lg.visible-xs { display: block !important; } tr.visible-lg.visible-xs { display: table-row !important; } th.visible-lg.visible-xs { display: table-cell !important; } td.visible-lg.visible-xs { display: table-cell !important; } } .visible-sm { display: none !important; } tr.visible-sm { display: none !important; } th.visible-sm { display: none !important; } td.visible-sm { display: none !important; } @media all and (max-width:767px) { .visible-xs.visible-sm { display: block !important; } tr.visible-xs.visible-sm { display: table-row !important; } th.visible-xs.visible-sm { display: table-cell !important; } td.visible-xs.visible-sm { display: table-cell !important; } } @media all and (max-width:991px) and (min-width:768px) { .visible-sm { display: block !important; } tr.visible-sm { display: table-row !important; } th.visible-sm { display: table-cell !important; } td.visible-sm { display: table-cell !important; } } @media all and (max-width:1199px) and (min-width:992px) { .visible-md.visible-sm { display: block !important; } tr.visible-md.visible-sm { display: table-row !important; } th.visible-md.visible-sm { display: table-cell !important; } td.visible-md.visible-sm { display: table-cell !important; } } @media all and (min-width:1200px) { .visible-lg.visible-sm { display: block !important; } tr.visible-lg.visible-sm { display: table-row !important; } th.visible-lg.visible-sm { display: table-cell !important; } td.visible-lg.visible-sm { display: table-cell !important; } } .visible-md { display: none !important; } tr.visible-md { display: none !important; } th.visible-md { display: none !important; } td.visible-md { display: none !important; } @media all and (max-width:767px) { .visible-xs.visible-md { display: block !important; } tr.visible-xs.visible-md { display: table-row !important; } th.visible-xs.visible-md { display: table-cell !important; } td.visible-xs.visible-md { display: table-cell !important; } } @media all and (max-width:991px) and (min-width:768px) { .visible-sm.visible-md { display: block !important; } tr.visible-sm.visible-md { display: table-row !important; } th.visible-sm.visible-md { display: table-cell !important; } td.visible-sm.visible-md { display: table-cell !important; } } @media all and (max-width:1199px) and (min-width:992px) { .visible-md { display: block !important; } tr.visible-md { display: table-row !important; } th.visible-md { display: table-cell !important; } td.visible-md { display: table-cell !important; } } @media all and (min-width:1200px) { .visible-lg.visible-md { display: block !important; } tr.visible-lg.visible-md { display: table-row !important; } th.visible-lg.visible-md { display: table-cell !important; } td.visible-lg.visible-md { display: table-cell !important; } } .visible-lg { display: none !important; } tr.visible-lg { display: none !important; } th.visible-lg { display: none !important; } td.visible-lg { display: none !important; } @media all and (max-width:767px) { .visible-xs.visible-lg { display: block !important; } tr.visible-xs.visible-lg { display: table-row !important; } th.visible-xs.visible-lg { display: table-cell !important; } td.visible-xs.visible-lg { display: table-cell !important; } } @media all and (max-width:991px) and (min-width:768px) { .visible-sm.visible-lg { display: block !important; } tr.visible-sm.visible-lg { display: table-row !important; } th.visible-sm.visible-lg { display: table-cell !important; } td.visible-sm.visible-lg { display: table-cell !important; } } @media all and (max-width:1199px) and (min-width:992px) { .visible-md.visible-lg { display: block !important; } tr.visible-md.visible-lg { display: table-row !important; } th.visible-md.visible-lg { display: table-cell !important; } td.visible-md.visible-lg { display: table-cell !important; } } @media all and (min-width:1200px) { .visible-lg { display: block !important; } tr.visible-lg { display: table-row !important; } th.visible-lg { display: table-cell !important; } td.visible-lg { display: table-cell !important; } } .hidden-xs { display: block !important; } tr.hidden-xs { display: table-row !important; } th.hidden-xs { display: table-cell !important; } td.hidden-xs { display: table-cell !important; } @media all and (max-width:767px) { .hidden-xs { display: none !important; } tr.hidden-xs { display: none !important; } th.hidden-xs { display: none !important; } td.hidden-xs { display: none !important; } } @media all and (max-width:991px) and (min-width:768px) { .hidden-sm.hidden-xs { display: none !important; } tr.hidden-sm.hidden-xs { display: none !important; } th.hidden-sm.hidden-xs { display: none !important; } td.hidden-sm.hidden-xs { display: none !important; } } @media all and (max-width:1199px) and (min-width:992px) { .hidden-md.hidden-xs { display: none !important; } tr.hidden-md.hidden-xs { display: none !important; } th.hidden-md.hidden-xs { display: none !important; } td.hidden-md.hidden-xs { display: none !important; } } @media all and (min-width:1200px) { .hidden-lg.hidden-xs { display: none !important; } tr.hidden-lg.hidden-xs { display: none !important; } th.hidden-lg.hidden-xs { display: none !important; } td.hidden-lg.hidden-xs { display: none !important; } } .hidden-sm { display: block !important; } tr.hidden-sm { display: table-row !important; } th.hidden-sm { display: table-cell !important; } td.hidden-sm { display: table-cell !important; } @media all and (max-width:767px) { .hidden-xs.hidden-sm { display: none !important; } tr.hidden-xs.hidden-sm { display: none !important; } th.hidden-xs.hidden-sm { display: none !important; } td.hidden-xs.hidden-sm { display: none !important; } } @media all and (max-width:991px) and (min-width:768px) { .hidden-sm { display: none !important; } tr.hidden-sm { display: none !important; } th.hidden-sm { display: none !important; } td.hidden-sm { display: none !important; } } @media all and (max-width:1199px) and (min-width:992px) { .hidden-md.hidden-sm { display: none !important; } tr.hidden-md.hidden-sm { display: none !important; } th.hidden-md.hidden-sm { display: none !important; } td.hidden-md.hidden-sm { display: none !important; } } @media all and (min-width:1200px) { .hidden-lg.hidden-sm { display: none !important; } tr.hidden-lg.hidden-sm { display: none !important; } th.hidden-lg.hidden-sm { display: none !important; } td.hidden-lg.hidden-sm { display: none !important; } } .hidden-md { display: block !important; } tr.hidden-md { display: table-row !important; } th.hidden-md { display: table-cell !important; } td.hidden-md { display: table-cell !important; } @media all and (max-width:767px) { .hidden-xs.hidden-md { display: none !important; } tr.hidden-xs.hidden-md { display: none !important; } th.hidden-xs.hidden-md { display: none !important; } td.hidden-xs.hidden-md { display: none !important; } } @media all and (max-width:991px) and (min-width:768px) { .hidden-sm.hidden-md { display: none !important; } tr.hidden-sm.hidden-md { display: none !important; } th.hidden-sm.hidden-md { display: none !important; } td.hidden-sm.hidden-md { display: none !important; } } @media all and (max-width:1199px) and (min-width:992px) { .hidden-md { display: none !important; } tr.hidden-md { display: none !important; } th.hidden-md { display: none !important; } td.hidden-md { display: none !important; } } @media all and (min-width:1200px) { .hidden-lg.hidden-md { display: none !important; } tr.hidden-lg.hidden-md { display: none !important; } th.hidden-lg.hidden-md { display: none !important; } td.hidden-lg.hidden-md { display: none !important; } } .hidden-lg { display: block !important; } tr.hidden-lg { display: table-row !important; } th.hidden-lg { display: table-cell !important; } td.hidden-lg { display: table-cell !important; } @media all and (max-width:767px) { .hidden-xs.hidden-lg { display: none !important; } tr.hidden-xs.hidden-lg { display: none !important; } th.hidden-xs.hidden-lg { display: none !important; } td.hidden-xs.hidden-lg { display: none !important; } } @media all and (max-width:991px) and (min-width:768px) { .hidden-sm.hidden-lg { display: none !important; } tr.hidden-sm.hidden-lg { display: none !important; } th.hidden-sm.hidden-lg { display: none !important; } td.hidden-sm.hidden-lg { display: none !important; } } @media all and (max-width:1199px) and (min-width:992px) { .hidden-md.hidden-lg { display: none !important; } tr.hidden-md.hidden-lg { display: none !important; } th.hidden-md.hidden-lg { display: none !important; } td.hidden-md.hidden-lg { display: none !important; } } @media all and (min-width:1200px) { .hidden-lg { display: none !important; } tr.hidden-lg { display: none !important; } th.hidden-lg { display: none !important; } td.hidden-lg { display: none !important; } } .visible-print { display: none !important; } tr.visible-print { display: none !important; } th.visible-print { display: none !important; } td.visible-print { display: none !important; } @media print { .visible-print { display: block !important; } tr.visible-print { display: table-row !important; } th.visible-print { display: table-cell !important; } td.visible-print { display: table-cell !important; } .hidden-print { display: none !important; } tr.hidden-print { display: none !important; } th.hidden-print { display: none !important; } td.hidden-print { display: none !important; } } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/consumer/themes/bootstrap/js/slick/slick.css?nv614b .slick-slider { display: block; position: relative; box-sizing: border-box; = -ms-user-select: none; -ms-touch-action: pan-y; -moz-box-sizing: = border-box; -webkit-tap-highlight-color: transparent; = -webkit-user-select: none; -moz-user-select: none; user-select: none; = -webkit-touch-callout: none; -khtml-user-select: none; touch-action: = pan-y; } .slick-list { margin: 0px; padding: 0px; overflow: hidden; display: block; position: = relative; } .slick-list:focus { =09 } .dragging.slick-list { cursor: hand; } .slick-slider .slick-track { transform: translate3d(0, 0, 0); -webkit-transform: translate3d(0, 0, = 0); -moz-transform: translate3d(0, 0, 0); -o-transform: translate3d(0, = 0, 0); } .slick-slider .slick-list { transform: translate3d(0, 0, 0); -webkit-transform: translate3d(0, 0, = 0); -moz-transform: translate3d(0, 0, 0); -o-transform: translate3d(0, = 0, 0); } .slick-track { left: 0px; top: 0px; display: block; position: relative; } .slick-track::before { display: table; content: ""; } .slick-track::after { display: table; content: ""; } .slick-track::after { clear: both; } .slick-loading .slick-track { visibility: hidden; } .slick-slide { height: 100%; float: left; display: none; min-height: 1px; } [dir=3D'rtl'] .slick-slide { float: right; } .slick-slide img { display: block; } .slick-loading.slick-slide img { display: none; } .dragging.slick-slide img { pointer-events: none; } .slick-initialized .slick-slide { display: block; } .slick-loading .slick-slide { visibility: hidden; } .slick-vertical .slick-slide { border: 1px solid transparent; height: auto; display: block; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/consumer/themes/bootstrap/css/font.css?nv614b html:lang(en) body { font-family: Arial, sans-serif; } html:lang(en) .in_page_content { font-family: Arial, sans-serif; } html:lang(en) .date { font-family: Arial, sans-serif; } html:lang(en) .region-footer { font-family: Arial, sans-serif; } html:lang(en) .footer { font-family: Arial, sans-serif; } html:lang(en) h2 { font-family: Arial, sans-serif; } html:lang(en) h3 { font-family: Arial, sans-serif; } html:lang(en) h4 { font-family: Arial, sans-serif; } html:lang(en) h5 { font-family: Arial, sans-serif; } html:lang(en) h6 { font-family: Arial, sans-serif; } html:lang(en) .h2 { font-family: Arial, sans-serif; } html:lang(en) .h3 { font-family: Arial, sans-serif; } html:lang(en) .h4 { font-family: Arial, sans-serif; } html:lang(en) .h5 { font-family: Arial, sans-serif; } html:lang(en) .h6 { font-family: Arial, sans-serif; } html:lang(en) .region-navigation { font-family: "Century Gothic", CenturyGothic, AppleGothic, sans-serif; } html:lang(en) .in_page_content h1 { font-family: "Century Gothic", CenturyGothic, AppleGothic, sans-serif; } html:lang(zh-hant) body { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) .in_page_content { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) .date { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) .region-footer { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) .footer { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) h2 { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) h3 { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) h4 { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) h5 { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) h6 { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) .h2 { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) .h3 { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) .h4 { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) .h5 { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hant) .h6 { font-family: Arial,"Microsoft JhengHei","STHeiti","SimHei",sans-serif; } html:lang(zh-hans) body { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) .in_page_content { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) .date { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) .region-footer { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) .footer { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) h2 { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) h3 { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) h4 { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) h5 { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) h6 { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) .h2 { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) .h3 { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) .h4 { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) .h5 { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html:lang(zh-hans) .h6 { font-family: Arial,"Microsoft = YaHei",?=A4=E5=B6=C2=CA^,"SimHei",sans-serif; } html { font-size: 13px; } body { font-size: 13px; } h1 { color: rgb(102, 145, 47); font-size: 2.15em; font-weight: bold; } h2 { color: rgb(51, 51, 51); font-size: 1.38em; font-weight: bold; } .block-title { color: rgb(51, 51, 51); font-size: 1.38em; font-weight: bold; } .title { color: rgb(51, 51, 51); font-size: 1.38em; font-weight: bold; } h3 { font-size: 1.38em; font-weight: bold; } h4 { font-size: 1em; font-weight: bold; } h5 { font-size: 1em; font-weight: bold; } h6 { font-size: 1em; font-weight: bold; } .in_page_content h2 { color: rgb(51, 51, 51); line-height: 2em; } .in_page_content h3 { color: rgb(51, 51, 51); line-height: 2em; } .in_page_content h4 { color: rgb(51, 51, 51); line-height: 2em; } .in_page_content h5 { color: rgb(51, 51, 51); line-height: 2em; } .in_page_content h6 { color: rgb(51, 51, 51); line-height: 2em; } .front .subtitle { font-weight: bold; } .upper_title { font-size: 28px; font-weight: bold; } .upper_summary { text-align: justify; color: rgb(85, 85, 85); font-size: 13px; = -ms-text-justify: inter-ideograph; } .view-content .abstract { color: rgb(85, 85, 85); line-height: 180%; font-size: 1em; } .view-content .summary { color: rgb(85, 85, 85); line-height: 180%; font-size: 1em; } .region-sidebar-third .block-title { font-size: 1.38em; } .region-sidebar-third .block { font-size: 1em; } .region-navigation .menu { color: rgb(85, 85, 85); } .region-navigation .menu a { color: rgb(85, 85, 85); } .in_page_content .content .field { color: rgb(85, 85, 85); font-size: 1em; } .in_page_content .content .field-name-body { color: rgb(85, 85, 85); font-size: 1em; } .in_page_content .field-name-field-publish-date { color: rgb(85, 85, 85); font-size: 1em; } .in_page_content .content .field-name-body h2 { font-size: 1.38em; } .in_page_content .content .field-name-body h3 { font-size: 1.15em; } .in_page_content .content .source { color: rgb(85, 85, 85); } .front .subtitle { font-size: 1em; } .front .summary { font-size: 1em; } .cat-title { font-size: 1em; } .region-header-two { font-size: 1em; } .page_menu { font-size: 1em; } .breadcrumb { font-size: 1em; } .front .region-index-complaints-two-en .block .title { font-size: 1.5em; } .front .region-index-complaints-two .block .title { font-size: 1.5em; } .front .region-index-complaints-two-en .block .phone { font-size: 1.38em; font-weight: bold; display: block; } .front .region-index-complaints-two .block .phone { font-size: 1.38em; font-weight: bold; display: block; } .front .region-index-complaints-two-en .block .phone-number { color: rgb(99, 144, 43); font-size: 1.11em; } .front .region-index-complaints-two .block .phone-number { color: rgb(99, 144, 43); font-size: 1.11em; } .front .region-index-complaints-two-en .block .phone_content { color: rgb(104, 104, 104); font-size: 1em; } .front .region-index-complaints-two .block .phone_content { color: rgb(104, 104, 104); font-size: 1em; } #block-views-focus-search-views-block .block-title { font-size: 1em; } .view-focus-search-views li a { color: rgb(51, 51, 51); font-size: 1em; } .mobile-menu .view-focus-search-views li a { color: rgb(101, 142, 48); } .history .timeline p { font-weight: bold; } .history .timeline li { font-weight: bold; } .history .timeline .year { text-align: center; color: rgb(85, 85, 85); } .history .timeList li a { font-size: 1.38em; font-weight: bold; } .region-sidebar-third .block a { color: rgb(0, 0, 0); font-size: 1em; } .date { color: rgb(85, 85, 85); font-size: 1em; } .region-footer { color: rgb(85, 85, 85); font-size: 0.85em; } .region-footer a { color: rgb(85, 85, 85); } .footer { color: rgb(85, 85, 85); font-size: 0.76em; } .footer a { color: rgb(85, 85, 85); } .page-user .in_page_content { font-size: 0.92em; } .page-user .in_page_content h3 { font-size: 1.38em; } .webform-client-form-11119 { font-size: 0.92em; } .gs_popover .index-sg-menu-title { color: rgb(0, 0, 0); font-size: 1.38em; font-weight: bold; } .navbar-default .nav > li > a { font-size: 1em; } .navbar-default .nav > li > span { font-size: 1em; } .mobile-menu .block-title { font-size: 1em; } .mobile-menu .view-shopping-guide-views .view-content a { font-size: 15px; } .view-display-id-index_whats_new_header_block_en .views-field-title a { color: rgb(51, 51, 51); font-size: 1.38em; font-weight: bold; } .view-display-id-index_whats_new_header_block_gb .views-field-title a { color: rgb(51, 51, 51); font-size: 1.38em; font-weight: bold; } .view-display-id-index_whats_new_header_block_chi .views-field-title a { color: rgb(51, 51, 51); font-size: 1.38em; font-weight: bold; } .view-display-id-index_whats_new_header_block_en = .views-field-field-publish-date { color: rgb(85, 85, 85); line-height: 180%; font-size: 13px; } .view-display-id-index_whats_new_header_block_gb = .views-field-field-publish-date { color: rgb(85, 85, 85); line-height: 180%; font-size: 13px; } .view-display-id-index_whats_new_header_block_chi = .views-field-field-publish-date { color: rgb(85, 85, 85); line-height: 180%; font-size: 13px; } .view-display-id-index_whats_new_summary_block_chi .views-field-body { color: rgb(85, 85, 85); line-height: 180%; font-size: 13px; } .front .region-index-complaints-two-en .block a { color: rgb(101, 142, 48); font-size: 18px; font-weight: bold; } .front .region-index-complaints-two .block a { color: rgb(101, 142, 48); font-size: 18px; font-weight: bold; } .pagination > li > a { color: rgb(0, 0, 0); font-size: 1.2em; } .pagination > li > span { color: rgb(0, 0, 0); font-size: 1.2em; } .views-summary a { color: rgb(112, 112, 112); font-size: 13px; white-space: nowrap; } .form-type-bef-link a { color: rgb(112, 112, 112); font-size: 13px; white-space: nowrap; } .in_page_content .tabList { font-size: 13px; } .in_page_content .content .field-name-body .timeline .year h2 { font-size: 13px; } .view-display-id-block_1.view-press-releases-view .views-summary = a.selected { color: rgb(84, 117, 40); font-size: 1.38em; font-weight: bold; } .view-display-id-block_1.view-press-releases-view .views-summary a { line-height: 20px; } .view-shopping-guide-views h1 { color: rgb(84, 117, 40); } #imageData #caption { font-size: 1.38em; } a.phone_num { color: rgb(0, 0, 0); text-decoration: none; } #resize-buttons li a { padding-top: 18px; } @media all and (min-width:991px) { body.mobile { font-size: 18px; } .mobile .upper_summary { font-size: 1em; } .mobile .upper_title { font-size: 2em; } .mobile .view-display-id-index_whats_new_header_block_en = .views-field-field-publish-date { font-size: 1em; } .mobile .view-display-id-index_whats_new_header_block_gb = .views-field-field-publish-date { font-size: 1em; } .mobile .view-display-id-index_whats_new_header_block_chi = .views-field-field-publish-date { font-size: 1em; } .mobile .view-display-id-index_whats_new_summary_block_chi = .views-field-body { font-size: 1em; } .mobile .in_page_content .content .field-name-body { color: rgb(51, 51, 51); } .mobile .in_page_content .field-name-field-publish-date { color: rgb(51, 51, 51); } .mobile .form-type-bef-link a { font-size: 1.38em; } .mobile .in_page_content .tabList li { font-size: 1.38em; } .mobile #block-block-53 > .menu .menu > li a.active { font-size: 1.38em; } #block-block-53 > .menu .menu > li a { font-size: 1.38em; } .mobile.front .region-index-complaints-two-en .block .phone-number { white-space: nowrap; } .front .region-index-complaints-two .block .phone-number { white-space: nowrap; } .mobile.front .region-index-complaints-two-en .block a { font-size: 1.38em; } .mobile.front .region-index-complaints-two .block a { font-size: 1.38em; } } @media all and (max-width:991px) and (min-width:480px) { body { font-size: 18px; } .upper_summary { font-size: 1em; } .upper_title { font-size: 2em; } .view-display-id-index_whats_new_header_block_en = .views-field-field-publish-date { font-size: 1em; } .view-display-id-index_whats_new_header_block_gb = .views-field-field-publish-date { font-size: 1em; } .view-display-id-index_whats_new_header_block_chi = .views-field-field-publish-date { font-size: 1em; } .view-display-id-index_whats_new_summary_block_chi .views-field-body { font-size: 1em; } .in_page_content .content .field-name-body { color: rgb(51, 51, 51); } .in_page_content .field-name-field-publish-date { color: rgb(51, 51, 51); } .form-type-bef-link a { font-size: 1.38em; } .in_page_content .tabList li { font-size: 1.38em; } #block-block-53 > .menu .menu > li a.active { font-size: 1.38em; } #block-block-53 > .menu .menu > li a { font-size: 1.38em; } .front .region-index-complaints-two-en .block .phone-number { white-space: nowrap; } .front .region-index-complaints-two .block .phone-number { white-space: nowrap; } .front .region-index-complaints-two-en .block a { font-size: 1.38em; } .front .region-index-complaints-two .block a { font-size: 1.38em; } .view-archive-views .views-exposed-widgets = .views-widget-filter-field_publish_date_value label { font-size: 1.38em !important; } .view-archive-views .views-exposed-widgets = .views-widget-filter-field_publish_date_value .help-block { font-size: 1.38em !important; } .view-archive-views .views-exposed-widgets .views-widget-filter-keys { font-size: 1.38em !important; margin-bottom: 1.8em !important; } .view-archive-views .views-exposed-widgets .views-widget-filter-type_1 { font-size: 1.38em !important; margin-bottom: 1.8em !important; } .view-archive-views .btn { font-size: 1.38em; } } @media all and (max-width:480px) { body { font-size: 14px; } .in_page_content .content .field { color: rgb(85, 85, 85); } .in_page_content .content .field-name-body { color: rgb(85, 85, 85); } .in_page_content .field-name-field-publish-date { color: rgb(85, 85, 85); } .in_page_content .content .field-name-body h2 { color: rgb(51, 51, 51); font-size: 1.28em; } } .mobile a.phone_num { color: rgb(84, 117, 40); } .mobile-menu a { color: rgb(112, 112, 112); } .mobile-menu .block-title { font-size: 20px; } .mobile-menu .view-shopping-guide-views .view-content a { font-size: 20px; } .navbar-default .mobile-menu .nav > li > a { font-size: 20px; } .navbar-default .mobile-menu .nav > li > span { font-size: 20px; } html[lang=3Den] .navbar-collapse .desktop-menu .block-superfish .nav > = li > ul > li { font-family: Arial, sans-serif; } @media all and (max-width:600px) { h2 { font-weight: normal; } h3 { font-weight: normal; } .block-title { font-weight: normal; } .title { font-weight: normal; } .view-display-id-index_whats_new_header_block_en .views-field-title a { font-weight: normal; } .view-display-id-index_whats_new_header_block_gb .views-field-title a { font-weight: normal; } .view-display-id-index_whats_new_header_block_chi .views-field-title a { font-weight: normal; } .in_page_content .content .field-name-body h2 { font-weight: normal; } } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/consumer/themes/bootstrap/css/overrides.css?nv614b @font-face { font-family: cc-jw; src: url(jw-icons.woff); } body { padding-bottom: 10px; position: relative; } a { color: rgb(84, 117, 40); } a.arrow { background: url("../images/go.png") no-repeat right; padding-right: = 25px; } .in_page_content a:hover { color: rgb(84, 117, 40); text-decoration: underline; } .row { margin: 0px; } .front hr { background: url("../images/dot.png") repeat-x center; border: 0px = currentColor; height: 5px; clear: both; margin-top: 15px; margin-bottom: = 5px; } .footer-hr { background: url("../images/dot.png") repeat-x center; border: 0px = currentColor; height: 5px; clear: both; margin-top: 15px; margin-bottom: = 5px; } hr { border-top-color: currentColor; border-top-width: 0px; = border-top-style: none; } hr.dim { background: url("../images/dimdim.png") repeat-x center; height: 5px; } .front hr.dim { height: 40px; margin-top: 0px; } hr.line { background: none; height: 1px; margin-bottom: 15px; = border-bottom-color: rgb(233, 233, 235); border-bottom-width: 1px; = border-bottom-style: solid; } ul { text-align: justify; -ms-text-justify: inter-ideograph; } ol { text-align: justify; -ms-text-justify: inter-ideograph; } .not-front .content hr { margin-top: 5px; margin-bottom: 5px; } #topLogo { margin: 0px auto; display: block; } #topIssue { padding-left: 0px; margin-bottom: 0px; } #topIssue li { list-style: none; font-weight: bold; float: left; } #topIssue li a { padding: 0px 5px; color: rgb(0, 0, 0); text-decoration: none; display: = block; } #topIssue li:last-child a { border: 0px currentColor; } #topIssue a:hover { text-decoration: underline; } #topIssue a:focus { text-decoration: underline; } .page_menu .block-title { display: none; } .page_menu { margin: 10px 0px 0px 32%; width: 660px; text-align: left; position: = relative; } .page_menu ul { list-style: none; margin: 0px; padding: 0px; position: relative; } .page_menu ul li { float: left; position: relative; } .page_menu .nav > li { margin: 0px 0px 5px; padding: 0px 10px; border-left-color: rgb(197, = 197, 197); border-left-width: 1px; border-left-style: solid; } .page_menu .nav > li:first-child { border-left-color: currentColor; border-left-width: medium; = border-left-style: none; } .page_menu .nav > li > a { padding: 3px 0px; text-align: center; color: rgb(43, 49, 45); = text-decoration: none; display: block; white-space: nowrap; } .page_menu .nav > li > a:hover > span { background: url("../images/border_bg_2.jpg") repeat-x 5px bottom = rgb(255, 255, 255); } .page_menu .nav > li > a.active > span { background: url("../images/border_bg_2.jpg") repeat-x 5px bottom = rgb(255, 255, 255); } .page_menu .nav > li > a.active-trail > span { background: url("../images/border_bg_2.jpg") repeat-x 5px bottom = rgb(255, 255, 255); } .page_menu .nav > li:first-child > a { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .page_menu span { display: none; } .menu-bot-bar { background: rgb(125, 161, 65); height: 8px; display: block; } .new-list { list-style: none; padding-left: 20px; } .new-list li span { display: block; } .new-list li span.date { color: rgb(112, 112, 112); } .new-list li span.title { font-weight: bold; } .new-list li span.content { margin: 15px 0px; color: rgb(44, 53, 48); font-size: 0.87em; } .not-front .region-sidebar-first .block-title { text-align: left; margin-top: 0px; } .not-front .region-sidebar-first { padding: 0px 15px 15px 0px; border-right-color: rgb(197, 197, 197); = border-right-width: 1px; border-right-style: solid; } .index-section-title { background: url("../images/dot.png") repeat-x center; margin: 15px 0px; = clear: both; display: block; } .index-section-title h1 { background: rgb(255, 255, 255); padding-right: 10px; display: inline; } .index-section-title span { background: rgb(255, 255, 255); line-height: 30px; } .front .tumb { display: block; } .front .title { display: block; } .front .date { display: block; } .front .summary { display: block; } .front .subtitle { display: block; } .front .tumb img { width: 100%; height: auto; } .front .subtitle { margin-top: 10px; } .front .summary { text-align: justify; line-height: 160%; margin-top: 10px; = -ms-text-justify: inter-ideograph; } .front .region-index-complaints-two-en .block { background: rgb(245, 245, 245); padding: 10px 10px 20px; border: 1px = solid rgb(178, 208, 136); font-weight: bold; min-height: 100%; } .front .region-index-complaints-two .block { background: rgb(245, 245, 245); padding: 10px 10px 20px; border: 1px = solid rgb(178, 208, 136); font-weight: bold; min-height: 100%; } .front .region-index-complaints-two-en .block { margin-top: 38px; } .front .region-index-complaints-two-en hr { margin: 0px; height: 55px; } .front .region-index-complaints-two hr { margin: 0px; height: 55px; } .front .region-index-complaints-two hr { height: 50px; } .front .region-index-complaints-two-en .block .block-title { margin: 10px 15px; color: rgb(51, 51, 51); font-weight: bold; } .front .region-index-complaints-two .block .block-title { margin: 10px 15px; color: rgb(51, 51, 51); font-weight: bold; } .front .region-index-complaints-two-en .block .complain_title { margin: 10px 15px 20px; max-height: 30px; max-width: 100%; } .front .region-index-complaints-two .block .complain_title { margin: 10px 15px 20px; max-height: 30px; max-width: 100%; } .front .region-index-complaints-two-en .block .phone { display: block; } .front .region-index-complaints-two .block .phone { display: block; } .index-magazine-list { list-style: none; padding: 0px; margin-top: 20px; margin-bottom: 20px; } .index-magazine-list li { border-bottom-color: rgb(0, 0, 0); border-bottom-width: 1px; = border-bottom-style: solid; } .index-magazine-list li a { padding: 10px; color: rgb(0, 0, 0); text-decoration: none; display: = block; } .index-case-tumb { background: rgb(69, 81, 45); border-right-color: rgb(69, 81, 45); = border-bottom-color: rgb(69, 81, 45); border-right-width: 10px; = border-bottom-width: 5px; border-right-style: solid; = border-bottom-style: solid; } .index-case-tumb img { width: 100%; border-right-color: rgb(125, 161, 63); border-right-width: = 5px; border-right-style: solid; } .index-report-tumb img { width: 100%; border-right-color: rgb(125, 161, 63); border-right-width: = 5px; border-right-style: solid; } .slick-track { text-align: justify; -ms-text-justify: inter-ideograph; } .view-display-id-block_sg_index .slick-list { max-height: 114px; } .adv-block { margin: 10px 0px; } .adv-block .adv-list { list-style: none; margin: 20px 0px 0px; padding: 0px; display: = inline-block; } .adv-block .adv-list li { background: rgb(255, 255, 255); padding: 5px 10px; float: left; } .adv-block .adv-list li:last-child { border-right-color: currentColor; border-right-width: medium; = border-right-style: none; } .adv-block .adv-list img { width: 220px; } .front .adv { width: 33.33%; padding-right: 15px; padding-left: 15px; float: left; = position: relative; } #botMenu .region > .block > ul { float: left; } #botMenu .region > .block > ul > li { margin-left: 55px; float: left; } html:lang(en) #botMenu .region > .block > ul > li { margin-left: 20px; } .index-complaint-block { background: rgb(225, 190, 0); color: rgb(255, 255, 255); = border-bottom-color: rgb(225, 190, 0); border-bottom-width: 1px; = border-bottom-style: solid; position: relative; } .index-complaint-block .inner { background: rgb(125, 161, 65); padding: 10px; font-size: 1.12em; = margin-right: 15px; margin-bottom: 10px; } .index-complaint-block::after { background: rgb(255, 255, 255); top: 0px; width: 15px; height: 10px; = right: 0px; position: absolute; content: ""; } .index-complaint-block span { margin-bottom: 10px; display: block; } .index-complaint-block span:last-child { margin-bottom: 0px; } .index-complaint-block span.title { background: url("../images/temp/sign_icon.jpg") no-repeat left top; = line-height: 23px; padding-left: 25px; font-weight: bold; } .index-complaint-block span a { color: rgb(255, 255, 255); } #block-menu-menu-footer-link .nav { margin: auto; display: block; } #block-menu-menu-footer-link .nav > li > a { margin: 0px; padding: 0px 5px; border-right-color: rgb(197, 197, 197); = border-right-width: 1px; border-right-style: solid; float: left; = display: inline-block; } #block-menu-menu-footer-link .nav > li:first-child > a { padding-left: 0px; } #block-menu-menu-footer-link .nav > li:last-child > a { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } #block-menu-menu-footer-link .nav > li > a:hover { background: none; text-decoration: underline; } #block-menu-menu-footer-link .nav > li > a:focus { background: none; text-decoration: underline; } .bg-gray-lighter { background: rgb(247, 245, 246); } #language-buttons a { color: rgb(112, 112, 112); } .nav > li > a:hover { background: none; } .nav > li > a:focus { background: none; } .btn { background: none; border-color: rgb(74, 96, 37); color: rgb(74, 96, = 37); font-weight: bold; } .btn:hover { background: rgb(74, 96, 37); border-color: rgb(74, 96, 37); color: = rgb(255, 255, 255); font-weight: bold; } .btn:focus { background: rgb(74, 96, 37); border-color: rgb(74, 96, 37); color: = rgb(255, 255, 255); font-weight: bold; } .subscription_link { width: 100%; } .in_page_content .subscription_link:hover { color: rgb(255, 255, 255); text-decoration: none; } .navbar-collapse { position: relative; max-height: none; } .main-container { margin-top: 20px; } .front .main-container { margin-top: 35px; } .front h1 { margin-top: 0px; } .front .row { margin: 0px; } .footer-hr { margin-top: 20px; } .copyright { text-align: right; } #page-header { margin-bottom: 20px; } .breadcrumb-wrapper { float: right; } .breadcrumb { background: none; padding-right: 10px; margin-bottom: 10px; } .breadcrumb > li { display: inline; } .breadcrumb > li.last { =09 } .breadcrumb > li a { color: rgb(122, 112, 103); } .breadcrumb > li + li::before { color: rgb(54, 122, 61); font-weight: bold; content: "\00a0>\00a0"; } .breadcrumb > .active { color: rgb(85, 85, 85); } .in_page_content.col-md-11 { padding: 0px 0px 0px 15px; max-width: 870px; } .in_page_content .content p { margin: 1em 0px; text-align: justify; -ms-text-justify: = inter-ideograph; } .in_page_content .content td p { text-align: left; } .in_page_content .content .longUrl { -ms-word-break: break-all; -ms-word-wrap: break-word; } .in_page_content .content a { -ms-word-wrap: break-word; } .in_page_content .content .linkText { -ms-word-wrap: break-word; } .in_page_content .content .c { padding-left: 35px; } .in_page_content .content .c > li > p > a { padding-left: 25px; } .in_page_content .content .d { padding-left: 15px; } .in_page_content .content .d > li > span { padding-left: 30px; display: block; } .in_page_content .content .d > li > ul { padding-left: 70px; } .in_page_content .content .text-center { margin: auto; text-align: center; } .in_page_content .content table th { padding: 5px; } .in_page_content .content table td { padding: 5px; } .in_page_content table.views-table th { background: rgb(63, 82, 32); color: rgb(255, 255, 255); = border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .in_page_content .content table.statistics th { background: rgb(63, 82, 32); color: rgb(255, 255, 255); = border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .in_page_content .content table.tablefield th { background: rgb(63, 82, 32); color: rgb(255, 255, 255); = border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .in_page_content .content table.sticky-header th { background: rgb(63, 82, 32); color: rgb(255, 255, 255); = border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .in_page_content .content table.border th { background: rgb(63, 82, 32); color: rgb(255, 255, 255); = border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .in_page_content .content table.border tr:first-child td { background: rgb(63, 82, 32); color: rgb(255, 255, 255); = border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .in_page_content .table-striped > tbody > tr:nth-child(2n+1) > th { background: rgb(63, 82, 32); color: rgb(255, 255, 255); = border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .in_page_content table.border tr:nth-child(2n+1) > td { background: rgb(224, 230, 214); } .in_page_content .table-striped > tbody > tr:nth-child(2n+1) > td { background: rgb(224, 230, 214); } .in_page_content .content table.full { width: 100%; } .in_page_content .content table.tablefield { width: 100%; } .in_page_content .content table.border { border-top-color: rgb(99, 130, 48); border-left-color: rgb(99, 130, = 48); border-top-width: 1px; border-left-width: 1px; border-top-style: = solid; border-left-style: solid; } .in_page_content .content table.border td { border-right-color: rgb(99, 130, 48); border-bottom-color: rgb(99, 130, = 48); border-right-width: 1px; border-bottom-width: 1px; = border-right-style: solid; border-bottom-style: solid; } .in_page_content .content table.border th { border-right-color: rgb(99, 130, 48); border-bottom-color: rgb(99, 130, = 48); border-right-width: 1px; border-bottom-width: 1px; = border-right-style: solid; border-bottom-style: solid; } .in_page_content table.views-table tr.even > td { background: rgb(243, 243, 243); } .in_page_content table.statistics tr:nth-child(2n+1) > td { background: rgb(243, 243, 243); } .in_page_content table.tablefield tr:nth-child(2n+1) > td { background: rgb(243, 243, 243); } .in_page_content table.views-table td { =09 } .in_page_content .content table.statistics td { =09 } .in_page_content table.statistics tr td.rowspan-top { background: none; vertical-align: top; border-bottom-color: rgb(243, = 243, 243); border-bottom-width: 1px; border-bottom-style: solid; } .in_page_content table.tablefield tr td.rowspan-top { background: none; vertical-align: top; border-bottom-color: rgb(243, = 243, 243); border-bottom-width: 1px; border-bottom-style: solid; } .in_page_content table.tablefield tr td { line-height: 2em; border-top-color: currentColor; border-top-width: = medium; border-top-style: none; } .in_page_content table.tablefield tr th { line-height: 2em; border-top-color: currentColor; border-top-width: = medium; border-top-style: none; } .in_page_content .node-complaints-statistics table.sticky-header = th.col_1 { text-align: right; } .in_page_content .node-complaints-statistics table.sticky-header = th.col_2 { text-align: right; } .in_page_content .node-complaints-statistics table.sticky-header = th.col_3 { text-align: right; } .in_page_content .node-complaints-statistics table.tablefield tr = td.col_1 { text-align: right; } .in_page_content .node-complaints-statistics table.tablefield tr = th.col_1 { text-align: right; } .in_page_content .node-complaints-statistics table.tablefield tr = td.col_2 { text-align: right; } .in_page_content .node-complaints-statistics table.tablefield tr = th.col_2 { text-align: right; } .in_page_content .node-complaints-statistics table.tablefield tr = td.col_3 { text-align: right; } .in_page_content .node-complaints-statistics table.tablefield tr = th.col_3 { text-align: right; } .in_page_content .node-complaints-statistics table.tablefield tbody = tr:last-child { font-weight: bold; border-top-color: rgb(99, 130, 48); = border-top-width: 3px; border-top-style: solid; } .in_page_content .node-milk-powder-price table.sticky-header th.col_3 { text-align: right; } .in_page_content .node-milk-powder-price table.sticky-header th.col_4 { text-align: right; } .in_page_content .node-milk-powder-price table.sticky-header th.col_5 { text-align: right; } .in_page_content .node-milk-powder-price table.tablefield th.col_3 { text-align: right; } .in_page_content .node-milk-powder-price table.tablefield td.col_3 { text-align: right; } .in_page_content .node-milk-powder-price table.tablefield th.col_4 { text-align: right; } .in_page_content .node-milk-powder-price table.tablefield td.col_4 { text-align: right; } .in_page_content .node-milk-powder-price table.tablefield th.col_5 { text-align: right; } .in_page_content .node-milk-powder-price table.tablefield td.col_5 { text-align: right; } .in_page_content .node-milk-powder-price table.tablefield td.col_3 { white-space: nowrap; } .in_page_content .node-milk-powder-price table.tablefield td.col_4 { white-space: nowrap; } .in_page_content .node-milk-powder-price table.tablefield td.col_5 { white-space: nowrap; } .in_page_content .content table .border-bold { border-top-color: rgb(99, 130, 48); border-top-width: 3px; = border-top-style: solid; } .in_page_summary { margin-bottom: 10px; border-bottom-color: rgb(71, 150, 43); = border-bottom-width: 5px; border-bottom-style: solid; } .in_page_view_menu { margin-bottom: 10px; } .in_page_view_menu ul { padding-left: 0px; } .in_page_view_menu ul li { list-style: none; padding: 2px 10px; border-left-color: rgb(197, 197, = 197); border-left-width: 1px; border-left-style: solid; float: left; } .in_page_view_menu ul li a { color: rgb(0, 0, 0); text-decoration: none; } .in_page_view_menu ul li:first-child { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .in_page_view_list { margin-bottom: 10px; } .in_page_view_list ul { padding-left: 0px; } .in_page_view_list ul li { list-style: none; margin: 15px 0px; font-size: 1.1em; display: block; } .in_page_view_video .tumb { margin: 0px 15px; } .in_page_view_video .title { margin: 5px 20px 20px; } .content .statement { padding-top: 2em; } .caption_text { font-size: 13px; } .region-feature { margin: 0px; } .region-feature img { height: 20px; } .share-block { background: rgb(193, 198, 107); padding: 5px 10px; margin-top: 10px; = display: block; } .bookmark-block { background: rgb(193, 198, 107); padding: 5px 10px; margin-top: 10px; = display: block; } .flag-favorites { margin: 0px; line-height: 20px; float: right; } .flag-favorites a { margin: 0px 5px; width: 24px; height: 24px; font-size: 0px; float: = left; display: block; opacity: 0.8; } .flag-favorites a:hover { opacity: 1; } .flag-favorites a.unflag-action { background: url("../images/temp/fav_icon.png") no-repeat; } .flag-favorites a.flag-action { background: url("../images/temp/fav_icon_cancel.png") no-repeat; } .flag-success-message { display: none !important; } .navbar { margin-bottom: 0px; } .navbar-header-left { background: url("../images/cc_header_bg_left.png") repeat-x; left: 0px; = width: 50%; height: 67px; position: absolute; z-index: -1; } .navbar-header-right { background: url("../images/cc_header_bg_right.png") repeat-x; width: = 50%; height: 67px; right: 0px; position: absolute; z-index: -1; } .navbar-header { z-index: 100; } .navbar .logo { height: 50px; padding-right: 30px; margin-top: 20px; display: block; = position: relative; z-index: 101; } .navbar .logo a { z-index: 101; } .navbar .logo img { width: 100%; } .navbar-toggle .icon-bar { height: 3px; } .navbar-default .desktop-menu .nav { margin-top: 20px; float: left; } .navbar-default .desktop-menu .nav > li { background: url("../images/nav_bar.png") no-repeat right 4px; padding: = 0px 27px 0px 0px; float: left; display: block; } .navbar-default .desktop-menu .nav > li > a { padding: 0px; line-height: 2em; display: block; position: relative; } .navbar-default .desktop-menu .nav > li > span { padding: 0px; line-height: 2em; display: block; position: relative; } .navbar-default .mobile-menu .nav > li > a { padding: 10px 10px 10px 25px; display: block; } .navbar-default .mobile-menu .nav > li > span { padding: 10px 10px 10px 25px; display: block; } .navbar-default .mobile-menu .nav > li.expanded > a { background: url("../images/plus.png") no-repeat right; margin-right: = 40px; } .navbar-default .mobile-menu .nav > li.expanded > a.active { background: url("../images/dash.png") no-repeat right; font-weight: = bold; } .mobile-language-switcher { padding: 0px 25px; } .mobile-resize { padding: 0px 25px; } .mobile-resize #resize-buttons .font-normal > a { white-space: nowrap; } .mobile-resize #resize-buttons .font-large > a { white-space: nowrap; } .mobile-resize #resize-buttons .font-largest > a { white-space: nowrap; } .navbar-default .nav > li.double-line > a { line-height: 1.5em; } .navbar-default .nav > li.double-line > span { line-height: 1.5em; } .navbar-default .nav > li.last { background: none; padding-right: 0px; } .navbar-default .desktop-menu .nav > li > a { border-bottom-color: transparent; border-bottom-width: 2px; = border-bottom-style: solid; } .navbar-default .desktop-menu .nav > li > a.active { border-bottom-color: rgb(255, 255, 255); border-bottom-width: 2px; = border-bottom-style: solid; } .navbar-default .desktop-menu .nav > li.sfHover > a { border-bottom-color: rgb(255, 255, 255); border-bottom-width: 2px; = border-bottom-style: solid; } .navbar-default .desktop-menu .nav > li.active > a { border-bottom-color: rgb(255, 255, 255); border-bottom-width: 2px; = border-bottom-style: solid; } .navbar-default .desktop-menu .nav > li.active-trail > a { border-bottom-color: rgb(255, 255, 255); border-bottom-width: 2px; = border-bottom-style: solid; } .navbar-default .desktop-menu .nav > li > a:hover { border-bottom-color: rgb(255, 255, 255); border-bottom-width: 2px; = border-bottom-style: solid; } .navbar-default .desktop-menu .nav > li > a:focus { border-bottom-color: rgb(255, 255, 255); border-bottom-width: 2px; = border-bottom-style: solid; } .navbar-default { background: none; border: currentColor; } #navbar .container { background: url("../images/cc_header_bg.png") no-repeat 250px; height: = 67px; } .navbar-default .navbar-toggle .icon-bar { background: rgb(120, 166, 68); } .region-sidebar-third .block { background: rgb(245, 245, 245); padding: 15px 10px; margin-bottom: = 20px; } .region-sidebar-third .block .block-title { padding: 0px; margin-top: 0px; display: block; } .region-sidebar-third .block p { margin-bottom: 0px; } .region-sidebar-third .block a { padding: 5px 0px; } .region-sidebar-third .block ul { padding: 0px 10px 0px 25px; margin-bottom: 0px; } .region-sidebar-third .block ul li { margin: 10px 0px; } .region-sidebar-third .block ul li { padding: 0px; } .region-sidebar-third .block ul li a { padding: 0px; } .region-sidebar-third .block table { margin: 5px 10px; } .pagination > li > a { padding: 0px 15px; border: 0px currentColor; } .pagination > li > span { padding: 0px 15px; border: 0px currentColor; } .pagination > li.active > a { font-weight: bold; } .pagination > li.active > span { font-weight: bold; } .pagination > li > a:hover { background: none; } .pagination > li > a:link { background: none; } .pagination > .active > a { background: none; color: rgb(0, 0, 0); } .pagination > .active > span { background: none; color: rgb(0, 0, 0); } .pagination > .active > a:hover { background: none; color: rgb(0, 0, 0); } .pagination > .active > span:hover { background: none; color: rgb(0, 0, 0); } .pagination > .active > a:focus { background: none; color: rgb(0, 0, 0); } .pagination > .active > span:focus { background: none; color: rgb(0, 0, 0); } .pagination > li.next > a { line-height: 90%; font-size: 1.8em; } .pagination > li.pager-first > a { line-height: 90%; font-size: 1.8em; } .pagination > li.pager-last > a { line-height: 90%; font-size: 1.8em; } .pagination > li.prev > a { line-height: 90%; font-size: 1.8em; } .quicktabs-tabs { padding-left: 0px; } #block-block-65 { display: none; } .mobile-login-block { float: right; } .footer { margin-top: 20px; } .region-content { margin-bottom: 20px; } .in_page_content .article-img .article-img-inner { padding: 56% 0px 0px; width: 100%; height: 0px; overflow: hidden; = display: block; position: relative; } .in_page_content .article-img .article-img-inner img { margin: auto; left: 0px; top: 0px; height: 100%; right: 0px; bottom: = 0px; display: block; position: absolute; max-height: 100%; max-width: = 100%; } .product-section-header { margin: 0px 0px 15px; } .page-header { margin: 0px 0px 10px; } .in_page_content .video_transcript td { vertical-align: top; } .in_page_content img { height: auto; vertical-align: middle; max-width: 100%; } .in_page_content td img { width: 100%; } .in_page_content .content { line-height: 2em; } .region-content #block-block-39 { line-height: 2em; } .in_page_content .row { margin-right: 0px; margin-left: 0px; } .in_page_content .pdf_btn { width: 40px; height: 40px; } .in_page_content .choice_decoration { margin: 5px 10px 0px; } .in_page_content blockquote { border-left-color: currentColor; border-left-width: medium; = border-left-style: none; } .in_page_content blockquote p { line-height: 2em; font-size: 100%; font-weight: normal; } .navbar-toggle { padding: 10px; border: 0px currentColor; margin-top: 6px; margin-left: = 15px; position: fixed; background-color: transparent; } .navbar-toggle-search { margin: 12px; } .in_page_content #photos { margin: 20px 0px; } .in_page_content .resource-link { margin: 20px 0px; } .in_page_content .article-top .field-name-field-publish-date { float: left; } .in_page_content .article-top .field-name-field-serial { float: left; } .in_page_content .article-top .field-name-field-serial { padding-left: 10px; margin-left: 10px; border-left-color: rgb(197, 197, = 197); border-left-width: 1px; border-left-style: solid; } .in_page_content .field-name-field-serial .field-items * { color: rgb(85, 85, 85); display: inline; } .tdo-link { margin: 10px 5px; display: block; } .tdo-link img { margin: auto; display: block; } .tdo-link span { text-align: center; font-weight: bold; display: block; } #forward-form #edit-page { display: none; } #forward-form #edit-subject { display: none; } #forward-form #edit-body { display: none; } .field-name-field-info-graph img { margin: auto; display: block; } .in_page_content .bracket_no { counter-reset: list; } .in_page_content .bracket_no > li::before { content: "[" counter(list) "] "; counter-increment: list; } .in_page_content .bracket_no > li { list-style-type: none; } .in_page_content .content .source { margin-top: 0px; } .in_page_content ul.charges { padding-left: 20px; list-style-type: lower-alpha; } .in_page_content ol.charges { padding-left: 20px; list-style-type: lower-alpha; } .in_page_content .field-name-field-publish-date { margin-bottom: 10px; margin-left: 5px; } .node-video-archive .field-name-field-video-file-ftp-url { text-align: right; margin-top: 10px; } a.video-link { padding-right: 30px; position: relative; } a.video-link::after { background: url("../images/icon_video.png") no-repeat; margin: 0px 5px; = width: 24px; height: 24px; right: 0px; position: absolute; content: ""; } .field-name-field-video-file-ftp-url a:hover { color: rgb(255, 255, 255); text-decoration: none; } .field-name-field-video-file-ftp-url a:focus { color: rgb(255, 255, 255); text-decoration: none; } .in_page_content .content .field-name-body .row { position: relative; } .doc_ref { right: 0px; bottom: 0px; position: absolute; } .doc_ref a { text-align: center; display: block; } .page-ar { margin-top: 10px; margin-bottom: 20px; } .page-ar .field-name-field-files-ar .field-items { margin-bottom: 10px; } .page-ar .field-name-field-files-ar .field-items .field-item { line-height: 2em; } .page-ar .region-content { margin-bottom: 0px; } .page-ar .field-name-field-file-full-ar { margin: 10px 0px 20px; line-height: 2em; position: relative; } .page-ar .field-name-field-file-full-ar .file { margin: 0px auto; display: table; } .page-ar .field-name-field-thumb-ar { margin: 0px auto; display: block; max-width: 290px; } .history .timeList { list-style: none; text-align: center; display: block; } .history .timeList li { padding: 10px; display: inline; } .history .timeline h2 { padding: 10px 0px; margin-bottom: 0px; border-bottom-color: rgb(197, = 197, 197); border-bottom-width: 1px; border-bottom-style: solid; } .history .timeline img { margin-bottom: 20px; } .history .timeline ul { padding-left: 10px; } .views-row-header-wapper { position: relative; } .views-row-header { bottom: 50px; position: absolute; } .view-display-id-summary { margin-bottom: 30px; display: block; } .view-display-id-summary_chi { margin-bottom: 30px; display: block; } .view-press-releases-view .view-display-id-summary { border-bottom-color: currentColor; border-bottom-width: medium; = border-bottom-style: none; } .view-press-releases-view .view-display-id-summary_chi { border-bottom-color: currentColor; border-bottom-width: medium; = border-bottom-style: none; } .view-shopping-guide-views .view-header .view-filters = .views-exposed-form { display: none; } .ctools-auto-submit-full-form #edit-category-wrapper { display: none; } .view-news-articles-views .ctools-auto-submit-full-form { display: block; } .view-policies-studies .ctools-auto-submit-full-form = #edit-category-wrapper { display: block; } .view > .view-header .upper_date { margin: 5px 0px; } .view > .view-header .upper_body { line-height: 180%; } .view > .view-header .upper_date { line-height: 180%; } .views-row a:focus .abstract { text-decoration: underline; } .views-row a:hover .abstract { text-decoration: underline; } .view > .view-header a:focus .upper_body { text-decoration: underline; } .view > .view-header a:hover .upper_body { text-decoration: underline; } .view > .view-header .upper_title { margin: 0px 0px 5px; text-align: left; } .view-display-id-block_1 .view-content { padding-top: 20px; clear: both; } .view-display-id-block_1 { margin-bottom: 20px; } .views-exposed-widgets { margin-bottom: 20px; } .not-front .view-content .data-row { padding-bottom: 10px; margin-bottom: 20px; border-bottom-color: = rgb(230, 230, 230); border-bottom-width: 1px; border-bottom-style: = solid; } .not-front .view-content .date { display: block; } .front .view-content .tumb { margin-bottom: 10px; } .not-front .view-content .data-row .thumb img { margin: auto; display: block; } .not-front .view-content .video-row { margin-top: 20px; min-height: 230px; } .not-front .view-content .views-row-7 .video-row { min-height: 0px; } .not-front .view-content .views-row-8 .video-row { min-height: 0px; } .not-front .view-content .views-row-9 .video-row { min-height: 0px; } .not-front .view-content .video-row .thumb img { margin: auto; text-align: left; display: block; } .not-front .view-content .video-row .title { margin: auto; text-align: left; display: block; } .not-front .view-content .video-row .date { margin: auto; text-align: left; display: block; } .not-front .view-content .video-row .thumb { margin-bottom: 5px; position: relative; } .not-front .view-content .video-row .thumb::before { background: url("../images/icon_play.png") no-repeat center; width: = 100%; height: 100%; position: absolute; content: " "; } .not-front .view-content .video-row .inner { margin: auto; position: relative; } .not-front .view-content .info-graph-row .inner { position: relative; } .not-front .view-content .info-graph-row .thumb { border: 1px solid rgb(238, 238, 238); } .not-front .view-content .download-row.info-graph-row .inner .title { padding-right: 30px; } .not-front .view-content .download-row.info-graph-row .inner .date { padding-right: 30px; } .not-front .view-content .download-row.video-row .inner .title { padding-right: 30px; } .not-front .view-content .download-row.video-row .inner .date { padding-right: 30px; } .not-front .view-content .info-graph-row .dl-info-graph { background: url("../images/download-icon-on.png") no-repeat center; = width: 25px; height: 25px; right: 0px; bottom: 0px; font-size: 0px; = display: block; position: absolute; } .not-front .view-content .video-row .dl-video { background: url("../images/download-icon-on.png") no-repeat center; = width: 25px; height: 25px; right: 0px; bottom: 0px; font-size: 0px; = display: block; position: absolute; } .not-front .view-content .info-graph-row .dl-info-graph:hover { background: url("../images/download-icon.png") no-repeat center; } .not-front .view-content .info-graph-row .dl-info-graph:focus { background: url("../images/download-icon.png") no-repeat center; } .not-front .view-content .video-row .dl-video:hover { background: url("../images/download-icon.png") no-repeat center; } .not-front .view-content .video-row .dl-video:focus { background: url("../images/download-icon.png") no-repeat center; } .not-front .view-content .info-graph-row { margin-top: 10px; margin-bottom: 20px; } .not-front .view-content .info-graph-row .thumb { padding: 58.18% 0px 0px; width: 100%; height: 0px; overflow: hidden; = margin-bottom: 5px; display: block; position: relative; } .not-front .view-content .info-graph-row .thumb img { margin: auto; left: 0px; top: 0px; width: auto; height: 100%; right: = 0px; bottom: 0px; display: block; position: absolute; } .not-front.page-media-coverage-tc .region-content .view-content { clear: left; } .not-front.page-media-coverage-gb .region-content .view-content { clear: left; } .not-front.page-media-coverage .region-content .view-content { clear: left; } .view-shopping-guide-views .icon-image { background: url("../images/icon_bg_normal.png") no-repeat bottom; = height: 90px; padding-top: 30px; } .view-shopping-guide-views a:hover .icon-image { background: url("../images/icon_bg_normal_on2.png") no-repeat bottom; } .view-shopping-guide-views .on.icon-image { background: url("../images/icon_bg_normal_on.png") no-repeat bottom; } .view-shopping-guide-views a:hover .on.icon-image { background: url("../images/icon_bg_normal_on1.png") no-repeat bottom; } .view-shopping-guide-views .icon-image img { margin: auto; width: auto; height: 50px; padding-left: 3px; display: = block; } .view-shopping-guide-views .consumer-link:hover .icon-image { padding-top: 28px; } .view-shopping-guide-views .consumer-link:hover .icon-image img { height: 55px; } .view-shopping-guide-views .cat-title { text-align: center; color: rgb(0, 0, 0); } .front .view-display-id-block_sg_index .views-row { width: 95px; float: left; } .not-front .view-shopping-guide-views .hotest-1 .icon-image { margin-top: 20px; background-position-x: -6px; } .not-front .view-shopping-guide-views .latest-1 .icon-image { margin-top: 20px; background-position-x: -6px; } .not-front .view-shopping-guide-views .hotest-1:hover .icon-image { margin-top: 20px; background-position-x: -6px; } .not-front .view-shopping-guide-views .latest-1:hover .icon-image { margin-top: 20px; background-position-x: -6px; } .not-front .view-shopping-guide-views .hotest-1:focus .icon-image { margin-top: 20px; background-position-x: -6px; } .not-front .view-shopping-guide-views .latest-1:focus .icon-image { margin-top: 20px; background-position-x: -6px; } .view-shopping-guide-views .hotest-1 .icon-image { background: url("../images/icon_bg_hot.png") no-repeat bottom; } .view-shopping-guide-views .hotest-1:hover .icon-image { background: url("../images/icon_bg_hot_on2.png") no-repeat bottom; } .view-shopping-guide-views .hotest-1 .on.icon-image { background: url("../images/icon_bg_hot_on.png") no-repeat bottom; } .view-shopping-guide-views .hotest-1:hover .on.icon-image { background: url("../images/icon_bg_hot_on1.png") no-repeat bottom; } .view-shopping-guide-views .latest-1 .icon-image { background: url("../images/icon_bg_new.png") no-repeat bottom; } .view-shopping-guide-views .latest-1:hover .icon-image { background: url("../images/icon_bg_new_on2.png") no-repeat bottom; } .view-shopping-guide-views .latest-1 .on.icon-image { background: url("../images/icon_bg_new_on.png") no-repeat bottom; } .view-shopping-guide-views .latest-1:hover .on.icon-image { background: url("../images/icon_bg_new_on1.png") no-repeat bottom; } .view-shopping-guide-views .selected .cat-title { font-size: 1.11em; font-weight: bold; } .views-exposed-form .views-exposed-widget { padding: 0.2em 1em 0px 0px; position: relative; } .views-exposed-form .views-exposed-widget .form-submit { margin-top: 0px; margin-left: 20px; } .view-choice-views .view-content .thumb img { width: 100px; height: auto; display: block; } .view-choice-views .view-display-id-upper .views-exposed-form { width: 65%; margin-bottom: 10px; float: left; } .view-choice-views .view-display-id-upper .choice-issue-list { width: 65%; margin-bottom: 10px; float: left; } .view-choice-views .view-display-id-upper_cover .current-cover { margin: 20px auto; width: 100%; display: block; max-width: 250px; } .view-header .view-filters { display: none; } #views-exposed-form-choice-views-upper-cover { display: none; } .view-choice-views .view-header .view-filters { display: block; } .view-choice-views .view-content .choice-list .views-field { margin: 10px; text-align: center; float: left; display: block; } .view-choice-views .view-content .choice-list .views-field .serial { padding: 10px 0px; } .view-choice-views h3 { clear: both; } .view-choice-views .pager { clear: both; } .view-archive-views .views-exposed-widgets = .views-widget-filter-field_publish_date_value { margin-right: 10px; } .view-archive-views .views-exposed-widgets = .views-widget-filter-field_publish_date_value label { font-size: 0.92em; display: block; } .view-archive-views .views-exposed-widgets = .views-widget-filter-field_publish_date_value .help-block { font-size: 0.92em; display: block; } .view-archive-views .views-exposed-widgets .views-widget-filter-keys { width: 50%; font-size: 0.92em; margin-bottom: 2.4em; display: block; } .view-archive-views .views-exposed-widgets .views-widget-filter-type_1 { width: 50%; font-size: 0.92em; margin-bottom: 2.4em; display: block; } html:lang(zh-hans) .view-archive-views .views-exposed-widgets = .views-widget-filter-keys { margin-bottom: 2.6em; } .view-archive-views .views-exposed-widgets .views-widget-filter-type_1 { margin-bottom: 2.6em; } .view-archive-views .views-exposed-widgets .views-widget { max-width: 200px; } .view-archive-views .views-exposed-widgets .views-submit-button { clear: both; display: block; } .view-archive-views .views-exposed-widgets .views-submit-button button { margin: 10px 0px; } .annuel_img img { margin: auto; width: auto; display: block; max-height: 230px; } .annuel_title { padding: 10px; text-align: center; font-weight: bold; margin-bottom: = 20px; } #block-views-focus-search-views-block .block-title { padding-right: 15px; float: left; } .view-focus-search-views ul { list-style: none; padding-left: 0px; float: left; } .view-focus-search-views li { padding: 0px 10px; float: left; } .view-focus-search-views li a { display: block; } .view-views-bookmarks .views-row .views-field .row { margin: 1em 0px; } .view-id-whats_new_views .title { margin-top: 15px; } .view-views-bookmarks .flag-favorites { border: 0px currentColor; } .view-views-bookmarks .flag-favorites a { background: url("../images/close.png") no-repeat; width: 20px; height: = 30px; color: transparent; font-size: 0px; display: block; } .view-id-media_coverage_views a span.video-true { background: url("../images/icon_play_s.png") no-repeat right; = padding-right: 15px; } .data-row .title .infographs-true.video-true { background: url("../images/icon_play_info_s.png") no-repeat right 1px; = padding-right: 50px; } .data-row .title .video-true { background: url("../images/icon_play_s.png") no-repeat right 1px; = padding-right: 20px; } .data-row .title .infographs-true { background: url("../images/icon_infographic_s.png") no-repeat right = 1px; padding-right: 20px; } .view-header section { margin-bottom: 10px; } .view-media-coverage-views .view-header section { margin-bottom: 0px; } .view-id-media_coverage_views .table > tbody > tr > td { border-top-color: currentColor; border-top-width: medium; = border-top-style: none; } .view-shopping-guide-views h1 { margin-top: 0px; } .view-keyword-search #edit-type-wrapper { display: none; } html[lang=3D'en'] .view-shopping-guide-views h1 { display: none; } a:hover .title { color: rgb(84, 117, 40); text-decoration: underline; } a:hover .subtitle { color: rgb(84, 117, 40); text-decoration: underline; } .view-display-id-index_whats_new_header_block_chi .views-field-title = a:hover { color: rgb(84, 117, 40); text-decoration: underline; } a:focus .title { color: rgb(84, 117, 40); text-decoration: underline; } a:focus .subtitle { color: rgb(84, 117, 40); text-decoration: underline; } .view-display-id-index_whats_new_header_block_chi .views-field-title = a:focus { color: rgb(84, 117, 40); text-decoration: underline; } a:hover .summary { text-decoration: underline; } .in_page_content .view-news-articles-views .views-row-1 { margin-top: 20px; } .in_page_content .view-press-releases-views .views-row-1 { margin-top: 20px; } .views-field-field-number.views-field { text-align: center; white-space: nowrap; } .views-field-field-pharmacy-price.views-field { text-align: center; white-space: nowrap; } .views-field-field-stores-price.views-field { text-align: center; white-space: nowrap; } .views-field-field-supermarket-price.views-field { text-align: center; white-space: nowrap; } .views-field-field-statistics-1.views-field { text-align: right; } .views-field-field-statistics-2.views-field { text-align: right; } .views-field-field-statistics-3.views-field { text-align: right; } .view-complaints-statistics-views .views-row-last { font-weight: bold; border-top-color: rgb(99, 130, 48); = border-top-width: 3px; border-top-style: solid; } .view-display-id-block_1 .view-content { margin: 0px 0px 20px; font-size: 13px; border-bottom-color: rgb(226, = 226, 226); border-bottom-width: 1px; border-bottom-style: solid; } .views-exposed-widgets { margin: 0px 0px 20px; font-size: 13px; border-bottom-color: rgb(226, = 226, 226); border-bottom-width: 1px; border-bottom-style: solid; } .view-display-id-block_1.view-press-releases-view .view-content { border-bottom-color: currentColor; border-bottom-width: medium; = border-bottom-style: none; } .view-display-id-block_1.view-press-releases-view .views-summary = a.selected { background: none; border: currentColor; } .view-display-id-block_1.view-press-releases-view .views-summary a { padding: 0px 10px; } .view-policies-studies .views-exposed-widgets { border: 0px currentColor; } .views-exposed-widgets { padding: 3px 14px; } .view-display-id-block_1 .view-content { padding: 0px 14px; } ul.views-summary { list-style: none; padding-left: 0px; } .views-summary { margin: 20px 0px 0px; padding-bottom: 10px; float: left; display: = block; } .view-press-releases-view .views-summary { margin: 0px; } .form-type-bef-link { margin: 10px 0px; padding-bottom: 7px; float: left; display: block; } .views-exposed-widgets::after { height: 0px; clear: both; display: block; visibility: hidden; content: = "\0020"; } .view-display-id-block_1 .view-content::after { height: 0px; clear: both; display: block; visibility: hidden; content: = "\0020"; } .views-summary li { float: left; } .views-summary a { padding: 10px; } .form-type-bef-link a { padding: 10px; } .views-summary a:hover { color: rgb(112, 112, 112); } .views-summary a:focus { color: rgb(112, 112, 112); } .form-type-bef-link a:hover { color: rgb(112, 112, 112); } .form-type-bef-link a:focus { color: rgb(112, 112, 112); } .in_page_content .tabList li.on { background: rgb(226, 226, 226); border-width: 1px; border-style: solid; = border-color: rgb(226, 226, 226) rgb(226, 226, 226) transparent; color: = rgb(0, 0, 0); } .views-summary a.selected { background: rgb(226, 226, 226); border-width: 1px; border-style: solid; = border-color: rgb(226, 226, 226) rgb(226, 226, 226) transparent; color: = rgb(0, 0, 0); } .views-summary a.active { background: rgb(226, 226, 226); border-width: 1px; border-style: solid; = border-color: rgb(226, 226, 226) rgb(226, 226, 226) transparent; color: = rgb(0, 0, 0); } .form-type-bef-link a.active { background: rgb(226, 226, 226); border-width: 1px; border-style: solid; = border-color: rgb(226, 226, 226) rgb(226, 226, 226) transparent; color: = rgb(0, 0, 0); } .in_page_content .view-header .tabList { =09 } .in_page_content .view-header .tabList li { padding: 10px; } .in_page_content .view-empty .tabList li { padding: 10px; } .form-type-bef-link a:hover { background: rgb(226, 226, 226); color: rgb(0, 0, 0); border-top-color: = rgb(226, 226, 226); border-top-width: 1px; border-top-style: solid; } .form-type-bef-link a:focus { background: rgb(226, 226, 226); color: rgb(0, 0, 0); border-top-color: = rgb(226, 226, 226); border-top-width: 1px; border-top-style: solid; } .in_page_content .tabList { list-style: none; margin: 10px 0px 0px; padding: 0px 0px 0px 12px; = border-bottom-color: rgb(226, 226, 226); border-bottom-width: 1px; = border-bottom-style: solid; } .in_page_content .tabList a { color: rgb(112, 112, 112); } .in_page_content .tabList li { margin: 0px 0px -1px; padding: 3px 12px; float: left; } .in_page_content .tabList li.on { border-width: 1px; border-style: solid; border-color: rgb(226, 226, = 226) rgb(226, 226, 226) rgb(255, 255, 255); } .in_page_content .tabList li.on a { color: rgb(0, 0, 0); } .tabList::after { height: 0px; clear: both; display: block; visibility: hidden; content: = "\0020"; } .region-index-choices-two .view-filters { display: none; } .region-footer .block-title { display: none; } .region-footer-one .block-title { display: none; } .region-footer-two .block-title { display: none; } .region-header-two .block-title { display: none; } .region-header-two .block { float: left; } .region-feature .block { float: left; display: block; } #block-block-35 { float: left; display: block; } #block-block-36 { float: left; display: block; } #block-block-37 { float: left; display: block; } .feature-wapper { margin: 5px 0px; } .feature-wapper-bot { margin-bottom: 10px; } .front .title { color: rgb(51, 51, 51); } .front .subtitle { color: rgb(51, 51, 51); } #resize-buttons ul { padding-left: 20px; } html[lang=3Den] .block-kanhan-language-switcher ul { padding-left: 5px; } html[lang=3Den] #resize-buttons ul { padding-left: 5px; } #block-forward-form .block-title { display: none; } .alert-block { margin: 10px; } .view-display-id-block_index_latest_article .views-row .tumb { padding: 0px 5px; display: block; } .view-display-id-block_index_latest_article .views-row .subtitle { padding: 0px 5px; display: block; } .view-display-id-block_index_latest_article .views-row .tumb { height: 80px; } .helper { height: 100%; vertical-align: middle; display: inline-block; } .front .block-kanhan-text-resize { top: -3px; right: 0px; } .not-front .block-kanhan-text-resize { top: -3px; } #block-block-43 { display: none; } #block-block-9 { margin-right: 10px; } .pollanon { background: rgb(242, 242, 242); } .poll { background: rgb(242, 242, 242); } .poll { padding: 20px; margin-top: 20px; } .pollanon .poll { position: relative; max-width: 230px; } .poll .vote-form .choices { width: 100%; float: left; } .poll .vote-form .captcha { width: 100%; float: left; } .poll .vote-form .form-submit { width: 100%; float: left; } .poll .vote-form .panel .panel-body { background: rgb(242, 242, 242); padding: 0px; border: 0px currentColor; } .poll .vote-form .form-submit { margin-top: 10px; } .poll .vote-form .panel .form-group { margin-bottom: 0px; } .poll .vote-form .panel { margin: auto; border: 0px currentColor; display: block; max-width: = 200px; } .poll .vote-form .panel .panel-heading { display: none; } .poll .vote-form .panel .help-block { display: none; } .block-i18n-poll .links { display: none; } .block-i18n-poll .block-title { display: none; } .poll .total { display: none; } .social-media a { margin: 0px 5px; width: 24px; height: 24px; font-size: 0px; float: = left; display: block; opacity: 0.8; } .social-media a:hover { opacity: 1; } .social-media .share_facebook { background: url("../images/share_facebook_l.png") no-repeat 0% 0% / = cover; } .social-media .share_twitter { background: url("../images/share_twitter_l.png") no-repeat 0% 0% / = cover; } .social-media .share_weibo { background: url("../images/share_weibo_l.png") no-repeat 0% 0% / cover; } .social-media .share_google { background: url("../images/share_google_l.png") no-repeat 0% 0% / = cover; } .social-media .share_rss { background: url("../images/share_rss_l.png") no-repeat 0% 0% / cover; } .social-media .share_print { background: url("../images/share_print.png") no-repeat; } img.share_rss { max-width: 18px; } #block-block-6 { float: right; } #block-block-45 { float: right; } #block-block-51 { float: right; } #block-block-52 { float: right; } #block-block-50 { float: right; } #block-forward-form { float: right; } #block-forward-form .forward-page { background: url("../images/share_email.png") no-repeat; margin: 0px = 5px; width: 24px; height: 24px; font-size: 0px; float: left; display: = block; } .view-press-releases-views .view-filters { display: none; } .view-display-id-block_choice_cover .view-content { padding-bottom: 10px; } .index-choice-cover { margin-bottom: 0px; } .index-choice-cover li div { height: 99%; } .index-choice-cover li div img { height: 99%; } .index-choice-cover li div img { margin-right: 5px; margin-bottom: 5px; float: right; } .index-choice-cover li img { box-shadow: 0px 0px 10px #000; } #thumbs { left: -50%; float: right; position: relative; } #thumbs > ul { list-style: none; margin: 0px; padding: 0px; left: 50%; position: = relative; } #thumbs li { list-style: none; margin: 5px 10px; float: left; } #thumbs li button { background: rgb(189, 190, 194); border: 0px currentColor; width: 13px; = height: 13px; font-size: 0px; display: block; } @media not all { #thumbs li button { =09 } } #thumbs li.active button { background: rgb(105, 145, 46); } #thumbs li button { background: url("../images/bullet_slick.png") no-repeat; height: 13px; } #thumbs li.active button { background: url("../images/bullet_slick_on.png") no-repeat; } .adv-list img { width: 212px; } .view-homepage-3-banner .img { width: 283px !important; } .view-display-id-block_sg_index .views-field-nothing { display: none; } .view-display-id-block_sg_index .view-content { padding: 0px 10px; } .view-display-id-block_bottom_banner .view-content { padding: 0px; } .view-display-id-block_sg_index .view-content a { display: block; } .adv-list .slick-disabled { display: none !important; } .view-display-id-block_sg_index .slick-disabled { display: none !important; } .view-display-id-block_col3_banner .views-row { margin-bottom: 15px; } .view-display-id-block_col3_banner .views-row img { width: 100%; } .view-display-id-block_col3_banner .views-row-last.views-row { margin-bottom: 0px; } .view-display-id-block_sg_index .slick-prev { background: url("../images/arrow_l.png") no-repeat left; border: 0px = currentColor; left: 0px; top: 0px; width: 25px; height: 100%; position: = absolute; } .view-display-id-block_sg_index .slick-next { background: url("../images/arrow_r.png") no-repeat right; border: 0px = currentColor; top: 0px; width: 25px; height: 100%; right: 0px; position: = absolute; } .adv-list .slick-prev { background: url("../images/arrow_l_s.png") no-repeat left; border: 0px = currentColor; left: 0px; top: 0px; width: 10px; height: 100%; position: = absolute; } .adv-list .slick-next { background: url("../images/arrow_r_s.png") no-repeat right; border: 0px = currentColor; top: 0px; width: 10px; height: 100%; right: 0px; position: = absolute; } .slick-control-wrapper { position: absolute; } .slick-control-wrapper .slick-play { background: url("../images/slick_play.png") no-repeat 0% 0% / cover; = border: 0px currentColor; width: 17px; height: 17px; font-size: 0px; = margin-right: 5px; margin-bottom: 5px; float: left; display: none; } .slick-control-wrapper .slick-pause { background: url("../images/slick_pause.png") no-repeat 0% 0% / cover; = border: 0px currentColor; width: 17px; height: 17px; font-size: 0px; = margin-right: 5px; margin-bottom: 5px; float: left; } .adv-list { margin-top: 20px; } .adv-list .slick-slide img { margin: auto; border: 1px solid rgb(238, 238, 238); display: block; } .gs_popover { background: rgba(226, 226, 226, 0.95); padding: 20px; width: 60%; = height: 0px; overflow: hidden; display: none; position: absolute; = z-index: 100; border-top-left-radius: 10px; border-top-right-radius: = 10px; -webkit-border-top-right-radius: 10px; = -moz-border-radius-topright: 10px; -moz-border-radius-topleft: 10px; = -webkit-border-top-left-radius: 10px; } .gs_popover ul { list-style: none; margin: 0px; padding: 0px; } .gs_popover li { width: 25%; float: left; } .gs_popover a { padding: 10px 5%; color: rgb(0, 0, 0); display: block; } .toggle-content { margin-left: 20px; display: none; } .toggle-link { margin-bottom: 0px; } .toggle-content p:first-child { margin-top: -5px; } .toggle-content ol:first-child { margin-top: -5px; } .slick-wrapper { position: relative; } .slick-dots { margin: 5px 0px; text-align: center; padding-left: 0px; display: block; } .slick-dots li { list-style: none; margin: 5px 10px; display: inline; } .slick-dots li button { border: 0px currentColor; width: 14px; height: 14px; color: = transparent; font-size: 0px; } .slick-dots li button { background: url("../images/bullet_slick.png") no-repeat top; } .slick-dots li.slick-active button { background: rgb(105, 145, 46); } .slick-dots li.slick-active button { background: url("../images/bullet_slick_on.png") no-repeat top; } .view-display-id-upper .bef-select-as-links .form-item = .form-type-bef-link { display: none; } .view-display-id-index_whats_new_tumb_block_en > .view-content { width: 57%; float: left; } .view-display-id-index_whats_new_tumb_block_gb > .view-content { width: 57%; float: left; } .view-display-id-index_whats_new_tumb_block_chi > .view-content { width: 57%; float: left; } .view-display-id-index_whats_new_tumb_block_en > .view-content img { width: 100%; } .view-display-id-index_whats_new_tumb_block_gb > .view-content img { width: 100%; } .view-display-id-index_whats_new_tumb_block_chi > .view-content img { width: 100%; } .index-whats-new-block > .view-content > button { border-radius: 10px; border: 0px currentColor; width: 45px; height: = 45px; color: transparent; font-size: 0px; display: block; } .index-whats-new-block > .view-content .slick-prev { background: url("../images/banner_arrow.png") no-repeat left; padding: = 0px; left: 0px; top: 40%; position: absolute; } .index-whats-new-block > .view-content .slick-next { background: url("../images/banner_arrow.png") no-repeat right; padding: = 0px; top: 40%; right: 0px; position: absolute; } .view-display-id-index_whats_new_summary_block_chi { width: 40%; float: right; } .view-display-id-index_whats_new_header_block_chi { width: 40%; float: right; } .view-display-id-index_whats_new_header_block_gb { width: 40%; float: right; } .view-display-id-index_whats_new_header_block_en { width: 40%; float: right; } .view-display-id-index_whats_new_summary_block_en .slick-dots li { display: none; } .view-display-id-index_whats_new_summary_block_gb .slick-dots li { display: none; } .view-display-id-index_whats_new_summary_block_chi .slick-dots li { display: none; } .view-display-id-index_whats_new_header_block_en .slick-dots { display: none !important; } .view-display-id-index_whats_new_header_block_gb .slick-dots { display: none !important; } .view-display-id-index_whats_new_header_block_chi .slick-dots { display: none !important; } .view-display-id-index_whats_new_summary_block_chi > .slick-slider > = button { display: none !important; } .view-display-id-index_whats_new_header_block_chi button.slick-prev { display: none !important; } .view-display-id-index_whats_new_header_block_chi button.slick-next { display: none !important; } .view-display-id-index_whats_new_header_block_gb button.slick-prev { display: none !important; } .view-display-id-index_whats_new_header_block_gb button.slick-next { display: none !important; } .view-display-id-index_whats_new_header_block_en button.slick-prev { display: none !important; } .view-display-id-index_whats_new_header_block_en button.slick-next { display: none !important; } .view-display-id-index_whats_new_header_block_en = .views-field-field-publish-date { margin: 5px 0px; } .view-display-id-index_whats_new_header_block_gb = .views-field-field-publish-date { margin: 5px 0px; } .view-display-id-index_whats_new_header_block_chi = .views-field-field-publish-date { margin: 5px 0px; } .view-display-id-index_whats_new_summary_block_chi .views-field-body { margin: 5px 0px; } .view-whats-new-views .views-field-body .field-content a { color: rgb(104, 104, 104); line-height: 180%; } .view-display-id-index_whats_new_summary_block_chi .field-content a { color: rgb(104, 104, 104); line-height: 180%; } .toggle-link::after { background: url("../images/arrow_expand.png") no-repeat center; color: = transparent; padding-left: 5px; display: inline; content: "??"; } .active.toggle-link::after { background: url("../images/arrow_collapse.png") no-repeat center; = color: transparent; padding-left: 5px; display: inline; content: "??"; } .toggle-content > ul { padding-left: 0px; } .toggle-content > ol { padding-left: 0px; } .serial-next { background: none; border: 0px currentColor; } .serial-prev { background: none; border: 0px currentColor; } #imageData #caption { bottom: 10px; position: static; } .webform-client-form-11119 { max-width: 500px; } .webform-client-form-11119 input { padding: 6px 12px; border-radius: 4px; border: 1px solid rgb(204, 204, = 204); transition:border-color 0.15s ease-in-out, box-shadow 0.15s = ease-in-out; width: 100%; height: 34px; color: rgb(85, 85, 85); = line-height: 1.4285; font-size: 13px; vertical-align: middle; display: = block; box-shadow: inset 0px 1px 1px rgba(0,0,0,0.075); = background-image: none; background-color: rgb(255, 255, 255); = -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); = -webkit-transition: border-color ease-in-out .15s, box-shadow = ease-in-out .15s; } .webform-client-form-11119 .captcha { border: 0px currentColor; max-width: 250px; } .webform-client-form-11119 .captcha img { margin: 10px 0px; } .webform-client-form-11119 .captcha object { margin-top: 10px; } .webform-client-form-11119 .captcha .panel-body { padding-left: 0px; } .captcha .panel-body .help-block { display: none; } .webform-client-form-11119 .panel-heading { display: none; } .webform-client-form-11119 .captcha .help-block { display: none; } .webform-client-form-11119 .form-submit { margin-top: 20px; margin-right: 20px; } .dash-list { list-style: none; } .toggle-content > .dash-list { padding-left: 20px; } .dash-list > li::before { margin-left: -1.1em; position: absolute; content: "?=80?"; } .timeline .decade { margin-top: 0px; margin-bottom: 0px; border-bottom-color: rgb(238, 238, = 238); border-bottom-width: 1px; border-bottom-style: solid; } .timeline img { margin-top: 5px; } .timeline .year h2 { margin: 0px; } .timeline ul { padding-left: 20px; margin-bottom: 0px; } .notify_field_sg_group > div { padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: = 0px; display: inline-block; } .notify_field_sg_group > div::after { margin-right: 10px; margin-left: 10px; content: "/"; } .notify_field_sg_group > div:last-child::after { content: none; } div[class*=3D'form-item-notify-node-type-ps-'] { display: inline-block; } div[class*=3D'form-item-notify-node-type-ps-']::after { margin-right: 10px; margin-left: 10px; content: "/"; } div.form-item-notify-node-type-ps-submission::after { content: none; } div[class*=3D'form-item-notify-node-type-news-'] { display: none; } div[class*=3D'form-item-notify-node-type-shopping-guide-'] { display: none; } div.form-item-notify-node-type-choice-article { display: none; } .notify_field_sg_group .radio + .radio { margin-top: 0px; } .notify_field_sg_group .checkbox + .checkbox { margin-top: 0px; } .timeline-list { background-position: 0px 0px, 100% 0px, 0px 0px, 100% 0px; width: 100%; = text-align: center; -ms-overflow-x: auto; -ms-overflow-y: hidden; = background-image: linear-gradient(to right, rgb(255, 255, 255) 0%, = rgb(255, 255, 255) 59%, rgb(255, 255, 255) 60%, rgba(255, 255, 255, 0) = 100%), linear-gradient(to left, rgb(255, 255, 255) 0%, rgb(255, 255, = 255) 59%, rgb(255, 255, 255) 60%, rgba(255, 255, 255, 0) 100%), = radial-gradient(at left, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 70%), = radial-gradient(at right, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 70%); = background-attachment: local, local, scroll, scroll; background-repeat: = no-repeat; background-size: 30px 100%, 30px 100%, 10px 90px, 10px 90px; = background-origin: padding-box, padding-box, padding-box, padding-box; = background-clip: border-box, border-box, border-box, border-box; = background-color: white; -webkit-overflow-scrolling: touch; } .timeline-list-inner { list-style: none; margin: 0px; padding: 0px; height: 50px; font-size: = 0px; display: inline-block; white-space: nowrap; position: relative; } .timeline-list li { height: 75px; text-align: center; line-height: 20px; font-size: 13px; = vertical-align: top; display: inline-block; position: relative; } .timeline-list li a { padding: 0px 2px; top: 0px; color: rgb(63, 82, 32); font-weight: bold; = text-decoration: none; display: block; position: relative; } .timeline-list li a::after { background: rgb(17, 17, 17); border-radius: 100%; transition:0.2s; = left: 50%; top: 25px; width: 10px; height: 10px; margin-left: -5px; = display: block; position: absolute; backface-visibility: hidden; = -moz-border-radius: 100%; -webkit-border-radius: 100%; = -webkit-backface-visibility: hidden; -o-backface-visibility: hidden; = -webkit-background-clip: padding-box; -moz-background-clip: padding; } .timeline-list li a::before { left: 0px; top: 0px; height: 40px; right: 0px; border-bottom-color: = rgb(17, 17, 17); border-bottom-width: 2px; border-bottom-style: solid; = display: block; position: absolute; content: ""; } .timeline-list li a:hover::after { background: rgb(63, 82, 32); transform: scale(1.4); -webkit-transform: = scale(1.4); } .timeline-list li a > * { padding: 3px 30px; transition:0.2s; } .timeline-list li a:hover > * { background: rgb(63, 82, 32); border-radius: 100px; color: rgb(255, 255, = 255); -moz-border-radius: 100px; -webkit-border-radius: 100px; = -webkit-background-clip: padding-box; -moz-background-clip: padding; } .timeline-list li:first-child a::before { left: 50%; } .timeline-list li:last-child a::before { right: 50%; } .timeline-list li.active a { font-size: 18px; cursor: default; pointer-events: none; } .timeline-list li.active a::after { background: rgb(63, 82, 32); transform: scale(1.4); -webkit-transform: = scale(1.4); } .timeline-list li.active a > * { background: rgb(63, 82, 32); border-radius: 100px; color: rgb(255, 255, = 255); -moz-border-radius: 100px; -webkit-border-radius: 100px; = -webkit-background-clip: padding-box; -moz-background-clip: padding; } .timeline-list li a::after { background: rgb(17, 17, 17); border-radius: 100%; transition:0.2s; = left: 50%; top: 34px; width: 10px; height: 10px; margin-left: -5px; = display: block; position: absolute; content: ""; backface-visibility: = hidden; -moz-border-radius: 100%; -webkit-border-radius: 100%; = -webkit-backface-visibility: hidden; -o-backface-visibility: hidden; = -webkit-background-clip: padding-box; -moz-background-clip: padding; } .page-user .captcha .panel-heading { display: none; } .page-user .nav-tabs a[href$=3D'hybridauth'] { display: none; } :first-child.radio.form-item.form-item-field-age-group-und.form-type-radi= o { display: none; } :first-child.radio.form-item.form-item-field-gender-und.form-type-radio = { display: none; } .hybridauth-widget-wrapper ul.hybridauth-widget li { margin-bottom: 10px; display: block; } #edit-field-gender-und .form-type-radio { margin-right: 10px; float: left; } .form-wrapper { clear: both; content: " "; } form .panel { border: 0px currentColor; box-shadow: none; -webkit-box-shadow: none; } form .panel-body { padding: 0px; } #user-pass { margin-top: 20px; } .panel-default > .panel-heading { background: none; padding-left: 0px; } #block-user-login #user-login-form ul { display: none; } #block-user-login .block-title { display: none; } #ct_captcha { max-width: 230px; } #user-login-form input { max-width: 230px; } #edit-captcha-response { max-width: 230px; } #block-user-login { margin-left: 1em; } #block-block-34 img { border: 1px solid rgb(238, 238, 238); width: 100%; } #block-block-61 img { border: 1px solid rgb(238, 238, 238); width: 100%; } #block-block-62 img { border: 1px solid rgb(238, 238, 238); width: 100%; } .determine ol { line-height: 180%; padding-left: 25px; } .determine ol li { margin-bottom: 15px; } .control-label { padding-right: 0px; padding-left: 0px; } .form-horizontal .text-left.control-label { text-align: left; padding-left: 15px; } .form-horizontal .nopadding-left.text-left.control-label { padding-left: 0px; } form .remark { font-size: 0.75em; } form .red { padding: 5px; color: rgb(212, 63, 58); } form legend { color: rgb(104, 145, 53); padding-top: 20px; font-weight: bold; } .input-group-addon { background: none; border: 0px currentColor; } input.input_error { border: 1px solid rgb(217, 83, 79); } select.input_error { border: 1px solid rgb(217, 83, 79); } textarea.input_error { border: 1px solid rgb(217, 83, 79); } label.input_error { color: rgb(217, 83, 79); } select.form-control { padding: 5px 12px 5px 1px; font-size: 13px; } .normal.control-label { font-weight: normal; } .captcha_refresh { background: url("../images/refresh-icon.png") no-repeat 0% 0% / cover; = width: 35px; height: 32px; font-size: 0px; float: left; display: block; } #securimage_aevent img { width: 19px; } .nopadding { padding: 0px; } .nopadding-right { padding-right: 0px; } .nopadding-left { padding-left: 0px; } .nomargin { margin: 0px !important; } .col-centered { margin: 0px auto; float: none; } img.col-centered { margin: 0px auto; float: none; display: block; } .hidden-all { display: none !important; } .in_page_content td.text-top { vertical-align: top !important; } .text-right { text-align: right !important; } .style_select select { background: none; border: 0px currentColor; width: calc(100% + 35px); } .style_select { background: url("../images/select_arrow.png") no-repeat right rgb(255, = 255, 255); border-radius: 5px; border: 1px solid rgb(204, 204, 204); = width: 110%; overflow: hidden; } .in.navbar-collapse { overflow: auto; } .mobile-menu section { border-bottom-color: rgb(230, 230, 230); border-bottom-width: 1px; = border-bottom-style: solid; } .mobile-menu section:first-child { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .mobile-menu section:last-child { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .mobile-menu { padding: 10px 0px; display: none; -ms-overflow-y: auto; } .mobile-menu .block-title { padding: 10px 0px; font-weight: normal; } .mobile-menu .block-title { background: url("../images/menu_bg_mobile.jpg") repeat-x; = border-bottom-color: rgb(158, 158, 158); border-bottom-width: 1px; = border-bottom-style: solid; } .mobile-menu .block-title a { background: url("../images/plus.png") no-repeat right; padding: 0px = 25px; margin-right: 40px; display: block; } .mobile-menu .block-title a.active { background: url("../images/dash.png") no-repeat right; font-weight: = bold; } #block-menu-menu-mobile-footer-link .block-title { display: none; } .mobile-menu > ul { margin: 0px; } #block-menu-menu-mobile-footer-link li { background: url("../images/menu_bg_mobile.jpg") repeat-x bottom; = border-bottom-color: rgb(158, 158, 158); border-bottom-width: 1px; = border-bottom-style: solid; } .mobile-menu li.expanded { background: url("../images/menu_bg_mobile.jpg") repeat-x bottom; = border-bottom-color: rgb(158, 158, 158); border-bottom-width: 1px; = border-bottom-style: solid; } .navbar-default .mobile-menu .nav > li.last { background: url("../images/menu_bg_mobile.jpg") repeat-x bottom; = border-bottom-color: rgb(158, 158, 158); border-bottom-width: 1px; = border-bottom-style: solid; } .mobile-menu li.expanded { background: url("../images/menu_bg_mobile.jpg") repeat-x top; } .navbar-default .mobile-menu .nav > li.last { background: url("../images/menu_bg_mobile.jpg") repeat-x top; } .navbar-default .mobile-menu .nav > li > ul > li { background: none; border-bottom-color: rgb(228, 228, 228); = border-bottom-width: 1px; border-bottom-style: solid; } .navbar-default .mobile-menu .nav > li > ul > li.last { background: none; border-bottom-color: currentColor; = border-bottom-width: medium; border-bottom-style: none; } .mobile-menu li.active > a { color: rgb(51, 51, 51); font-weight: bold; } .mobile-menu li.active-trail > a { color: rgb(51, 51, 51); font-weight: bold; } #block-menu-menu-mobile-footer-link li:last-child { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .mobile-menu li:last-child.expanded { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; } .mobile-menu li.mlid-1754.expanded { border-top-color: rgb(230, 230, 230); border-top-width: 1px; = border-top-style: solid; } .mobile-menu li.expanded ul { display: none; } .navbar-default .mobile-menu li.expanded ul > li > a { padding: 15px 15px 15px 30px; } .mobile-menu li.active.expanded ul { display: block; } .mobile-menu li.active.expanded ul { display: block; } .mobile-menu .view-shopping-guide-views .view-content { margin-bottom: 0px; display: none; } .mobile-menu .view-focus-search-views .view-content { margin-bottom: 0px; display: none; } .mobile-menu .view-focus-search-views li { padding: 10px 0px; margin-left: 20px; float: none; display: block; } .mobile-menu .view-shopping-guide-views .view-content a { padding: 15px 15px 15px 30px; border-bottom-color: rgb(228, 228, 228); = border-bottom-width: 1px; border-bottom-style: solid; display: block; } .navbar-collapse .desktop-menu .nav > li > a { font-size: 0px; } .navbar-collapse .desktop-menu .nav > li > a { width: 95px; height: 40px; } .navbar-collapse .desktop-menu .nav > li > span { width: 95px; height: 40px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav > li > a { width: 85px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav > li > span { width: 85px; } html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav > li > a { width: 85px; } html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav > li > span { width: 85px; } .navbar-collapse .desktop-menu .block-superfish .sf-menu li { font-size: 14px; position: static; } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul > li { padding: 10px 0px 5px; font-size: 13px; float: left; display: = inline-block; background-color: rgb(245, 245, 245); } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul > li > = span { padding: 0px 10px 3px; text-align: center; color: rgb(43, 49, 45); = text-decoration: none; border-left-color: rgb(197, 197, 197); = border-left-width: 1px; border-left-style: solid; display: block; = white-space: nowrap; } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul > li > a = { padding: 0px 10px 3px; text-align: center; color: rgb(43, 49, 45); = text-decoration: none; border-left-color: rgb(197, 197, 197); = border-left-width: 1px; border-left-style: solid; display: block; = white-space: nowrap; } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul li > a > = span { padding-bottom: 3px; } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul > = li.no-border > span { border-left-color: currentColor; border-left-width: medium; = border-left-style: none; } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul > = li.no-border > a { border-left-color: currentColor; border-left-width: medium; = border-left-style: none; } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul li > = a:hover > span { background: url("../images/border_bg_2.jpg") repeat-x 5px bottom = rgb(245, 245, 245); } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul > li > = a.active > span { background: url("../images/border_bg_2.jpg") repeat-x 5px bottom = rgb(245, 245, 245); } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul > = li.active-trail > a > span { background: url("../images/border_bg_2.jpg") repeat-x 5px bottom = rgb(245, 245, 245); } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul > li > = a.active-trail > span { background: url("../images/border_bg_2.jpg") repeat-x 5px bottom = rgb(245, 245, 245); } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul > = li:first-child > a { border-left-color: currentColor; border-left-width: 0px; = border-left-style: none; } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul > li = a:hover { background: none; text-decoration: none; } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul > li = a:focus { background: none; text-decoration: none; } .navbar-collapse .desktop-menu .block-superfish .nav > li > ul = li:first-child { border-left-color: currentColor; border-left-width: medium; = border-left-style: none; } .navbar-collapse .desktop-menu .block-superfish .sf-menu li:hover > ul { top: 3.4em; } .navbar-collapse .desktop-menu .block-superfish .sf-menu li.sfHover > ul = { top: 3.4em; } .navbar-collapse .desktop-menu .block-superfish .sf-menu ul { padding: 0px; left: -2px; width: 680px; display: block; position: = absolute; } .navbar-collapse .desktop-menu .block-superfish .sf-menu ul.double { background-color: rgb(245, 245, 245); } .navbar-collapse .desktop-menu .nav #menu-1423-3 > a { background: url("../images/title/cc_nav_guide_en.png") no-repeat = center; width: 80px; } .navbar-collapse .desktop-menu .nav li.mlid-1423 a { background: url("../images/title/cc_nav_guide_en.png") no-repeat = center; width: 80px; } .navbar-collapse .desktop-menu .nav li.mlid-1423 span { background: url("../images/title/cc_nav_guide_en.png") no-repeat = center; width: 80px; } .navbar-collapse .desktop-menu .nav #menu-927-3 > a { background: url("../images/title/cc_nav_highlights.png") no-repeat = center; width: 80px; } .navbar-collapse .desktop-menu .nav li.mlid-927 a { background: url("../images/title/cc_nav_highlights.png") no-repeat = center; width: 80px; } .navbar-collapse .desktop-menu .nav li.mlid-927 span { background: url("../images/title/cc_nav_highlights.png") no-repeat = center; width: 80px; } .navbar-collapse .desktop-menu .nav #menu-927-3 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-927-3 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-927-3 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-927 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-927 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-927 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-934-3 > a { background: url("../images/title/cc_nav_complaints.png") no-repeat = center; width: 105px; } .navbar-collapse .desktop-menu .nav li.mlid-934 a { background: url("../images/title/cc_nav_complaints.png") no-repeat = center; width: 105px; } .navbar-collapse .desktop-menu .nav li.mlid-934 span { background: url("../images/title/cc_nav_complaints.png") no-repeat = center; width: 105px; } .navbar-collapse .desktop-menu .nav #menu-934-3 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-934-3 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-934-3 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-934 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-934 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-934 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-1296-3 > a { background: url("../images/title/cc_nav_policy_research.png") no-repeat = center; width: 80px; } .navbar-collapse .desktop-menu .nav li.mlid-1296 a { background: url("../images/title/cc_nav_policy_research.png") no-repeat = center; width: 80px; } .navbar-collapse .desktop-menu .nav li.mlid-1296 span { background: url("../images/title/cc_nav_policy_research.png") no-repeat = center; width: 80px; } .navbar-collapse .desktop-menu .nav #menu-1296-3 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-1296-3 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-1296-3 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1296 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1296 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1296 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-1423-3 > a { background: url("../images/title/cc_nav_guide_en.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-1423 a { background: url("../images/title/cc_nav_guide_en.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-1423 span { background: url("../images/title/cc_nav_guide_en.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav #menu-1423-3 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-1423-3 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-1423-3 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1423 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1423 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1423 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-930-2 > a { background: url("../images/title/cc_nav_news_tc.png") no-repeat center; } .navbar-collapse .desktop-menu .nav li.mlid-930 a { background: url("../images/title/cc_nav_news_tc.png") no-repeat center; } .navbar-collapse .desktop-menu .nav li.mlid-930 span { background: url("../images/title/cc_nav_news_tc.png") no-repeat center; } .navbar-collapse .desktop-menu .nav #menu-930-2 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-930-2 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-930-2 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-930 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-930 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-930 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-877-2 > a { background: url("../images/title/cc_nav_guide_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-877 a { background: url("../images/title/cc_nav_guide_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-877 span { background: url("../images/title/cc_nav_guide_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav #menu-877-2 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-877-2 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-877-2 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-877 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-877 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-877 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-879-2 > a { background: url("../images/title/cc_nav_complaint_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-879 a { background: url("../images/title/cc_nav_complaint_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-879 span { background: url("../images/title/cc_nav_complaint_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav #menu-879-2 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-879-2 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-879-2 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-879 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-879 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-879 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-881-2 > a { background: url("../images/title/cc_nav_policies_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-881 a { background: url("../images/title/cc_nav_policies_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-881 span { background: url("../images/title/cc_nav_policies_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav #menu-881-2 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-881-2 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-881-2 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-881 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-881 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-881 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-931-1 > a { background: url("../images/title/cc_nav_news_sc.png") no-repeat center; } .navbar-collapse .desktop-menu .nav li.mlid-931 a { background: url("../images/title/cc_nav_news_sc.png") no-repeat center; } .navbar-collapse .desktop-menu .nav li.mlid-931 span { background: url("../images/title/cc_nav_news_sc.png") no-repeat center; } .navbar-collapse .desktop-menu .nav #menu-931-1 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-931-1 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-931-1 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-931 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-931 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-931 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-1547-1 > a { background: url("../images/title/cc_nav_guide_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-1547 a { background: url("../images/title/cc_nav_guide_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-1547 span { background: url("../images/title/cc_nav_guide_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav #menu-1547-1 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-1547-1 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-1547-1 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1547 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1547 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1547 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-933-1 > a { background: url("../images/title/cc_nav_complaint_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-933 a { background: url("../images/title/cc_nav_complaint_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-933 span { background: url("../images/title/cc_nav_complaint_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav #menu-933-1 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-933-1 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-933-1 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-933 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-933 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-933 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-1784-1 > a { background: url("../images/title/cc_nav_policies_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-1784 a { background: url("../images/title/cc_nav_policies_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-1784 span { background: url("../images/title/cc_nav_policies_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav #menu-1784-1 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-1784-1 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-1784-1 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1784 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1784 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-1784 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-3026-3 > a { background: url("../images/title/cc_nav_aboutus.png") no-repeat center; = width: 70px; } .navbar-collapse .desktop-menu .nav li.mlid-3026 a { background: url("../images/title/cc_nav_aboutus.png") no-repeat center; = width: 70px; } .navbar-collapse .desktop-menu .nav li.mlid-3026 span { background: url("../images/title/cc_nav_aboutus.png") no-repeat center; = width: 70px; } .navbar-collapse .desktop-menu .nav #menu-3026-3 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-3026-3 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-3026-3 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-3026 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-3026 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-3026 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-3024-2 > a { background: url("../images/title/cc_nav_aboutus_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-3024 a { background: url("../images/title/cc_nav_aboutus_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-3024 span { background: url("../images/title/cc_nav_aboutus_tc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav #menu-3024-2 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-3024-2 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-3024-2 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-3024 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-3024 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-3024 a.active { =09 } .navbar-collapse .desktop-menu .nav #menu-3025-1 > a { background: url("../images/title/cc_nav_aboutus_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-3025 a { background: url("../images/title/cc_nav_aboutus_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav li.mlid-3025 span { background: url("../images/title/cc_nav_aboutus_sc.png") no-repeat = center; } .navbar-collapse .desktop-menu .nav #menu-3025-1 > a:focus { =09 } .navbar-collapse .desktop-menu .nav #menu-3025-1 > a:hover { =09 } .navbar-collapse .desktop-menu .nav #menu-3025-1 > a.active { =09 } .navbar-collapse .desktop-menu .nav li.mlid-3025 a:focus { =09 } .navbar-collapse .desktop-menu .nav li.mlid-3025 a:hover { =09 } .navbar-collapse .desktop-menu .nav li.mlid-3025 a.active { =09 } html[lang=3D'zh-hant'] .region-sidebar-first .block-title { background: url("../images/title/cc_nav_guide_tc.png") no-repeat = center; width: 100%; font-size: 0px; display: block; min-height: 20px; } html[lang=3D'zh-hans'] .region-sidebar-first .block-title { background: url("../images/title/cc_nav_guide_sc.png") no-repeat = center; width: 100%; font-size: 0px; display: block; min-height: 20px; } @media not all { .front .sf-menu { z-index: auto !important; } .front .sf-menu ul { z-index: auto !important; } .front .navbar-collapse .desktop-menu .block-superfish .sf-menu ul { overflow: visible !important; } .front .sf-menu ul li { -webkit-transform: translate3d(0px, 0px, 1px); } } #block-block-53 { margin-bottom: 20px; } #block-block-53 > .menu > li > a { padding-top: 0px; padding-left: 0px; font-size: 28px; font-weight: = bold; } #block-block-53 > .menu .menu { border-bottom-color: rgb(226, 226, 226); border-bottom-width: 1px; = border-bottom-style: solid; } #block-block-53 > .menu .menu > li { float: left; } #block-block-53 > .menu .menu > li a { color: rgb(112, 112, 112); padding-top: 5px; padding-bottom: 5px; = font-weight: bold; } #block-block-53 > .menu .menu > li a.active { background: rgb(226, 226, 226); border-width: 1px 1px 0px; = border-style: solid solid none; border-color: rgb(226, 226, 226) = rgb(226, 226, 226) currentColor; color: rgb(0, 0, 0); } #block-block-53 > .menu .menu > li a.active-trail { background: rgb(226, 226, 226); border-width: 1px 1px 0px; = border-style: solid solid none; border-color: rgb(226, 226, 226) = rgb(226, 226, 226) currentColor; color: rgb(0, 0, 0); } #menu-1777-3 { margin-left: 215px; } #menu-1785-1 { margin-left: 340px; } #menu-1782-2 { margin-left: 340px; } .region-sidebar-third iframe { width: 100%; } .in_page_content .field-name-body iframe { width: 100%; } .region-sidebar-third iframe { margin: 10px 0px; } #navbar .container { position: relative; } .search { background: url("../images/search_bg.png") no-repeat left top; padding: = 10px 35px 15px; top: 0px; right: 0px; margin-top: 13px; position: = absolute; z-index: 498; } .search .expand-search { height: 28px; color: rgb(112, 112, 112); line-height: 28px; = font-weight: bold; display: block; } .region-navigation-mobile-search button { background: none; padding: 0px; border: currentColor; } .region-search button { background: none; padding: 0px; border: currentColor; } .search .search-box-wapper input { padding: 5px; border-radius: 4px; border: 1px solid rgb(204, 204, 204); = width: 0px; color: rgb(85, 85, 85); vertical-align: middle; display: = none; background-image: none; background-color: rgb(255, 255, 255); } #language-buttons ul { padding-left: 20px; } html:lang(en) #language-buttons ul { padding-left: 0px; } #language-buttons ul li { padding: 0px 8px 0px 10px; border-left-color: rgb(197, 197, 197); = border-left-width: 1px; border-left-style: solid; } .mobile-menu #language-buttons ul li { border-left-color: currentColor; border-left-width: medium; = border-left-style: none; } .setLogin { color: rgb(112, 112, 112); } .setLang { color: rgb(112, 112, 112); } .setFont { color: rgb(112, 112, 112); } .setUser { color: rgb(112, 112, 112); } .setLogout { color: rgb(112, 112, 112); } .setLogin:hover { color: rgb(114, 169, 68); } .setLang:hover { color: rgb(114, 169, 68); } .setFont:hover { color: rgb(114, 169, 68); } .setUser:hover { color: rgb(114, 169, 68); } .setLogout:hover { color: rgb(114, 169, 68); } .setLogout { padding: 0px 10px; } .setLogin { padding: 0px 10px; } .setUser { border-left-color: rgb(197, 197, 197); border-left-width: 1px; = border-left-style: solid; } .setAcc { border-left-color: rgb(197, 197, 197); border-left-width: 1px; = border-left-style: solid; } .media-group .setLogout { border-right-color: currentColor; border-right-width: medium; = border-right-style: none; } .setLogin.media-group { border-right-color: currentColor; border-right-width: medium; = border-right-style: none; } .setUser { padding: 0px 10px; } .setAcc { padding: 0px 10px; } .setAcc { background: url("../images/icon_login_s.png") no-repeat right; color: = rgb(114, 169, 68); padding-right: 25px; } .active.setLang { color: rgb(114, 169, 68); } #block-block-7 { display: none; } html[lang=3Den] .chi { display: none; } html[lang=3Den] .gb { display: none; } html[lang=3Dzh-hans] .chi { display: none; } html[lang=3Dzh-hant] .gb { display: none; } html[lang=3Dzh-hant] .en { display: none; } html[lang=3Dzh-hans] .en { display: none; } #block-quicktabs-trade-description-en .block-title { display: none; } #block-quicktabs-trade-description-en .quicktabs-tabs { display: none; } #block-quicktabs-trade-description .block-title { display: none; } #block-quicktabs-trade-description .quicktabs-tabs { display: none; } #block-quicktabs-trade-description-tc .block-title { display: none; } #block-quicktabs-trade-description-tc .quicktabs-tabs { display: none; } #block-quicktabs-trade-description-en h2 { display: none; } #block-quicktabs-trade-description h2 { display: none; } #block-quicktabs-trade-description-tc h2 { display: none; } a.mobile-setLogin { background: url("../images/icon_login.png") no-repeat right; width: = 40px; height: 30px; color: transparent; font-size: 0px; margin-top: = 10px; display: block; } a.mobile-setLogout { background: url("../images/icon_login.png") no-repeat right; width: = 40px; height: 30px; color: transparent; font-size: 0px; margin-top: = 10px; display: block; } .region-announcement-box { margin: auto; padding: 0px 15px; max-width: 728px; } .region-announcement-box .alert { border-radius: 0px; color: rgb(0, 0, 0); } .region-announcement-box .close { color: rgb(85, 85, 85); font-weight: normal; opacity: 1; } .site-map-menu { padding-left: 20px; } .site-map-menu ul { padding-left: 25px; } .site-map-menu ul li { padding: 10px 0px; } @media all and (min-width:1200px) { #navbar .container { margin: 0px auto; width: 1000px; max-width: none; } .container { width: 1000px; } .main-container { max-width: 1000px; } } @media all and (max-width:1220px) { #floatAdv { display: none; } .main-container { width: 1000px; } } @media all and (max-width:991px) { .main-container { width: 100%; } #page-header { margin-bottom: 0px; } .in_page_content.col-md-11 { padding: 0px 0px 0px 15px; max-width: 870px; } .in_page_content.col-md-11 { padding: 0px; max-width: none; } #block-menu-menu-footer-link .nav > li > a { border-right-color: currentColor; border-right-width: 0px; = border-right-style: none; } .index-section-title { background: none; } .in_page_content { border: 0px currentColor; } .nopadding-right { padding-right: 15px; } .nopadding-left { padding-left: 15px; } .data-row .nopadding-left { text-align: justify; padding-left: 0px; } .data-row .col-xs-2 { padding: 0px; } .xs-nopadding { padding: 0px; } .view-content .date { margin: 0px; text-align: left; } .view-content .title { =09 } .region-footer-one { margin-bottom: 20px; } .ctools-auto-submit-full-form { display: none; } .view-display-id-block_1.view-press-releases-view { display: none; } .view-display-id-block_1.view-our-views-view { display: none; } .view-policies-studies .ctools-auto-submit-full-form { display: none; } .view-display-id-mobile_views_selector #edit-category { display: none; } .view-display-id-page_3.view-id-policies_studies > .view-filters > = .ctools-auto-submit-full-form { display: none; } .view-display-id-page_2.view-id-policies_studies > .view-filters > = .ctools-auto-submit-full-form { display: none; } .view-display-id-page_1.view-id-policies_studies > .view-filters > = .ctools-auto-submit-full-form { display: none; } .cat-filters .views-widget { display: none; } .view-header .view-filters { display: block; } .view-id-ce_s_message_views .ctools-auto-submit-full-form { display: block; } .view-id-press_releases_views .ctools-auto-submit-full-form { display: block; } .view-filters { display: block; } .view-shopping-guide-views .view-header .view-filters { display: block; } .view-display-id-page_1 > .view-filters > .ctools-auto-submit-full-form = { display: block; } .view-display-id-page_2 > .view-filters > .ctools-auto-submit-full-form = { display: block; } .view-display-id-page_3 > .view-filters > .ctools-auto-submit-full-form = { display: block; } .view-policies-studies .view-display-id-mobile_views_selector = #edit-category { display: block; } .view-display-id-mobile_views_selector .view-filters = .ctools-auto-submit-full-form { display: block; } .view-display-id-mobile_views_selector .view-filters = .ctools-auto-submit-full-form .views-exposed-form { display: block; } .view-policies-studies > .view-filters { display: none; } .view-ce-s-message-views .view-display-id-mobile_views_selector = .view-filters .ctools-auto-submit-full-form { display: none; } .view-display-id-page_2 > .view-filters { display: none; } .view-filters .date-year { display: none; } .view-display-id-page_2.view-keyword-search > .view-filters { display: block; } .view-display-id-page_2.view-ce-s-message-views > .view-filters { display: block; } .view-press-releases-view .view-filters .date-year { display: block; } .view-our-views-view .view-filters .date-year { display: block; } .view-id-ce_s_message_views .views-exposed-widgets { border-bottom-color: rgb(226, 226, 226); border-bottom-width: 1px; = border-bottom-style: solid; } .view-press-releases-view .view-filters { padding-top: 0px; } .view-header .col-xs-12 { padding-right: 0px; padding-left: 0px; } .view > .view-header .upper_body { padding: 5px 0px 0px; } .navbar-default .navbar-nav > li > a { padding: 10px 15px; max-width: none; } .view-display-id-summary { margin-bottom: 0px; display: block; } .view-display-id-summary_chi { margin-bottom: 0px; display: block; } .view-display-id-block_index_latest_article .views-row .tumb { display: none; } .view-display-id-block_index_latest_article .views-row .tumb { padding: 0px; } .view-display-id-block_index_latest_article .views-row .subtitle { padding: 0px; } .view-display-id-block_index_latest_article .views-row-first .tumb { padding: 0px; } .view-display-id-block_index_latest_article .views-row-first .subtitle { padding: 0px; } .view-display-id-block_index_latest_article .views-row-last .tumb { padding: 0px; } .view-display-id-block_index_latest_article .views-row-last .subtitle { padding: 0px; } .gs_popover { width: 100%; } .view-choice-views .view-display-id-upper .views-exposed-form { width: 100%; float: none; } .view-choice-views .view-display-id-upper .choice-issue-list { width: 100%; float: none; } .views-exposed-widgets { padding-left: 0px; border-bottom-color: currentColor; = border-bottom-width: medium; border-bottom-style: none; } .search { background: none; padding: 0px; margin-top: 0px; } #block-block-31 { background: none; display: none; } .copyright { text-align: center; margin-top: 20px; } .slick-dots { width: 100%; } .view-id-whats_new_views .slick__arrow { width: 100%; } .view-id-choice_views .view-content h3 { border-top-color: rgb(233, 233, 235); border-top-width: 1px; = border-top-style: solid; } .view-id-choice_views .view-content h3:first-child { border-top-color: currentColor; border-top-width: 0px; = border-top-style: none; } .view-display-id-block_1.view-id-news_articles_views { display: none; } .view-display-id-block_index_abstract hr.line { width: 35%; float: left; } .subscription_link { margin: auto auto 20px; width: 25%; display: block; min-width: 180px; } .front .region-index-complaints-two-en .block .complain_title { margin: 10px 15px 20px 0px; } .front .region-index-complaints-two .block .complain_title { margin: 10px 15px 20px 0px; } .in_page_content .view-press-releases-views .views-row-1 { margin-top: 20px; } .in_page_content .view-latest-events-views .views-row-1 { margin-top: 20px; } .in_page_content .view-chairman-message-views .views-row-1 { margin-top: 20px; } .in_page_content .view-views-complaint-report .views-row-1 { margin-top: 20px; } .in_page_content .view-policies-studies-studies .views-row-1 { margin-top: 20px; } .in_page_content .view-header .views-row-1 { =09 } .in_page_content .view-header .views-row-1 { =09 } .in_page_content .view-header .views-row-1 { =09 } .view-id-ce_s_message_views .views-exposed-widgets { margin: 10px 0px 20px; } .region-announcement-box { padding: 0px; } .front .col-xs-12 { padding-right: 0px; padding-left: 0px; } .front .view-content .data-row { padding-bottom: 10px; margin-bottom: 20px; border-bottom-color: = rgb(230, 230, 230); border-bottom-width: 1px; border-bottom-style: = solid; } .front .view-content .views-row-last .data-row { padding-bottom: 0px; margin-bottom: 0px; border-bottom-color: = currentColor; border-bottom-width: medium; border-bottom-style: none; } .front .view-content .data-row .tumb { padding-left: 10px; } .front .adv1.adv { padding-right: 10px; padding-left: 0px; } .front .adv2.adv { padding: 0px 5px; } .front .adv3.adv { padding-right: 0px; padding-left: 10px; } .not-front .view-content .video-row .inner { display: table; } .view-press-releases-views .view-filters { display: none; } .in_page_content .content .field-name-body .content_upper_block = .col-xs-12 { padding: 0px; } .in_page_content .content .field-name-body .content_upper_block = .upper_body { padding: 0px 15px; } .in_page_content .region-content .content .field-item > ol.c { padding-left: 35px; } .toggle-content > ul { padding-left: 10px; } .toggle-content > ol { padding-left: 10px; } .view-display-id-block_complaintd_case .summary { display: none; } .navbar-default { background: rgb(210, 216, 66); top: 0px; position: fixed; z-index: 999; } .desktop-menu { display: none; } .navbar .logo { margin: 0px auto; padding: 0px; width: 100%; float: none; max-width: = 210px; } .mobile-menu { display: block; } body.not-front { padding-bottom: 40px; } .container#navbar { padding: 0px; width: 100%; max-width: none; } #navbar .container { padding: 0px; width: 100%; max-width: none; } #navbar .container { background: none; height: 0px; } .navbar-default { background: rgb(210, 216, 66); top: 0px; position: fixed; z-index: 999; } .navbar-header-left { display: none; } .navbar-header-right { display: none; } .mobile .navbar-default .navbar-nav > li { background: none; } .navbar-header { float: none; } .navbar-toggle { display: block; } .navbar-collapse { background: rgb(255, 255, 255); border-top-color: transparent; = border-top-width: 1px; border-top-style: solid; box-shadow: inset 0px = 1px 0px rgba(255,255,255,0.1); } .collapse.navbar-collapse { display: none !important; } .navbar-nav { margin: 7px -15px; float: none !important; max-width: 100%; } .navbar-nav > li { float: none; } .navbar-nav > li > a { padding-top: 10px; padding-bottom: 10px; } .front .main-container { margin-top: 70px; } .main-container { margin-top: 50px; } #page-header { display: none; } } @media all and (max-width:860px) { html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav li.mlid-930 a = { width: 65px; } html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav li.mlid-930 = span { width: 65px; } html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav li.mlid-877 a = { width: 65px; } html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav li.mlid-877 = span { width: 65px; } html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav li.mlid-879 a = { width: 80px; } html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav li.mlid-879 = span { width: 80px; } html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav li.mlid-881 a = { width: 80px; } html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav li.mlid-881 = span { width: 80px; } html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav li.mlid-3024 = a { width: 80px; } html[lang=3D'zh-hant'] .navbar-collapse .desktop-menu .nav li.mlid-3024 = span { width: 80px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav li.mlid-931 a = { width: 65px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav li.mlid-931 = span { width: 65px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav li.mlid-1547 = a { width: 65px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav li.mlid-1547 = span { width: 65px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav li.mlid-933 a = { width: 80px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav li.mlid-933 = span { width: 80px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav li.mlid-1784 = a { width: 80px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav li.mlid-1784 = span { width: 80px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav li.mlid-3025 = a { width: 80px; } html[lang=3D'zh-hans'] .navbar-collapse .desktop-menu .nav li.mlid-3025 = span { width: 80px; } } @media all and (min-width:864px) { .container#navbar { width: 100%; padding-right: 0px; padding-left: 0px; } } @media all and (max-width:864px) { .front .main-container { margin-top: 50px; } .in_page_content.col-md-11 { padding: 0px; } .main-container { margin-top: 65px; } .container { padding: 0px 10px; } .hidden-xs { display: none !important; } .col-xs-12 { width: 100%; padding-right: 0px; padding-left: 0px; } .navbar-header { float: none; } #block-block-65 { display: block; } .navbar-toggle { display: block; } .navbar-collapse { background: rgb(255, 255, 255); border-top-color: transparent; = border-top-width: 1px; border-top-style: solid; box-shadow: inset 0px = 1px 0px rgba(255,255,255,0.1); } .navbar-collapse-search { background: rgb(255, 255, 255); border-top-color: transparent; = border-top-width: 1px; border-top-style: solid; box-shadow: inset 0px = 1px 0px rgba(255,255,255,0.1); } .collapse.navbar-collapse { display: none !important; } .navbar-nav { margin: 7px -15px; float: none !important; } .navbar-nav > li { float: none; } .navbar-nav > li > a { padding-top: 10px; padding-bottom: 10px; } .navbar-text { margin: 15px 0px; float: none; } .in.collapse.navbar-collapse { display: block !important; } .collapsing { overflow: hidden !important; } .front .block-kanhan-text-resize { position: relative; } .not-front .block-kanhan-text-resize { position: relative; } .navbar-default { background: rgb(210, 216, 66); border-radius: 0px; top: 0px; height: = 45px; position: fixed; z-index: 999; } .container.navbar { width: 100%; max-width: none; } #navbar .container { background: none; } .navbar .logo { margin: 0px auto; padding: 0px; width: 100%; float: none; max-width: = 210px; } .navbar-header-left { display: none; } .navbar-header-right { display: none; } .navbar-default .navbar-nav > li { background: none; } .view-display-id-mobile_views_selector .view-filters { display: block; } .index-section-title span { display: none; } .region-sidebar-third-wapper { padding-right: 0px; padding-left: 0px; } .desktop-menu { display: none; } .mobile-menu { display: block; } #block-block-43 { padding: 5px 20px; display: block; } .region-sidebar-third .block { width: 48%; float: left; } .region-sidebar-third .block { margin-right: 2%; } .region-sidebar-third :last-child.block { margin-right: 0px; } .view-news-articles-views .view-header .view-filters { display: block; } .view-news-articles-views .news_articles_tabs_block { display: none; } .view-news-articles-views .view-header .view-filters .date-year { display: none; } .view-id-ce_s_message_views .views-exposed-widgets { =09 } .view-display-id-index_whats_new_tumb_block_en > .view-content { width: 100%; float: none; } .view-display-id-index_whats_new_tumb_block_gb > .view-content { width: 100%; float: none; } .view-display-id-index_whats_new_tumb_block_chi > .view-content { width: 100%; float: none; } .view-display-id-index_whats_new_summary_block_gb { width: 100%; float: none; } .view-display-id-index_whats_new_header_block_gb { width: 100%; float: none; } .view-display-id-index_whats_new_summary_block_chi { width: 100%; float: none; } .view-display-id-index_whats_new_header_block_chi { width: 100%; float: none; } .view-display-id-index_whats_new_summary_block_en { width: 100%; float: none; } .view-display-id-index_whats_new_header_block_en { width: 100%; float: none; } #block-views-views-annual-report-block-1 { display: none; } .view-display-id-index_whats_new_summary_block_en .slick-dots li { display: inline; } .view-display-id-index_whats_new_summary_block_gb .slick-dots li { display: inline; } .view-display-id-index_whats_new_summary_block_chi .slick-dots li { display: inline; } .view-whats-new-views .views-field-body .field-content { display: none !important; } .in_page_content .content table.statistics { =09 } .in_page_content .content table.statistics th { =09 } .in_page_content .content table.statistics td { =09 } .in_page_content table.views-table td { =09 } .in_page_content .content table.statistics td { =09 } .in_page_content table.statistics tr td.rowspan-top { background: none; vertical-align: top; } .index-whats-new-block-header { margin-top: 10px; } .index-whats-new-block-summary a { display: none; } .region-index-choices-two { margin-top: 10px; } .mobile-nopadding { padding: 0px; } .region-index-complaints-two { margin: 20px 0px 10px; } #block-block-35 { background: rgb(255, 255, 255); padding: 5px; left: 0px; width: 100%; = bottom: 0px; position: fixed; z-index: 100; } #block-block-36 { background: rgb(255, 255, 255); padding: 5px; left: 0px; width: 100%; = bottom: 0px; position: fixed; z-index: 100; } #block-block-37 { background: rgb(255, 255, 255); padding: 5px; left: 0px; width: 100%; = bottom: 0px; position: fixed; z-index: 100; } #block-block-35 .social-media { margin: auto; display: table; } #block-block-36 .social-media { margin: auto; display: table; } #block-block-37 .social-media { margin: auto; display: table; } #block-block-35 .social-media a { width: 30px; height: 30px; } #block-block-36 .social-media a { width: 30px; height: 30px; } #block-block-37 .social-media a { width: 30px; height: 30px; } .social-media .share_facebook { background: url("../images/share_facebook_l.png") no-repeat 0% 0% / = cover; } .social-media .share_twitter { background: url("../images/share_twitter_l.png") no-repeat 0% 0% / = cover; } .social-media .share_weibo { background: url("../images/share_weibo_l.png") no-repeat 0% 0% / cover; } .social-media .share_google { background: url("../images/share_google_l.png") no-repeat 0% 0% / = cover; } .social-media .share_rss { background: url("../images/share_rss_l.png") no-repeat 0% 0% / cover; } .breadcrumb-wrapper { float: none; } .breadcrumb { margin: 0px; padding: 0px; } .breadcrumb li { padding-bottom: 10px; display: block; } .breadcrumb li.first { display: none; } .breadcrumb > li + li::before { display: none; } .page-media .breadcrumb { display: none; } .breadcrumb .media_big_section { display: none; } .data-row .col-xs-8 { padding-right: 0px; } .data-row .col-xs-4 { padding-left: 10px; } .caption_text { font-size: 14px; } .not-front .view-content .info-graph-row { padding: 0px; margin-bottom: 40px; } .not-front .view-content .video-row { padding: 0px; margin-bottom: 40px; } .in_page_content .region-content .content .field-item > ol { padding-left: 1.9em; } .in_page_content .region-content .content .field-item > ul { padding-left: 1.9em; } .region-sidebar-third a.phone_num { color: rgb(84, 117, 40); } a.phone_num { color: rgb(84, 117, 40); } .doc_ref { right: auto; bottom: auto; position: relative; } .view-display-id-page_2.view-ce-s-message-views > .view-filters { =09 } .view-ce-s-message-views .view-display-id-mobile_views_selector = .view-filters .ctools-auto-submit-full-form { =09 } .view-display-id-block_1 { margin-top: 10px; margin-bottom: 10px; } .views-exposed-widgets { margin-top: 10px; margin-bottom: 10px; } #block-block-53 { margin-bottom: 10px; } .view-press-releases-view .views-exposed-widgets { margin-top: 0px; } #block-block-53 > .menu .menu > li { float: none; } .view-display-id-block_1.view-id-press_releases_views { display: none; } .view-press-releases-views .view-filters { display: block; } .front .col-xs-1 { padding-right: 0px; padding-left: 0px; } .front .col-sm-1 { padding-right: 0px; padding-left: 0px; } .front .col-md-1 { padding-right: 0px; padding-left: 0px; } .front .col-lg-1 { padding-right: 0px; padding-left: 0px; } .front .col-xs-2 { padding-right: 0px; padding-left: 0px; } .front .col-sm-2 { padding-right: 0px; padding-left: 0px; } .front .col-md-2 { padding-right: 0px; padding-left: 0px; } .front .col-lg-2 { padding-right: 0px; padding-left: 0px; } .front .col-xs-3 { padding-right: 0px; padding-left: 0px; } .front .col-sm-3 { padding-right: 0px; padding-left: 0px; } .col-md-3 { padding-right: 0px; padding-left: 0px; } .col-lg-3 { padding-right: 0px; padding-left: 0px; } .front .col-xs-4 { padding-right: 0px; padding-left: 0px; } .front .col-sm-4 { padding-right: 0px; padding-left: 0px; } .front .col-md-4 { padding-right: 0px; padding-left: 0px; } .front .col-lg-4 { padding-right: 0px; padding-left: 0px; } .front .col-xs-5 { padding-right: 0px; padding-left: 0px; } .front .col-sm-5 { padding-right: 0px; padding-left: 0px; } .front .col-md-5 { padding-right: 0px; padding-left: 0px; } .front .col-lg-5 { padding-right: 0px; padding-left: 0px; } .front .col-xs-6 { padding-right: 0px; padding-left: 0px; } .front .col-sm-6 { padding-right: 0px; padding-left: 0px; } .front .col-md-6 { padding-right: 0px; padding-left: 0px; } .front .col-lg-6 { padding-right: 0px; padding-left: 0px; } .front .col-xs-7 { padding-right: 0px; padding-left: 0px; } .front .col-sm-7 { padding-right: 0px; padding-left: 0px; } .front .col-md-7 { padding-right: 0px; padding-left: 0px; } .front .col-lg-7 { padding-right: 0px; padding-left: 0px; } .front .col-xs-8 { padding-right: 0px; padding-left: 0px; } .front .col-sm-8 { padding-right: 0px; padding-left: 0px; } .front .col-md-8 { padding-right: 0px; padding-left: 0px; } .front .col-lg-8 { padding-right: 0px; padding-left: 0px; } .front .col-xs-9 { padding-right: 0px; padding-left: 0px; } .front .col-sm-9 { padding-right: 0px; padding-left: 0px; } .front .col-md-9 { padding-right: 0px; padding-left: 0px; } .front .col-lg-9 { padding-right: 0px; padding-left: 0px; } .front .col-xs-10 { padding-right: 0px; padding-left: 0px; } .front .col-sm-10 { padding-right: 0px; padding-left: 0px; } .front .col-md-10 { padding-right: 0px; padding-left: 0px; } .front .col-lg-10 { padding-right: 0px; padding-left: 0px; } .front .col-xs-11 { padding-right: 0px; padding-left: 0px; } .front .col-sm-11 { padding-right: 0px; padding-left: 0px; } .front .col-md-11 { padding-right: 0px; padding-left: 0px; } .front .col-lg-11 { padding-right: 0px; padding-left: 0px; } .front .col-xs-12 { padding-right: 0px; padding-left: 0px; } .front .col-sm-12 { padding-right: 0px; padding-left: 0px; } .front .col-md-12 { padding-right: 0px; padding-left: 0px; } .front .col-lg-12 { padding-right: 0px; padding-left: 0px; } .view-media-photos-videos-views .video-row.col-xs-12 { padding: 0px 5px; width: 50%; float: left; } .view-latest-video-views .video-row.col-xs-12 { padding: 0px 5px; width: 50%; float: left; } .view-shopping-guide-views .info-graph-row.col-xs-12 { padding: 0px 5px; width: 50%; float: left; } .view-media-info-graph .info-graph-row.col-xs-12 { padding: 0px 5px; width: 50%; float: left; } .view-latest-infograph .info-graph-row.col-xs-12 { padding: 0px 5px; width: 50%; float: left; } .view-views-annual-report .col-xs-12 { padding: 0px 5px; width: 50%; float: left; } } @media all and (max-width:600px) { .in_page_content .content img { =09 } #block-block-61 div { padding: 10px 0px; width: 100%; } #block-block-62 div { padding: 10px 0px; width: 100%; } #block-block-34 div { padding: 10px 0px; width: 100%; } .adv1.adv { display: none; } .adv2.adv { display: none; } .region-sidebar-third .block { width: 100%; float: left; } .region-sidebar-third :last-child.block { margin-bottom: 0px; } } @media all and (max-width:500px) { .view-archive-views .views-exposed-widgets .views-widget-filter-keys { width: 100%; } .view-archive-views .views-exposed-widgets .views-widget-filter-type_1 { width: 100%; } } @media all and (max-width:496px) { .pagination { padding: 0px 35%; width: 100%; overflow: hidden; position: relative; } .pagination > li > a { width: 20%; text-align: center; } .pagination > li > span { width: 20%; text-align: center; } .pagination > li.pager-ellipsis { display: none; } .pagination li { display: none; white-space: nowrap; } .pagination li.active { margin: auto; width: 100%; font-weight: normal; display: block; } .pagination li.active a { margin: auto; width: 100%; font-weight: normal; display: block; } .pagination li { =09 } .pagination li.active { =09 } .pagination li.first.active { =09 } .pagination .next { display: block; } .pagination .last { display: block; } .pagination .first { display: block; } .pagination .prev { display: block; } .pagination .next a { padding: 0px; } .pagination .pager-last a { padding: 0px; } .pagination .prev a { padding: 0px; } .pagination .pager-first a { padding: 0px; } .pagination .next { right: 50px; position: absolute; } .pagination .pager-last { right: 10px; position: absolute; } .pagination .pager-first { left: 10px; position: absolute; } .pagination .prev { left: 50px; position: absolute; } .view-media-photos-videos-views .video-row.col-xs-12 { padding: 0px; width: 100%; float: none; } .view-latest-video-views .video-row.col-xs-12 { padding: 0px; width: 100%; float: none; } .view-shopping-guide-views .info-graph-row.col-xs-12 { padding: 0px; width: 100%; float: none; } .view-media-info-graph .info-graph-row.col-xs-12 { padding: 0px; width: 100%; float: none; } .view-latest-infograph .info-graph-row.col-xs-12 { padding: 0px; width: 100%; float: none; } .view-views-annual-report .col-xs-12 { padding: 0px; width: 100%; float: none; } .not-front .view-content .video-row { min-height: 0px; } } @media all and (max-width:375px) { .navbar .logo { width: 100%; margin-top: 0px; max-width: 180px; } .region-sidebar-third .block { width: 100%; float: none; } } @media all and (max-width:310px) { .navbar .logo { width: 100%; margin-top: 8px; max-width: 160px; } } @media all and (max-width:300px) { .navbar .logo { width: 100%; margin-top: 10px; max-width: 120px; } } @media all and (max-width:300px) { .navbar .logo { width: 100%; margin-top: 10px; max-width: 120px; } } @media all and (max-width:285px) { #block-block-37 { margin-bottom: 5px; float: none; } } .mobile .hidden-xs { display: none !important; } .mobile .hidden-sm { display: none !important; } .mobile .col-sm-12 { =09 } .mobile .col-xs-12 { =09 } .mobile .in_page_content { width: 100%; } .mobile .in_page_content.col-md-11 { padding: 0px; } .mobile #block-block-65 { display: block; } .mobile .navbar-toggle { display: block; } .mobile .in.navbar-collapse-search { background: rgb(255, 255, 255); } .mobile .navbar { height: 50px; } .mobile .container { width: 100%; } .mobile .main-container { width: 100%; margin-top: 55px; } .mobile #navbar .container { background: none; } .mobile #navbar .container { width: 100%; padding-right: 0px; padding-left: 0px; } .mobile .container#navbar { width: 100%; padding-right: 0px; padding-left: 0px; } .mobile .navbar-default { background: rgb(210, 216, 66); top: 0px; position: fixed; z-index: 999; } .mobile .navbar-header-left { display: none; } .mobile .navbar-header-right { display: none; } .mobile .navbar-default .navbar-nav > li { background: none; } .mobile .desktop-menu { display: none; } .mobile .mobile-menu { display: block; } .mobile .navbar .logo { margin: 0px auto; padding: 0px; width: 100%; float: none; max-width: = 210px; } .mobile .navbar-header { float: none; } .mobile .navbar-toggle { display: block; } .mobile .navbar-collapse { background: rgb(255, 255, 255); border-top-color: transparent; = border-top-width: 1px; border-top-style: solid; box-shadow: inset 0px = 1px 0px rgba(255,255,255,0.1); } .mobile .collapse.navbar-collapse { display: none !important; } .mobile .navbar-nav { margin: 7px -15px; float: none !important; max-width: 100%; } .mobile .navbar-nav > li { float: none; } .mobile .navbar-nav > li > a { padding-top: 10px; padding-bottom: 10px; } .mobile .data-row .nopadding-left { padding-left: 0px; } .mobile .data-row .col-xs-2 { padding: 0px; } .mobile .view-header .col-xs-12 { padding-right: 0px; padding-left: 0px; } .mobile .view-content .date { margin: 0px; text-align: left; } .mobile .region-footer-one { margin-bottom: 20px; } .mobile .region-sidebar-third-wapper { padding: 0px; } .mobile .gs_popover { width: 100%; } .mobile .view-choice-views .view-display-id-upper .views-exposed-form { width: 100%; float: none; } .mobile .view-choice-views .view-display-id-upper .choice-issue-list { width: 100%; float: none; } .mobile .views-exposed-widgets { padding-left: 0px; border-bottom-color: currentColor; = border-bottom-width: medium; border-bottom-style: none; } .mobile .in_page_content.col-md-11 { max-width: none; } .mobile .view-id-ce_s_message_views .views-exposed-widgets { border-bottom-color: rgb(226, 226, 226); border-bottom-width: 1px; = border-bottom-style: solid; } .mobile .search { background: none; padding: 0px; margin-top: 0px; } .mobile #block-block-31 { background: none; display: none; } .mobile #block-block-43 { display: block; } .mobile .copyright { text-align: center; } .mobile .in_page_content .content table.statistics { border-left-color: rgb(99, 130, 48); border-left-width: 1px; = border-left-style: solid; } .mobile .in_page_content .content table.statistics th { border-right-color: rgb(99, 130, 48); border-right-width: 1px; = border-right-style: solid; } .mobile .in_page_content .content table.statistics td { border-right-color: rgb(99, 130, 48); border-right-width: 1px; = border-right-style: solid; } .mobile .in_page_content table.views-table td { border-bottom-color: rgb(99, 130, 48); border-left-color: rgb(99, 130, = 48); border-bottom-width: 1px; border-left-width: 1px; = border-bottom-style: solid; border-left-style: solid; } .mobile .in_page_content .content table.statistics td { border-bottom-color: rgb(99, 130, 48); border-left-color: rgb(99, 130, = 48); border-bottom-width: 1px; border-left-width: 1px; = border-bottom-style: solid; border-left-style: solid; } .mobile .in_page_content table.views-table { border-right-color: rgb(99, 130, 48); border-right-width: 1px; = border-right-style: solid; } .mobile .slick-dots li button { width: 13px; height: 13px; } .mobile .region-index-choices-two { margin-top: 10px; } .mobile .mobile-nopadding { padding: 0px; } .front.mobile .block-kanhan-text-resize { position: relative; } .not-front.mobile .block-kanhan-text-resize { position: relative; } .mobile #block-block-36 { background: rgb(255, 255, 255); padding: 5px; left: 0px; width: 100%; = bottom: 0px; position: fixed; z-index: 100; } .mobile .region-announcement-box { padding: 0px; } .mobile #block-block-36 .social-media { margin: auto; display: table; } .mobile #block-block-36 .social-media a { width: 30px; height: 30px; } .mobile .view-display-id-block_1.view-id-press_releases_views { display: none; } .mobile .captcha object { display: none; } .mobile .navbar-default { border-radius: 0px; } @media all and (min-width:992px) { body.mobile.not-front { padding-bottom: 40px; } .mobile .view-display-id-block_1 .view-content { border-bottom-color: rgb(226, 226, 226); border-bottom-width: 1px; = border-bottom-style: solid; } .mobile .views-exposed-widgets { border-bottom-color: rgb(226, 226, 226); border-bottom-width: 1px; = border-bottom-style: solid; } .mobile .view-choice-views .view-display-id-upper .views-exposed-form { width: 65%; margin-bottom: 10px; float: left; } .mobile .view-choice-views .view-display-id-upper .choice-issue-list { width: 65%; margin-bottom: 10px; float: left; } .mobile .footer .col-sm-12 { width: 100%; } .mobile .view-display-id-mobile_views_selector .view-filters { display: block; } .mobile .view-display-id-page_1.view-id-policies_studies > .view-filters = > .ctools-auto-submit-full-form { display: none; } .mobile .view-display-id-page_2.view-id-policies_studies > .view-filters = { display: none; } .mobile .view-display-id-page_3.view-id-policies_studies > .view-filters = > .ctools-auto-submit-full-form { display: none; } .mobile .view-display-id-mobile_views_selector .views-exposed-widgets { border-bottom-color: currentColor; border-bottom-width: 0px; = border-bottom-style: none; display: none; } } @media all and (max-width:991px) { .front.mobile .data-row .col-sm-9 { width: 75%; } .front.mobile .data-row .col-xs-4 { width: 25%; } } @media all and (max-width:864px) { .front.mobile .data-row .col-sm-9 { width: 58%; } } @media all and (min-width:864px) { .mobile .region-sidebar-third-wapper { padding-left: 15px; } .mobile .view-header .upper_summary { padding-left: 15px; } .mobile .mobile-menu { width: 100%; } } .data-row .col-xs-10 { =09 } .data-row .col-xs-2 { =09 } .mobile-resize #resize-buttons > span { padding-left: 0px; } @media print { .no_print { display: none; } } @media all and (min-width:992px) { :nth-child(3n+1).views-row .info-graph-row { clear: left; } } @media all and (max-width:991px) { :nth-child(2n+1).views-row .info-graph-row { clear: left; } } @media all and (min-width:992px) { .mobile .view-content .video-row { min-height: 320px; } } @media all and (max-width:991px) and (min-width:800px) { .not-front .view-content .video-row { min-height: 320px; } } @media all and (max-width:799px) and (min-width:700px) { .not-front .view-content .video-row { min-height: 280px; } } @media all and (max-width:699px) and (min-width:580px) { .not-front .view-content .video-row { min-height: 270px; } } @media all and (max-width:579px) and (min-width:481px) { .not-front .view-content .video-row { min-height: 250px; } } .webform-component .description { margin-top: 10px; } .cover-image img { width: 122px; height: 166px; } #hideAll { left: 0px; top: 0px; right: 0px; bottom: 0px; position: fixed; z-index: = 2147483647; background-color: white; } .table_overflow { width: 100%; -ms-overflow-y: auto; } .region-sidebar-third-wapper div li { text-align: left; } .videoPlayer { position: relative; } .video_temp_cover { width: 100%; height: 100%; position: absolute; z-index: 500; } .view-homepage-3-banner img { width: 292px; } .adv_xs { display: none; } @media all and (max-width:600px) { .adv1.adv { display: none; } .adv2.adv { display: none; } .adv3.adv { display: none; } .adv_xs { =09 } } #block-block-34 .adv_slick > button { border-radius: 10px; border: 0px currentColor; width: 45px; height: = 45px; color: transparent; font-size: 0px; display: block; } #block-block-34 .slick-list { padding: 0px; } #block-block-34 .slick-track { padding: 0px; } #block-block-34 .slick-slide { padding: 0px; } #block-block-34 .slick-prev { background: url("../images/banner_arrow.png") no-repeat left; padding: = 0px; left: 0px; top: 40%; position: absolute; } #block-block-34 .slick-next { background: url("../images/banner_arrow.png") no-repeat right; padding: = 0px; top: 40%; right: 0px; position: absolute; } #block-block-62 .adv_slick > button { border-radius: 10px; border: 0px currentColor; width: 45px; height: = 45px; color: transparent; font-size: 0px; display: block; } #block-block-62 .slick-list { padding: 0px; } #block-block-62 .slick-track { padding: 0px; } #block-block-62 .slick-slide { padding: 0px; } #block-block-62 .slick-prev { background: url("../images/banner_arrow.png") no-repeat left; padding: = 0px; left: 0px; top: 40%; position: absolute; } #block-block-62 .slick-next { background: url("../images/banner_arrow.png") no-repeat right; padding: = 0px; top: 40%; right: 0px; position: absolute; } #block-block-61 .adv_slick > button { border-radius: 10px; border: 0px currentColor; width: 45px; height: = 45px; color: transparent; font-size: 0px; display: block; } #block-block-61 .slick-list { padding: 0px; } #block-block-61 .slick-track { padding: 0px; } #block-block-61 .slick-slide { padding: 0px; } #block-block-61 .slick-prev { background: url("../images/banner_arrow.png") no-repeat left; padding: = 0px; left: 0px; top: 40%; position: absolute; } #block-block-61 .slick-next { background: url("../images/banner_arrow.png") no-repeat right; padding: = 0px; top: 40%; right: 0px; position: absolute; } .cat.style_select { background: none; display: inline; } .cat.style_select select { display: inline-block; } .view-keyword-search #edit-type-wrapper { display: block; } .view-keyword-search .views-exposed-widgets = .views-widget-filter-field_publish_date_value { margin-right: 10px; } .view-keyword-search .views-exposed-widgets = .views-widget-filter-field_publish_date_value label { font-size: 0.92em; display: block; } .view-keyword-search .views-exposed-widgets = .views-widget-filter-field_publish_date_value .help-block { font-size: 0.92em; display: block; } .view-keyword-search .views-exposed-widgets .views-widget-filter-keys { width: 50%; font-size: 0.92em; margin-bottom: 2.4em; display: block; } .view-keyword-search .views-exposed-widgets .views-widget-filter-type_1 = { width: 50%; font-size: 0.92em; margin-bottom: 2.4em; display: block; } html:lang(zh-hans) .view-keyword-search .views-exposed-widgets = .views-widget-filter-keys { margin-bottom: 2.6em; } .view-keyword-search .views-exposed-widgets .views-widget-filter-type_1 = { margin-bottom: 2.6em; } .view-keyword-search .views-exposed-widgets .views-widget { max-width: 200px; } .view-keyword-search .views-exposed-widgets .views-submit-button { clear: both; display: block; } .view-keyword-search .views-exposed-widgets .views-submit-button button = { margin: 10px 0px; } .jwplayer { font-family: cc-jw,Arial,Helvetica,sans-serif !important; } .jw-display-icon-container { margin: -1.75em auto 0px !important; } .lightbox-processed + .caption { margin: 0px auto; max-width: 480px; } .node-media-centre-photo-gallery .field-name-field-info-graph = .field-item { margin-bottom: 2em; } #imageData #imageDetails { width: 100%; } #bottomNavClose { padding-top: 0px; margin-top: 0px; } .mobile .view-media-info-graph .hidden-xs { display: block !important; } .mobile .view-media-info-graph .hidden-sm { display: block !important; } .mobile .view-media-photos-videos-views .hidden-xs { display: block !important; } .mobile .view-media-photos-videos-views .hidden-sm { display: block !important; } .mobile .view-media-photo-gallery .hidden-xs { display: block !important; } .mobile .view-media-photo-gallery .hidden-sm { display: block !important; } .mobile .view-media-about-consumer-council- .hidden-xs { display: block !important; } .mobile .view-media-about-consumer-council- .hidden-sm { display: block !important; } @media all and (max-width:767px) { .mobile .view-media-info-graph .hidden-xs { display: none !important; } tr.hidden-xs { display: none !important; } th.hidden-xs { display: none !important; } td.hidden-xs { display: none !important; } .mobile .view-media-photos-videos-views .hidden-xs { display: none !important; } .mobile .view-media-photo-gallery .hidden-xs { display: none !important; } .mobile .view-media-about-consumer-council- .hidden-xs { display: none !important; } } @media all and (max-width:991px) and (min-width:768px) { .mobile .view-media-info-graph .hidden-sm { display: none !important; } tr.hidden-sm { display: none !important; } th.hidden-sm { display: none !important; } td.hidden-sm { display: none !important; } .mobile .view-media-photos-videos-views .hidden-sm { display: none !important; } .mobile .view-media-photo-gallery .hidden-sm { display: none !important; } .mobile .view-media-about-consumer-council- .hidden-sm { display: none !important; } } #block-block-70 { border: 0px currentColor; display: inline-block; } .logged-in #block-block-76 { border: 0px currentColor; left: 0px; } #block-block-43 { font-size: 16px; } .navbar-default .mobile-menu #block-block-70 .nav > li > a { font-size: 16px; } .navbar-default .mobile-menu #block-block-70 .nav > li { background: none; border: 0px currentColor; } .navbar-default .mobile-menu #block-block-70 .nav > li > a { padding: 0px 0px 0px 25px; } #block-block-43 { padding: 10px 0px; top: 0px; right: 25px; display: block; position: = absolute; z-index: 1; } #block-block-70 { display: block; } @media all and (max-width:310px) { .navbar .logo { height: 40px; } } .mobile-menu { padding: 0px 10px; } #block-block-70 li { padding: 10px 0px; } @media all and (max-width:991px) { .view-named-list .view-filters .date-year { display: block; } } .view-id-named_list .views-field-field-date { width: 10em; } .view-id-named_list .views-field-field-district { min-width: 7em; } .view-id-named_list .views-field-title.views-field { max-width: 100px; } .view-id-named_list .views-field-field-address.views-field { =09 } .view-display-id-page.view-id-named_list .view-header .tabList { clear: both; } .view-display-id-page.view-id-named_list .view-filters .views-widget { max-width: 200px; } .view-display-id-page.view-id-named_list .view-filters = .container-inline-date .date-padding { vertical-align: middle; float: none; } .view-display-id-page.view-id-named_list .view-filters = .container-inline-date .date-padding .help-block { =09 } .view-display-id-page.view-id-named_list .view-filters = #edit-field-date-value-wrapper { max-width: none; } .view-display-id-page.view-id-named_list .view-filters = #edit-field-date-value-wrapper .container-inline-date .form-item input { width: 200px; } .view-display-id-page.view-id-named_list .view-filters = #edit-field-date-value-wrapper .views-widget { max-width: none; } .view-display-id-page.view-id-named_list .view-filters = #edit-field-date-value-wrapper .views-widget > div { float: left; } .view-display-id-page.view-id-named_list .view-filters = #edit-field-district-tid-wrapper { clear: both; } .view-display-id-page.view-id-named_list .view-filters = #edit-field-district-tid-wrapper .style_select { max-width: 200px; } .view-display-id-page.view-id-named_list .view-filters = #edit-field-district-tid-wrapper .style_select select { width: 220px; } .view-display-id-page.view-id-named_list .view-filters = #edit-field-district-tid-wrapper .views-widget { vertical-align: middle; } .view-display-id-page.view-id-named_list .view-filters = #edit-parent-wrapper { clear: both; } .view-display-id-page.view-id-named_list .view-filters = #edit-parent-wrapper .style_select { max-width: 200px; } .view-display-id-page.view-id-named_list .view-filters = #edit-parent-wrapper .style_select select { width: 220px; } .view-display-id-page.view-id-named_list .view-filters = #edit-parent-wrapper .views-widget { vertical-align: middle; } .view-display-id-page.view-id-named_list .view-filters = .views-submit-button { padding-top: 15px; } .view-display-id-page.view-id-named_list .view-filters = .views-submit-button .form-submit { margin: 10px 0px; } .view-display-id-page.view-id-named_list .view-filters = .views-exposed-form .views-exposed-widget { margin: 10px 0px; max-width: 50%; } .view-display-id-page_1.view-id-named_list .view-header .tabList { clear: both; } .view-display-id-page_1.view-id-named_list .view-filters .views-widget { max-width: 200px; } .view-display-id-page_1.view-id-named_list .view-filters = .container-inline-date .date-padding { vertical-align: middle; float: none; } .view-display-id-page_1.view-id-named_list .view-filters = .container-inline-date .date-padding .help-block { =09 } .view-display-id-page_1.view-id-named_list .view-filters = #edit-field-date-value-wrapper { max-width: none; } .view-display-id-page_1.view-id-named_list .view-filters = #edit-field-date-value-wrapper .container-inline-date .form-item input { width: 200px; } .view-display-id-page_1.view-id-named_list .view-filters = #edit-field-date-value-wrapper .views-widget { max-width: none; } .view-display-id-page_1.view-id-named_list .view-filters = #edit-field-date-value-wrapper .views-widget > div { float: left; } .view-display-id-page_1.view-id-named_list .view-filters = #edit-field-district-tid-wrapper { clear: both; } .view-display-id-page_1.view-id-named_list .view-filters = #edit-field-district-tid-wrapper .style_select { max-width: 200px; } .view-display-id-page_1.view-id-named_list .view-filters = #edit-field-district-tid-wrapper .style_select select { width: 220px; } .view-display-id-page_1.view-id-named_list .view-filters = #edit-field-district-tid-wrapper .views-widget { vertical-align: middle; } .view-display-id-page_1.view-id-named_list .view-filters = #edit-parent-wrapper { clear: both; } .view-display-id-page_1.view-id-named_list .view-filters = #edit-parent-wrapper .style_select { max-width: 200px; } .view-display-id-page_1.view-id-named_list .view-filters = #edit-parent-wrapper .style_select select { width: 220px; } .view-display-id-page_1.view-id-named_list .view-filters = #edit-parent-wrapper .views-widget { vertical-align: middle; } .view-display-id-page_1.view-id-named_list .view-filters = .views-submit-button { padding-top: 15px; } .view-display-id-page_1.view-id-named_list .view-filters = .views-submit-button .form-submit { margin: 10px 0px; } .view-display-id-page_1.view-id-named_list .view-filters = .views-exposed-form .views-exposed-widget { margin: 10px 0px; max-width: 50%; } .view-display-id-page_2.view-id-named_list .view-header .tabList { clear: both; } .view-display-id-page_2.view-id-named_list .view-filters .views-widget { max-width: 200px; } .view-display-id-page_2.view-id-named_list .view-filters = .container-inline-date .date-padding { vertical-align: middle; float: none; } .view-display-id-page_2.view-id-named_list .view-filters = .container-inline-date .date-padding .help-block { =09 } .view-display-id-page_2.view-id-named_list .view-filters = #edit-field-date-value-wrapper { max-width: none; } .view-display-id-page_2.view-id-named_list .view-filters = #edit-field-date-value-wrapper .container-inline-date .form-item input { width: 200px; } .view-display-id-page_2.view-id-named_list .view-filters = #edit-field-date-value-wrapper .views-widget { max-width: none; } .view-display-id-page_2.view-id-named_list .view-filters = #edit-field-date-value-wrapper .views-widget > div { float: left; } .view-display-id-page_2.view-id-named_list .view-filters = #edit-field-district-tid-wrapper { clear: both; } .view-display-id-page_2.view-id-named_list .view-filters = #edit-field-district-tid-wrapper .style_select { max-width: 200px; } .view-display-id-page_2.view-id-named_list .view-filters = #edit-field-district-tid-wrapper .style_select select { width: 220px; } .view-display-id-page_2.view-id-named_list .view-filters = #edit-field-district-tid-wrapper .views-widget { vertical-align: middle; } .view-display-id-page_2.view-id-named_list .view-filters = #edit-parent-wrapper { clear: both; } .view-display-id-page_2.view-id-named_list .view-filters = #edit-parent-wrapper .style_select { max-width: 200px; } .view-display-id-page_2.view-id-named_list .view-filters = #edit-parent-wrapper .style_select select { width: 220px; } .view-display-id-page_2.view-id-named_list .view-filters = #edit-parent-wrapper .views-widget { vertical-align: middle; } .view-display-id-page_2.view-id-named_list .view-filters = .views-submit-button { padding-top: 15px; } .view-display-id-page_2.view-id-named_list .view-filters = .views-submit-button .form-submit { margin: 10px 0px; } .view-display-id-page_2.view-id-named_list .view-filters = .views-exposed-form .views-exposed-widget { margin: 10px 0px; max-width: 50%; } .node-shopping-guide-info-graph .field-name-field-info-graph .caption { display: none; } .region-footer-one { width: 100%; height: 70px; display: table; } #block-menu-menu-footer-link { display: table-cell; } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/sites/consumer/themes/bootstrap/css/print.css?nv614b header { display: none; } #navbar { display: none; } .page_menu { display: none; } #page-header { display: none; } .region-page-menu { display: none; } .feature-wapper { display: none; } .region-sidebar-first { display: none; } .region-sidebar-third { display: none; } .breadcrumb-wrapper { display: none; } .region-footer { display: none; } .footer { display: none; } .nav-tabs { display: none; } #skip-link .no_print { display: none; } #botMenu { display: none; } #floatAdv { display: none; } .workbench-info-block { display: none; } .container.main-container { margin: 0px; } .main-container { margin: 0px; } body { margin: 0px; } html { margin: 0px; } head { margin: 0px; } html body.admin-menu { margin-top: 0px !important; } .toggle-content { display: block !important; } label[for=3D'complainant_place_of_origin_id'] { white-space: nowrap; } @media print { html { =09 } body { font-size: 1em; } .i18n-zh-hant #cf_form label { white-space: nowrap; } .i18n-zh-hans #cf_form label { white-space: nowrap; } .i18n-zh-hant .large-fonts #cf_form label { white-space: normal; } .i18n-zh-hans .large-fonts #cf_form label .i18n-zh-hant .largest-fonts = #cf_form label { white-space: normal; } .i18n-zh-hans .largest-fonts #cf_form label { white-space: normal; } .in_page_content.col-md-11 { min-width: 99%; } .col-md-1 { float: left; } .col-md-2 { float: left; } .col-md-3 { float: left; } .col-md-4 { float: left; } .col-md-5 { float: left; } .col-md-6 { float: left; } .col-md-7 { float: left; } .col-md-8 { float: left; } .col-md-9 { float: left; } .col-md-10 { float: left; } .col-md-11 { float: left; } .col-md-12 { float: left; } .col-md-12 { width: 100%; } .col-md-11 { width: 91.66%; } .col-md-10 { width: 83.33%; } .col-md-9 { width: 75%; } .col-md-8 { width: 66.66%; } .col-md-7 { width: 58.33%; } .col-md-6 { width: 50%; } .col-md-5 { width: 41.66%; } .col-md-4 { width: 33.33%; } .col-md-3 { width: 25%; } .col-md-2 { width: 16.66%; } .col-md-1 { width: 8.33%; } .col-md-pull-12 { right: 100%; } .col-md-pull-11 { right: 91.66%; } .col-md-pull-10 { right: 83.33%; } .col-md-pull-9 { right: 75%; } .col-md-pull-8 { right: 66.66%; } .col-md-pull-7 { right: 58.33%; } .col-md-pull-6 { right: 50%; } .col-md-pull-5 { right: 41.66%; } .col-md-pull-4 { right: 33.33%; } .col-md-pull-3 { right: 25%; } .col-md-pull-2 { right: 16.66%; } .col-md-pull-1 { right: 8.33%; } .col-md-pull-0 { right: 0px; } .col-md-push-12 { left: 100%; } .col-md-push-11 { left: 91.66%; } .col-md-push-10 { left: 83.33%; } .col-md-push-9 { left: 75%; } .col-md-push-8 { left: 66.66%; } .col-md-push-7 { left: 58.33%; } .col-md-push-6 { left: 50%; } .col-md-push-5 { left: 41.66%; } .col-md-push-4 { left: 33.33%; } .col-md-push-3 { left: 25%; } .col-md-push-2 { left: 16.66%; } .col-md-push-1 { left: 8.33%; } .col-md-push-0 { left: 0px; } .col-md-offset-12 { margin-left: 100%; } .col-md-offset-11 { margin-left: 91.66%; } .col-md-offset-10 { margin-left: 83.33%; } .col-md-offset-9 { margin-left: 75%; } .col-md-offset-8 { margin-left: 66.66%; } .col-md-offset-7 { margin-left: 58.33%; } .col-md-offset-6 { margin-left: 50%; } .col-md-offset-5 { margin-left: 41.66%; } .col-md-offset-4 { margin-left: 33.33%; } .col-md-offset-3 { margin-left: 25%; } .col-md-offset-2 { margin-left: 16.66%; } .col-md-offset-1 { margin-left: 8.33%; } .col-md-offset-0 { margin-left: 0px; } } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/layout.js function MM_swapImgRestore() { //v3.0=0A= var i,x,a=3Ddocument.MM_sr; = for(i=3D0;a&&i<a.length&&(x=3Da[i])&&x.oSrc;i++) x.src=3Dx.oSrc;=0A= }=0A= =0A= function MM_preloadImages() { //v3.0=0A= var d=3Ddocument; if(d.images){ if(!d.MM_p) d.MM_p=3Dnew Array();=0A= var i,j=3Dd.MM_p.length,a=3DMM_preloadImages.arguments; for(i=3D0; = i<a.length; i++)=0A= if (a[i].indexOf("#")!=3D0){ d.MM_p[j]=3Dnew Image; = d.MM_p[j++].src=3Da[i];}}=0A= }=0A= =0A= function MM_findObj(n, d) { //v4.01=0A= var p,i,x; if(!d) d=3Ddocument; = if((p=3Dn.indexOf("?"))>0&&parent.frames.length) {=0A= d=3Dparent.frames[n.substring(p+1)].document; n=3Dn.substring(0,p);}=0A= if(!(x=3Dd[n])&&d.all) x=3Dd.all[n]; for = (i=3D0;!x&&i<d.forms.length;i++) x=3Dd.forms[i][n];=0A= for(i=3D0;!x&&d.layers&&i<d.layers.length;i++) = x=3DMM_findObj(n,d.layers[i].document);=0A= if(!x && d.getElementById) x=3Dd.getElementById(n); return x;=0A= }=0A= =0A= function MM_swapImage() { //v3.0=0A= var i,j=3D0,x,a=3DMM_swapImage.arguments; document.MM_sr=3Dnew Array; = for(i=3D0;i<(a.length-2);i+=3D3)=0A= if ((x=3DMM_findObj(a[i]))!=3Dnull){document.MM_sr[j++]=3Dx; = if(!x.oSrc) x.oSrc=3Dx.src; x.src=3Da[i+2];}=0A= }=0A= =0A= NS4 =3D (document.layers);=0A= IE4 =3D (document.all);=0A= ver4 =3D (NS4 || IE4);=0A= IE5 =3D (IE4 && navigator.appVersion.indexOf("5.")!=3D-1);=0A= isMac =3D (navigator.appVersion.indexOf("Mac") !=3D -1);=0A= isMenu =3D (NS4 || (IE4 && !isMac) || (IE5 && isMac));=0A= function popUp(){return};=0A= function popDown(){return};=0A= if (!ver4) event=3Dnull;=0A= =0A= if (isMenu) {=0A= menuVersion =3D 3;=0A= menuWidth =3D 120;=0A= childOverlap =3D 20;=0A= childOffset =3D 5;=0A= perCentOver =3D null;=0A= secondsVisible =3D .5;=0A= fntCol =3D "blue";=0A= fntSiz =3D "10";=0A= fntBold =3D false;=0A= fntItal =3D false;=0A= fntFam =3D "Arial,sans-serif";=0A= backCol =3D "#FFFFF";=0A= overCol =3D "#FFCCCC";=0A= overFnt =3D "purple";=0A= borWid =3D 2;=0A= borCol =3D "black";=0A= borSty =3D "solid";=0A= itemPad =3D 3;=0A= imgSrc =3D "tri.gif";=0A= imgSiz =3D 10;=0A= separator =3D 1;=0A= separatorCol =3D "black";=0A= isFrames =3D false;=0A= keepHilite =3D true; =0A= clickStart =3D false;=0A= clickKill =3D true;=0A= }=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/flashyslideshow.js var global_transitions=3D[ //array of IE transition strings "progid:DXImageTransform.Microsoft.Fade()" ] function flashyslideshow(setting){ this.wrapperid=3Dsetting.wrapperid this.imagearray=3Dsetting.imagearray this.pause=3Dsetting.pause this.transduration=3Dsetting.transduration/1000 //convert from = miliseconds to seconds unit to pass into el.filters.play() this.currentimg=3D0 var preloadimages=3D[] //temp array to preload images for (var i=3D0; i<this.imagearray.length; i++){ preloadimages[i]=3Dnew Image() preloadimages[i].src=3Dthis.imagearray[i][0] } document.write('<div id=3D"'+this.wrapperid+'" = class=3D"'+setting.wrapperclass+'">'+this.getSlideHTML(this.currentimg)+'= </div>') var effectindex=3DMath.floor(Math.random()*global_transitions.length) = //randomly pick a transition to utilize var wrapperdiv=3Ddocument.getElementById(this.wrapperid) if (wrapperdiv.filters){ //if the filters[] collection is defined on = element (only in IE) wrapperdiv.style.filter=3Dglobal_transitions[effectindex] //define = transition on element this.pause+=3Dsetting.transduration //add transition time to pause } this.filtersupport=3D(wrapperdiv.filters && = wrapperdiv.filters.length>0)? true : false //test if element supports = transitions and has one defined var slideshow=3Dthis setInterval(function(){slideshow.rotate()}, this.pause) } flashyslideshow.prototype.getSlideHTML=3Dfunction(index){ var slideHTML=3D(this.imagearray[index][1])? '<a = href=3D"'+this.imagearray[index][1]+'">\n' : '' //hyperlink slide? slideHTML+=3D'<img src=3D"'+this.imagearray[index][0]+'" />' slideHTML+=3D(this.imagearray[index][1])? '</a>' : '' slideHTML+=3D(this.imagearray[index][3])? this.imagearray[index][3] : = '' //text description? return slideHTML //return HTML for the slide at the specified index } flashyslideshow.prototype.rotate=3Dfunction(){ var wrapperdiv=3Ddocument.getElementById(this.wrapperid) this.currentimg=3D(this.currentimg<this.imagearray.length-1)? = this.currentimg+1 : 0 if (this.filtersupport) wrapperdiv.filters[0].apply() wrapperdiv.innerHTML=3Dthis.getSlideHTML(this.currentimg) if (this.filtersupport) wrapperdiv.filters[0].play(this.transduration)=09 } ///Sample call on your page /* var flashyshow=3Dnew flashyslideshow({ //create instance of slideshow wrapperid: "myslideshow", //unique ID for this slideshow wrapperclass: "flashclass", //desired CSS class for this slideshow imagearray: [ ["summer.jpg", "http://en.wikipedia.org/wiki/Summer", "_new", "Such a = nice Summer getaway."], ["winter.jpg", "http://en.wikipedia.org/wiki/Winter", "", "Winter is = nice, as long as there's snow right?"], ["spring.jpg", "", "", "Flowers spring back to life in Spring."], ["autumn.jpg", "", "", "Ah the cool breeze of autumn."] ], pause: 2000, //pause between slides (milliseconds) transduration: 1000 //transition duration (milliseconds) }) */ ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_002.js /*! jQuery v1.7.1 jquery.com | jquery.org/license */=0A= (function(a,b){function cy(a){return = f.isWindow(a)?a:a.nodeType=3D=3D=3D9?a.defaultView||a.parentWindow:!1}fun= ction cv(a){if(!ck[a]){var = b=3Dc.body,d=3Df("<"+a+">").appendTo(b),e=3Dd.css("display");d.remove();i= f(e=3D=3D=3D"none"||e=3D=3D=3D""){cl||(cl=3Dc.createElement("iframe"),cl.= frameBorder=3Dcl.width=3Dcl.height=3D0),b.appendChild(cl);if(!cm||!cl.cre= ateElement)cm=3D(cl.contentWindow||cl.contentDocument).document,cm.write(= (c.compatMode=3D=3D=3D"CSS1Compat"?"<!doctype = html>":"")+"<html><body>"),cm.close();d=3Dcm.createElement(a),cm.body.app= endChild(d),e=3Df.css(d,"display"),b.removeChild(cl)}ck[a]=3De}return = ck[a]}function cu(a,b){var = c=3D{};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=3Da});= return c}function ct(){cr=3Db}function cs(){setTimeout(ct,0);return = cr=3Df.now()}function cj(){try{return new = a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return = new a.XMLHttpRequest}catch(b){}}function = cc(a,c){a.dataFilter&&(c=3Da.dataFilter(c,a.dataType));var = d=3Da.dataTypes,e=3D{},g,h,i=3Dd.length,j,k=3Dd[0],l,m,n,o,p;for(g=3D1;g<= i;g++){if(g=3D=3D=3D1)for(h in a.converters)typeof = h=3D=3D"string"&&(e[h.toLowerCase()]=3Da.converters[h]);l=3Dk,k=3Dd[g];if= (k=3D=3D=3D"*")k=3Dl;else if(l!=3D=3D"*"&&l!=3D=3Dk){m=3Dl+" = "+k,n=3De[m]||e["* "+k];if(!n){p=3Db;for(o in e){j=3Do.split(" = ");if(j[0]=3D=3D=3Dl||j[0]=3D=3D=3D"*"){p=3De[j[1]+" = "+k];if(p){o=3De[o],o=3D=3D=3D!0?n=3Dp:p=3D=3D=3D!0&&(n=3Do);break}}}}!n&= &!p&&f.error("No conversion from "+m.replace(" "," to = ")),n!=3D=3D!0&&(c=3Dn?n(c):p(o(c)))}}return c}function cb(a,c,d){var = e=3Da.contents,f=3Da.dataTypes,g=3Da.responseFields,h,i,j,k;for(i in g)i = in = d&&(c[g[i]]=3Dd[i]);while(f[0]=3D=3D=3D"*")f.shift(),h=3D=3D=3Db&&(h=3Da.= mimeType||c.getResponseHeader("content-type"));if(h)for(i in = e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in = d)j=3Df[0];else{for(i in d){if(!f[0]||a.converters[i+" = "+f[0]]){j=3Di;break}k||(k=3Di)}j=3Dj||k}if(j){j!=3D=3Df[0]&&f.unshift(j)= ;return d[j]}}function = ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):c= a(a+"["+(typeof e=3D=3D"object"||f.isArray(e)?b:"")+"]",e,c,d)});else = if(!c&&b!=3Dnull&&typeof b=3D=3D"object")for(var e in = b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var = d,e,g=3Df.ajaxSettings.flatOptions||{};for(d in = c)c[d]!=3D=3Db&&((g[d]?a:e||(e=3D{}))[d]=3Dc[d]);e&&f.extend(!0,a,e)}func= tion b$(a,c,d,e,f,g){f=3Df||c.dataTypes[0],g=3Dg||{},g[f]=3D!0;var = h=3Da[f],i=3D0,j=3Dh?h.length:0,k=3Da=3D=3D=3DbT,l;for(;i<j&&(k||!l);i++)= l=3Dh[i](c,d,e),typeof = l=3D=3D"string"&&(!k||g[l]?l=3Db:(c.dataTypes.unshift(l),l=3Db$(a,c,d,e,l= ,g)));(k||!l)&&!g["*"]&&(l=3Db$(a,c,d,e,"*",g));return l}function = bZ(a){return function(b,c){typeof = b!=3D"string"&&(c=3Db,b=3D"*");if(f.isFunction(c)){var = d=3Db.toLowerCase().split(bP),e=3D0,g=3Dd.length,h,i,j;for(;e<g;e++)h=3Dd= [e],j=3D/^\+/.test(h),j&&(h=3Dh.substr(1)||"*"),i=3Da[h]=3Da[h]||[],i[j?"= unshift":"push"](c)}}}function bC(a,b,c){var = d=3Db=3D=3D=3D"width"?a.offsetWidth:a.offsetHeight,e=3Db=3D=3D=3D"width"?= bx:by,g=3D0,h=3De.length;if(d>0){if(c!=3D=3D"border")for(;g<h;g++)c||(d-=3D= parseFloat(f.css(a,"padding"+e[g]))||0),c=3D=3D=3D"margin"?d+=3DparseFloa= t(f.css(a,c+e[g]))||0:d-=3DparseFloat(f.css(a,"border"+e[g]+"Width"))||0;= return = d+"px"}d=3Dbz(a,b,b);if(d<0||d=3D=3Dnull)d=3Da.style[b]||0;d=3DparseFloat= (d)||0;if(c)for(;g<h;g++)d+=3DparseFloat(f.css(a,"padding"+e[g]))||0,c!=3D= =3D"padding"&&(d+=3DparseFloat(f.css(a,"border"+e[g]+"Width"))||0),c=3D=3D= =3D"margin"&&(d+=3DparseFloat(f.css(a,c+e[g]))||0);return = d+"px"}function = bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval= ((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentN= ode&&b.parentNode.removeChild(b)}function bo(a){var = b=3Dc.createElement("div");bh.appendChild(b),b.innerHTML=3Da.outerHTML;re= turn b.firstChild}function bn(a){var = b=3D(a.nodeName||"").toLowerCase();b=3D=3D=3D"input"?bm(a):b!=3D=3D"scrip= t"&&typeof = a.getElementsByTagName!=3D"undefined"&&f.grep(a.getElementsByTagName("inp= ut"),bm)}function = bm(a){if(a.type=3D=3D=3D"checkbox"||a.type=3D=3D=3D"radio")a.defaultCheck= ed=3Da.checked}function bl(a){return typeof = a.getElementsByTagName!=3D"undefined"?a.getElementsByTagName("*"):typeof = a.querySelectorAll!=3D"undefined"?a.querySelectorAll("*"):[]}function = bk(a,b){var = c;if(b.nodeType=3D=3D=3D1){b.clearAttributes&&b.clearAttributes(),b.merge= Attributes&&b.mergeAttributes(a),c=3Db.nodeName.toLowerCase();if(c=3D=3D=3D= "object")b.outerHTML=3Da.outerHTML;else = if(c!=3D=3D"input"||a.type!=3D=3D"checkbox"&&a.type!=3D=3D"radio"){if(c=3D= =3D=3D"option")b.selected=3Da.defaultSelected;else = if(c=3D=3D=3D"input"||c=3D=3D=3D"textarea")b.defaultValue=3Da.defaultValu= e}else = a.checked&&(b.defaultChecked=3Db.checked=3Da.checked),b.value!=3D=3Da.val= ue&&(b.value=3Da.value);b.removeAttribute(f.expando)}}function = bj(a,b){if(b.nodeType=3D=3D=3D1&&!!f.hasData(a)){var = c,d,e,g=3Df._data(a),h=3Df._data(b,g),i=3Dg.events;if(i){delete = h.handle,h.events=3D{};for(c in = i)for(d=3D0,e=3Di[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".= ":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=3Df.extend(= {},h.data))}}function bi(a,b){return = f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a= .ownerDocument.createElement("tbody")):a}function U(a){var = b=3DV.split("|"),c=3Da.createDocumentFragment();if(c.createElement)while(= b.length)c.createElement(b.pop());return c}function = T(a,b,c){b=3Db||0;if(f.isFunction(b))return f.grep(a,function(a,d){var = e=3D!!b.call(a,d,a);return e=3D=3D=3Dc});if(b.nodeType)return = f.grep(a,function(a,d){return a=3D=3D=3Db=3D=3D=3Dc});if(typeof = b=3D=3D"string"){var d=3Df.grep(a,function(a){return = a.nodeType=3D=3D=3D1});if(O.test(b))return = f.filter(b,d,!c);b=3Df.filter(b,d)}return f.grep(a,function(a,d){return = f.inArray(a,b)>=3D0=3D=3D=3Dc})}function = S(a){return!a||!a.parentNode||a.parentNode.nodeType=3D=3D=3D11}function = K(){return!0}function J(){return!1}function n(a,b,c){var = d=3Db+"defer",e=3Db+"queue",g=3Db+"mark",h=3Df._data(a,d);h&&(c=3D=3D=3D"= queue"||!f._data(a,e))&&(c=3D=3D=3D"mark"||!f._data(a,g))&&setTimeout(fun= ction(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)= }function m(a){for(var b in = a){if(b=3D=3D=3D"data"&&f.isEmptyObject(a[b]))continue;if(b!=3D=3D"toJSON= ")return!1}return!0}function = l(a,c,d){if(d=3D=3D=3Db&&a.nodeType=3D=3D=3D1){var = e=3D"data-"+c.replace(k,"-$1").toLowerCase();d=3Da.getAttribute(e);if(typ= eof = d=3D=3D"string"){try{d=3Dd=3D=3D=3D"true"?!0:d=3D=3D=3D"false"?!1:d=3D=3D= =3D"null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}ca= tch(g){}f.data(a,c,d)}else d=3Db}return d}function h(a){var = b=3Dg[a]=3D{},c,d;a=3Da.split(/\s+/);for(c=3D0,d=3Da.length;c<d;c++)b[a[c= ]]=3D!0;return b}var = c=3Da.document,d=3Da.navigator,e=3Da.location,f=3Dfunction(){function = J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTim= eout(J,1);return}e.ready()}}var e=3Dfunction(a,b){return new = e.fn.init(a,b,h)},f=3Da.jQuery,g=3Da.$,h,i=3D/^(?:[^#<]*(<[\w\W]+>)[^>]*$= |#([\w\-]*)$)/,j=3D/\S/,k=3D/^\s+/,l=3D/\s+$/,m=3D/^<(\w+)\s*\/?>(?:<\/\1= >)?$/,n=3D/^[\],:{}\s]*$/,o=3D/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=3D/= "[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=3D/(?= :^|:|,)(?:\s*\[)+/g,r=3D/(webkit)[ = \/]([\w.]+)/,s=3D/(opera)(?:.*version)?[ \/]([\w.]+)/,t=3D/(msie) = ([\w.]+)/,u=3D/(mozilla)(?:.*? = rv:([\w.]+))?/,v=3D/-([a-z]|[0-9])/ig,w=3D/^-ms-/,x=3Dfunction(a,b){retur= n(b+"").toUpperCase()},y=3Dd.userAgent,z,A,B,C=3DObject.prototype.toStrin= g,D=3DObject.prototype.hasOwnProperty,E=3DArray.prototype.push,F=3DArray.= prototype.slice,G=3DString.prototype.trim,H=3DArray.prototype.indexOf,I=3D= {};e.fn=3De.prototype=3D{constructor:e,init:function(a,d,f){var = g,h,j,k;if(!a)return = this;if(a.nodeType){this.context=3Dthis[0]=3Da,this.length=3D1;return = this}if(a=3D=3D=3D"body"&&!d&&c.body){this.context=3Dc,this[0]=3Dc.body,t= his.selector=3Da,this.length=3D1;return this}if(typeof = a=3D=3D"string"){a.charAt(0)!=3D=3D"<"||a.charAt(a.length-1)!=3D=3D">"||a= .length<3?g=3Di.exec(a):g=3D[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=3D= d instanceof = e?d[0]:d,k=3Dd?d.ownerDocument||d:c,j=3Dm.exec(a),j?e.isPlainObject(d)?(a= =3D[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=3D[k.createElement(j= [1])]:(j=3De.buildFragment([g[1]],[k]),a=3D(j.cacheable?e.clone(j.fragmen= t):j.fragment).childNodes);return = e.merge(this,a)}h=3Dc.getElementById(g[2]);if(h&&h.parentNode){if(h.id!=3D= =3Dg[2])return = f.find(a);this.length=3D1,this[0]=3Dh}this.context=3Dc,this.selector=3Da;= return = this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.i= sFunction(a))return = f.ready(a);a.selector!=3D=3Db&&(this.selector=3Da.selector,this.context=3D= a.context);return = e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){= return this.length},toArray:function(){return = F.call(this,0)},get:function(a){return = a=3D=3Dnull?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:fun= ction(a,b,c){var = d=3Dthis.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObjec= t=3Dthis,d.context=3Dthis.context,b=3D=3D=3D"find"?d.selector=3Dthis.sele= ctor+(this.selector?" = ":"")+c:b&&(d.selector=3Dthis.selector+"."+b+"("+c+")");return = d},each:function(a,b){return = e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return = this},eq:function(a){a=3D+a;return = a=3D=3D=3D-1?this.slice(a):this.slice(a,a+1)},first:function(){return = this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return = this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","= ))},map:function(a){return = this.pushStack(e.map(this,function(b,c){return = a.call(b,c,b)}))},end:function(){return = this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].sp= lice},e.fn.init.prototype=3De.fn,e.extend=3De.fn.extend=3Dfunction(){var = a,c,d,f,g,h,i=3Darguments[0]||{},j=3D1,k=3Darguments.length,l=3D!1;typeof= i=3D=3D"boolean"&&(l=3Di,i=3Darguments[1]||{},j=3D2),typeof = i!=3D"object"&&!e.isFunction(i)&&(i=3D{}),k=3D=3D=3Dj&&(i=3Dthis,--j);for= (;j<k;j++)if((a=3Darguments[j])!=3Dnull)for(c in = a){d=3Di[c],f=3Da[c];if(i=3D=3D=3Df)continue;l&&f&&(e.isPlainObject(f)||(= g=3De.isArray(f)))?(g?(g=3D!1,h=3Dd&&e.isArray(d)?d:[]):h=3Dd&&e.isPlainO= bject(d)?d:{},i[c]=3De.extend(l,h,f)):f!=3D=3Db&&(i[c]=3Df)}return = i},e.extend({noConflict:function(b){a.$=3D=3D=3De&&(a.$=3Dg),b&&a.jQuery=3D= =3D=3De&&(a.jQuery=3Df);return = e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!= 0)},ready:function(a){if(a=3D=3D=3D!0&&!--e.readyWait||a!=3D=3D!0&&!e.isR= eady){if(!c.body)return = setTimeout(e.ready,1);e.isReady=3D!0;if(a!=3D=3D!0&&--e.readyWait>0)retur= n;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bi= ndReady:function(){if(!A){A=3De.Callbacks("once = memory");if(c.readyState=3D=3D=3D"complete")return = setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMConten= tLoaded",B,!1),a.addEventListener("load",e.ready,!1);else = if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("on= load",e.ready);var = b=3D!1;try{b=3Da.frameElement=3D=3Dnull}catch(d){}c.documentElement.doScr= oll&&b&&J()}}},isFunction:function(a){return = e.type(a)=3D=3D=3D"function"},isArray:Array.isArray||function(a){return = e.type(a)=3D=3D=3D"array"},isWindow:function(a){return a&&typeof = a=3D=3D"object"&&"setInterval"in = a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:f= unction(a){return = a=3D=3Dnull?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){i= f(!a||e.type(a)!=3D=3D"object"||a.nodeType||e.isWindow(a))return!1;try{if= (a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype= ,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return = d=3D=3D=3Db||D.call(a,d)},isEmptyObject:function(a){for(var b in = a)return!1;return!0},error:function(a){throw new = Error(a)},parseJSON:function(b){if(typeof b!=3D"string"||!b)return = null;b=3De.trim(b);if(a.JSON&&a.JSON.parse)return = a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))= return(new Function("return "+b))();e.error("Invalid JSON: = "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=3Dnew = DOMParser,d=3Df.parseFromString(c,"text/xml")):(d=3Dnew = ActiveXObject("Microsoft.XMLDOM"),d.async=3D"false",d.loadXML(c))}catch(g= ){d=3Db}(!d||!d.documentElement||d.getElementsByTagName("parsererror").le= ngth)&&e.error("Invalid XML: "+c);return = d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||= function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return = a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return = a.nodeName&&a.nodeName.toUpperCase()=3D=3D=3Db.toUpperCase()},each:functi= on(a,c,d){var = f,g=3D0,h=3Da.length,i=3Dh=3D=3D=3Db||e.isFunction(a);if(d){if(i){for(f = in a)if(c.apply(a[f],d)=3D=3D=3D!1)break}else = for(;g<h;)if(c.apply(a[g++],d)=3D=3D=3D!1)break}else if(i){for(f in = a)if(c.call(a[f],f,a[f])=3D=3D=3D!1)break}else = for(;g<h;)if(c.call(a[g],g,a[g++])=3D=3D=3D!1)break;return = a},trim:G?function(a){return = a=3D=3Dnull?"":G.call(a)}:function(a){return = a=3D=3Dnull?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b= ){var c=3Db||[];if(a!=3Dnull){var = d=3De.type(a);a.length=3D=3Dnull||d=3D=3D=3D"string"||d=3D=3D=3D"function= "||d=3D=3D=3D"regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return = c},inArray:function(a,b,c){var d;if(b){if(H)return = H.call(b,a,c);d=3Db.length,c=3Dc?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(= c in b&&b[c]=3D=3D=3Da)return c}return-1},merge:function(a,c){var = d=3Da.length,e=3D0;if(typeof c.length=3D=3D"number")for(var = f=3Dc.length;e<f;e++)a[d++]=3Dc[e];else = while(c[e]!=3D=3Db)a[d++]=3Dc[e++];a.length=3Dd;return = a},grep:function(a,b,c){var d=3D[],e;c=3D!!c;for(var = f=3D0,g=3Da.length;f<g;f++)e=3D!!b(a[f],f),c!=3D=3De&&d.push(a[f]);return= d},map:function(a,c,d){var f,g,h=3D[],i=3D0,j=3Da.length,k=3Da = instanceof e||j!=3D=3Db&&typeof = j=3D=3D"number"&&(j>0&&a[0]&&a[j-1]||j=3D=3D=3D0||e.isArray(a));if(k)for(= ;i<j;i++)f=3Dc(a[i],i,d),f!=3Dnull&&(h[h.length]=3Df);else for(g in = a)f=3Dc(a[g],g,d),f!=3Dnull&&(h[h.length]=3Df);return = h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof = c=3D=3D"string"){var d=3Da[c];c=3Da,a=3Dd}if(!e.isFunction(a))return = b;var f=3DF.call(arguments,2),g=3Dfunction(){return = a.apply(c,f.concat(F.call(arguments)))};g.guid=3Da.guid=3Da.guid||g.guid|= |e.guid++;return g},access:function(a,c,d,f,g,h){var = i=3Da.length;if(typeof c=3D=3D"object"){for(var j in = c)e.access(a,j,c[j],f,g,d);return = a}if(d!=3D=3Db){f=3D!h&&f&&e.isFunction(d);for(var = k=3D0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return = i?g(a[0],c):b},now:function(){return(new = Date).getTime()},uaMatch:function(a){a=3Da.toLowerCase();var = b=3Dr.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)= ||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function = a(b,c){return new = a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=3Dthis,a.fn=3Da.prototype= =3Dthis(),a.fn.constructor=3Da,a.sub=3Dthis.sub,a.fn.init=3Dfunction(d,f)= {f&&f instanceof e&&!(f instanceof a)&&(f=3Da(f));return = e.fn.init.call(this,d,f,b)},a.fn.init.prototype=3Da.fn;var = b=3Da(c);return a},browser:{}}),e.each("Boolean Number String Function = Array Date RegExp Object".split(" "),function(a,b){I["[object = "+b+"]"]=3Db.toLowerCase()}),z=3De.uaMatch(y),z.browser&&(e.browser[z.bro= wser]=3D!0,e.browser.version=3Dz.version),e.browser.webkit&&(e.browser.sa= fari=3D!0),j.test("=C2=A0")&&(k=3D/^[\s\xA0]+/,l=3D/[\s\xA0]+$/),h=3De(c)= ,c.addEventListener?B=3Dfunction(){c.removeEventListener("DOMContentLoade= d",B,!1),e.ready()}:c.attachEvent&&(B=3Dfunction(){c.readyState=3D=3D=3D"= complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return = e}(),g=3D{};f.Callbacks=3Dfunction(a){a=3Da?g[a]||h(a):{};var = c=3D[],d=3D[],e,i,j,k,l,m=3Dfunction(b){var = d,e,g,h,i;for(d=3D0,e=3Db.length;d<e;d++)g=3Db[d],h=3Df.type(g),h=3D=3D=3D= "array"?m(g):h=3D=3D=3D"function"&&(!a.unique||!o.has(g))&&c.push(g)},n=3D= function(b,f){f=3Df||[],e=3D!a.memory||[b,f],i=3D!0,l=3Dj||0,j=3D0,k=3Dc.= length;for(;c&&l<k;l++)if(c[l].apply(b,f)=3D=3D=3D!1&&a.stopOnFalse){e=3D= !0;break}i=3D!1,c&&(a.once?e=3D=3D=3D!0?o.disable():c=3D[]:d&&d.length&&(= e=3Dd.shift(),o.fireWith(e[0],e[1])))},o=3D{add:function(){if(c){var = a=3Dc.length;m(arguments),i?k=3Dc.length:e&&e!=3D=3D!0&&(j=3Da,n(e[0],e[1= ]))}return this},remove:function(){if(c){var = b=3Darguments,d=3D0,e=3Db.length;for(;d<e;d++)for(var = f=3D0;f<c.length;f++)if(b[d]=3D=3D=3Dc[f]){i&&f<=3Dk&&(k--,f<=3Dl&&l--),c= .splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var = b=3D0,d=3Dc.length;for(;b<d;b++)if(a=3D=3D=3Dc[b])return!0}return!1},empt= y:function(){c=3D[];return this},disable:function(){c=3Dd=3De=3Db;return = this},disabled:function(){return!c},lock:function(){d=3Db,(!e||e=3D=3D=3D= !0)&&o.disable();return = this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.= push([b,c]):(!a.once||!e)&&n(b,c));return = this},fire:function(){o.fireWith(this,arguments);return = this},fired:function(){return!!e}};return o};var = i=3D[].slice;f.extend({Deferred:function(a){var b=3Df.Callbacks("once = memory"),c=3Df.Callbacks("once = memory"),d=3Df.Callbacks("memory"),e=3D"pending",g=3D{resolve:b,reject:c,= notify:d},h=3D{done:b.add,fail:c.add,progress:d.add,state:function(){retu= rn = e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).f= ail(b).progress(c);return = this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments)= ;return this},pipe:function(a,b,c){return = f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progr= ess:[c,"notify"]},function(a,b){var = c=3Db[0],e=3Db[1],g;f.isFunction(c)?i[a](function(){g=3Dc.apply(this,argu= ments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.n= otify):d[e+"With"](this=3D=3D=3Di?d:this,[g])}):i[a](d[e])})}).promise()}= ,promise:function(a){if(a=3D=3Dnull)a=3Dh;else for(var b in = h)a[b]=3Dh[b];return a}},i=3Dh.promise({}),j;for(j in = g)i[j]=3Dg[j].fire,i[j+"With"]=3Dg[j].fireWith;i.done(function(){e=3D"res= olved"},c.disable,d.lock).fail(function(){e=3D"rejected"},b.disable,d.loc= k),a&&a.call(i,i);return i},when:function(a){function m(a){return = function(b){e[a]=3Darguments.length>1?i.call(arguments,0):b,j.notifyWith(= k,e)}}function l(a){return = function(c){b[a]=3Darguments.length>1?i.call(arguments,0):c,--g||j.resolv= eWith(j,b)}}var = b=3Di.call(arguments,0),c=3D0,d=3Db.length,e=3DArray(d),g=3Dd,h=3Dd,j=3Dd= <=3D1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=3Dj.promise();if(d>1){= for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise(= ).then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else = j!=3D=3Da&&j.resolveWith(j,d?[a]:[]);return = k}}),f.support=3Dfunction(){var = b,d,e,g,h,i,j,k,l,m,n,o,p,q=3Dc.createElement("div"),r=3Dc.documentElemen= t;q.setAttribute("className","t"),q.innerHTML=3D" = <link/><table></table><a href=3D'/a' = style=3D'top:1px;float:left;opacity:.55;'>a</a><input = type=3D'checkbox'/>",d=3Dq.getElementsByTagName("*"),e=3Dq.getElementsByT= agName("a")[0];if(!d||!d.length||!e)return{};g=3Dc.createElement("select"= ),h=3Dg.appendChild(c.createElement("option")),i=3Dq.getElementsByTagName= ("input")[0],b=3D{leadingWhitespace:q.firstChild.nodeType=3D=3D=3D3,tbody= :!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByT= agName("link").length,style:/top/.test(e.getAttribute("style")),hrefNorma= lized:e.getAttribute("href")=3D=3D=3D"/a",opacity:/^0.55/.test(e.style.op= acity),cssFloat:!!e.style.cssFloat,checkOn:i.value=3D=3D=3D"on",optSelect= ed:h.selected,getSetAttribute:q.className!=3D=3D"t",enctype:!!c.createEle= ment("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).oute= rHTML!=3D=3D"<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubb= les:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkW= rapBlocks:!1,reliableMarginRight:!0},i.checked=3D!0,b.noCloneChecked=3Di.= cloneNode(!0).checked,g.disabled=3D!0,b.optDisabled=3D!h.disabled;try{del= ete = q.test}catch(s){b.deleteExpando=3D!1}!q.addEventListener&&q.attachEvent&&= q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=3D!1}),q.= cloneNode(!0).fireEvent("onclick")),i=3Dc.createElement("input"),i.value=3D= "t",i.setAttribute("type","radio"),b.radioValue=3Di.value=3D=3D=3D"t",i.s= etAttribute("checked","checked"),q.appendChild(i),k=3Dc.createDocumentFra= gment(),k.appendChild(q.lastChild),b.checkClone=3Dk.cloneNode(!0).cloneNo= de(!0).lastChild.checked,b.appendChecked=3Di.checked,k.removeChild(i),k.a= ppendChild(q),q.innerHTML=3D"",a.getComputedStyle&&(j=3Dc.createElement("= div"),j.style.width=3D"0",j.style.marginRight=3D"0",q.style.width=3D"2px"= ,q.appendChild(j),b.reliableMarginRight=3D(parseInt((a.getComputedStyle(j= ,null)||{marginRight:0}).marginRight,10)||0)=3D=3D=3D0);if(q.attachEvent)= for(o in{submit:1,change:1,focusin:1})n=3D"on"+o,p=3Dn in = q,p||(q.setAttribute(n,"return;"),p=3Dtypeof = q[n]=3D=3D"function"),b[o+"Bubbles"]=3Dp;k.removeChild(q),k=3Dg=3Dh=3Dj=3D= q=3Di=3Dnull,f(function(){var = a,d,e,g,h,i,j,k,m,n,o,r=3Dc.getElementsByTagName("body")[0];!r||(j=3D1,k=3D= "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m=3D"visi= bility:hidden;border:0;",n=3D"style=3D'"+k+"border:5px solid = #000;padding:0;'",o=3D"<div "+n+"><div></div></div>"+"<table "+n+" = cellpadding=3D'0' = cellspacing=3D'0'>"+"<tr><td></td></tr></table>",a=3Dc.createElement("div= "),a.style.cssText=3Dm+"width:0;height:0;position:static;top:0;margin-top= :"+j+"px",r.insertBefore(a,r.firstChild),q=3Dc.createElement("div"),a.app= endChild(q),q.innerHTML=3D"<table><tr><td = style=3D'padding:0;border:0;display:none'></td><td>t</td></tr></table>",l= =3Dq.getElementsByTagName("td"),p=3Dl[0].offsetHeight=3D=3D=3D0,l[0].styl= e.display=3D"",l[1].style.display=3D"none",b.reliableHiddenOffsets=3Dp&&l= [0].offsetHeight=3D=3D=3D0,q.innerHTML=3D"",q.style.width=3Dq.style.paddi= ngLeft=3D"1px",f.boxModel=3Db.boxModel=3Dq.offsetWidth=3D=3D=3D2,typeof = q.style.zoom!=3D"undefined"&&(q.style.display=3D"inline",q.style.zoom=3D1= ,b.inlineBlockNeedsLayout=3Dq.offsetWidth=3D=3D=3D2,q.style.display=3D"",= q.innerHTML=3D"<div = style=3D'width:4px;'></div>",b.shrinkWrapBlocks=3Dq.offsetWidth!=3D=3D2),= q.style.cssText=3Dk+m,q.innerHTML=3Do,d=3Dq.firstChild,e=3Dd.firstChild,h= =3Dd.nextSibling.firstChild.firstChild,i=3D{doesNotAddBorder:e.offsetTop!= =3D=3D5,doesAddBorderForTableAndCells:h.offsetTop=3D=3D=3D5},e.style.posi= tion=3D"fixed",e.style.top=3D"20px",i.fixedPosition=3De.offsetTop=3D=3D=3D= 20||e.offsetTop=3D=3D=3D15,e.style.position=3De.style.top=3D"",d.style.ov= erflow=3D"hidden",d.style.position=3D"relative",i.subtractsBorderForOverf= lowNotVisible=3De.offsetTop=3D=3D=3D-5,i.doesNotIncludeMarginInBodyOffset= =3Dr.offsetTop!=3D=3Dj,r.removeChild(a),q=3Da=3Dnull,f.extend(b,i))});ret= urn b}();var = j=3D/^(?:\{.*\}|\[.*\])$/,k=3D/([A-Z])/g;f.extend({cache:{},uuid:0,expand= o:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0= ,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:f= unction(a){a=3Da.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!= m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var = g,h,i,j=3Df.expando,k=3Dtypeof = c=3D=3D"string",l=3Da.nodeType,m=3Dl?f.cache:a,n=3Dl?a[j]:a[j]&&j,o=3Dc=3D= =3D=3D"events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d=3D=3D=3Db)return;= n||(l?a[j]=3Dn=3D++f.uuid:n=3Dj),m[n]||(m[n]=3D{},l||(m[n].toJSON=3Df.noo= p));if(typeof c=3D=3D"object"||typeof = c=3D=3D"function")e?m[n]=3Df.extend(m[n],c):m[n].data=3Df.extend(m[n].dat= a,c);g=3Dh=3Dm[n],e||(h.data||(h.data=3D{}),h=3Dh.data),d!=3D=3Db&&(h[f.c= amelCase(c)]=3Dd);if(o&&!h[c])return = g.events;k?(i=3Dh[c],i=3D=3Dnull&&(i=3Dh[f.camelCase(c)])):i=3Dh;return = i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var = d,e,g,h=3Df.expando,i=3Da.nodeType,j=3Di?f.cache:a,k=3Di?a[h]:h;if(!j[k])= return;if(b){d=3Dc?j[k]:j[k].data;if(d){f.isArray(b)||(b in = d?b=3D[b]:(b=3Df.camelCase(b),b in d?b=3D[b]:b=3Db.split(" = ")));for(e=3D0,g=3Db.length;e<g;e++)delete = d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete = j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?dele= te j[k]:j[k]=3Dnull,i&&(f.support.deleteExpando?delete = a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=3Dnull)}},_data:function= (a,b,c){return = f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var = b=3Df.noData[a.nodeName.toLowerCase()];if(b)return = b!=3D=3D!0&&a.getAttribute("classid")=3D=3D=3Db}return!0}}),f.fn.extend({= data:function(a,c){var d,e,g,h=3Dnull;if(typeof = a=3D=3D"undefined"){if(this.length){h=3Df.data(this[0]);if(this[0].nodeTy= pe=3D=3D=3D1&&!f._data(this[0],"parsedAttrs")){e=3Dthis[0].attributes;for= (var = i=3D0,j=3De.length;i<j;i++)g=3De[i].name,g.indexOf("data-")=3D=3D=3D0&&(g= =3Df.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsed= Attrs",!0)}}return h}if(typeof a=3D=3D"object")return = this.each(function(){f.data(this,a)});d=3Da.split("."),d[1]=3Dd[1]?"."+d[= 1]:"";if(c=3D=3D=3Db){h=3Dthis.triggerHandler("getData"+d[1]+"!",[d[0]]),= h=3D=3D=3Db&&this.length&&(h=3Df.data(this[0],a),h=3Dl(this[0],a,h));retu= rn h=3D=3D=3Db&&d[1]?this.data(d[0]):h}return this.each(function(){var = b=3Df(this),e=3D[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(th= is,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(= a){return = this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a= ,b){a&&(b=3D(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:f= unction(a,b,c){a!=3D=3D!0&&(c=3Db,b=3Da,a=3D!1);if(b){c=3Dc||"fx";var = d=3Dc+"mark",e=3Da?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b= ,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var = d;if(a){b=3D(b||"fx")+"queue",d=3Df._data(a,b),c&&(!d||f.isArray(c)?d=3Df= ._data(a,b,f.makeArray(c)):d.push(c));return = d||[]}},dequeue:function(a,b){b=3Db||"fx";var = c=3Df.queue(a,b),d=3Dc.shift(),e=3D{};d=3D=3D=3D"inprogress"&&(d=3Dc.shif= t()),d&&(b=3D=3D=3D"fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.= call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue = "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof= a!=3D"string"&&(c=3Da,a=3D"fx");if(c=3D=3D=3Db)return = f.queue(this[0],a);return this.each(function(){var = b=3Df.queue(this,a,c);a=3D=3D=3D"fx"&&b[0]!=3D=3D"inprogress"&&f.dequeue(= this,a)})},dequeue:function(a){return = this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=3Df.fx?f.= fx.speeds[a]||a:a,b=3Db||"fx";return this.queue(b,function(b,c){var = d=3DsetTimeout(b,a);c.stop=3Dfunction(){clearTimeout(d)}})},clearQueue:fu= nction(a){return this.queue(a||"fx",[])},promise:function(a,c){function = m(){--h||d.resolveWith(e,[e])}typeof = a!=3D"string"&&(c=3Da,a=3Db),a=3Da||"fx";var = d=3Df.Deferred(),e=3Dthis,g=3De.length,h=3D1,i=3Da+"defer",j=3Da+"queue",= k=3Da+"mark",l;while(g--)if(l=3Df.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)= ||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once = memory"),!0))h++,l.add(m);m();return d.promise()}});var = o=3D/[\n\t\r]/g,p=3D/\s+/,q=3D/\r/g,r=3D/^(?:button|input)$/i,s=3D/^(?:bu= tton|input|object|select|textarea)$/i,t=3D/^a(?:rea)?$/i,u=3D/^(?:autofoc= us|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|op= en|readonly|required|scoped|selected)$/i,v=3Df.support.getSetAttribute,w,= x,y;f.fn.extend({attr:function(a,b){return = f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return = this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return = f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=3Df.propFix[a]||a;= return this.each(function(){try{this[a]=3Db,delete = this[a]}catch(c){}})},addClass:function(a){var = b,c,d,e,g,h,i;if(f.isFunction(a))return = this.each(function(b){f(this).addClass(a.call(this,b,this.className))});i= f(a&&typeof = a=3D=3D"string"){b=3Da.split(p);for(c=3D0,d=3Dthis.length;c<d;c++){e=3Dth= is[c];if(e.nodeType=3D=3D=3D1)if(!e.className&&b.length=3D=3D=3D1)e.class= Name=3Da;else{g=3D" "+e.className+" = ";for(h=3D0,i=3Db.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=3Db[h]+" = ");e.className=3Df.trim(g)}}}return this},removeClass:function(a){var = c,d,e,g,h,i,j;if(f.isFunction(a))return = this.each(function(b){f(this).removeClass(a.call(this,b,this.className))}= );if(a&&typeof = a=3D=3D"string"||a=3D=3D=3Db){c=3D(a||"").split(p);for(d=3D0,e=3Dthis.len= gth;d<e;d++){g=3Dthis[d];if(g.nodeType=3D=3D=3D1&&g.className)if(a){h=3D(= " "+g.className+" ").replace(o," = ");for(i=3D0,j=3Dc.length;i<j;i++)h=3Dh.replace(" "+c[i]+" "," = ");g.className=3Df.trim(h)}else g.className=3D""}}return = this},toggleClass:function(a,b){var c=3Dtypeof a,d=3Dtypeof = b=3D=3D"boolean";if(f.isFunction(a))return = this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b)= ,b)});return this.each(function(){if(c=3D=3D=3D"string"){var = e,g=3D0,h=3Df(this),i=3Db,j=3Da.split(p);while(e=3Dj[g++])i=3Dd?i:!h.hasC= lass(e),h[i?"addClass":"removeClass"](e)}else = if(c=3D=3D=3D"undefined"||c=3D=3D=3D"boolean")this.className&&f._data(thi= s,"__className__",this.className),this.className=3Dthis.className||a=3D=3D= =3D!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var = b=3D" "+a+" = ",c=3D0,d=3Dthis.length;for(;c<d;c++)if(this[c].nodeType=3D=3D=3D1&&(" = "+this[c].className+" ").replace(o," = ").indexOf(b)>-1)return!0;return!1},val:function(a){var = c,d,e,g=3Dthis[0];{if(!!arguments.length){e=3Df.isFunction(a);return = this.each(function(d){var = g=3Df(this),h;if(this.nodeType=3D=3D=3D1){e?h=3Da.call(this,d,g.val()):h=3D= a,h=3D=3Dnull?h=3D"":typeof = h=3D=3D"number"?h+=3D"":f.isArray(h)&&(h=3Df.map(h,function(a){return = a=3D=3Dnull?"":a+""})),c=3Df.valHooks[this.nodeName.toLowerCase()]||f.val= Hooks[this.type];if(!c||!("set"in = c)||c.set(this,h,"value")=3D=3D=3Db)this.value=3Dh}})}if(g){c=3Df.valHook= s[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in = c&&(d=3Dc.get(g,"value"))!=3D=3Db)return d;d=3Dg.value;return typeof = d=3D=3D"string"?d.replace(q,""):d=3D=3Dnull?"":d}}}}),f.extend({valHooks:= {option:{get:function(a){var = b=3Da.attributes.value;return!b||b.specified?a.value:a.text}},select:{get= :function(a){var = b,c,d,e,g=3Da.selectedIndex,h=3D[],i=3Da.options,j=3Da.type=3D=3D=3D"sele= ct-one";if(g<0)return = null;c=3Dj?g:0,d=3Dj?g+1:i.length;for(;c<d;c++){e=3Di[c];if(e.selected&&(= f.support.optDisabled?!e.disabled:e.getAttribute("disabled")=3D=3D=3Dnull= )&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=3Df(= e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return = f(i[g]).val();return h},set:function(a,b){var = c=3Df.makeArray(b);f(a).find("option").each(function(){this.selected=3Df.= inArray(f(this).val(),c)>=3D0}),c.length||(a.selectedIndex=3D-1);return = c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,off= set:!0},attr:function(a,c,d,e){var = g,h,i,j=3Da.nodeType;if(!!a&&j!=3D=3D3&&j!=3D=3D8&&j!=3D=3D2){if(e&&c in = f.attrFn)return f(a)[c](d);if(typeof = a.getAttribute=3D=3D"undefined")return = f.prop(a,c,d);i=3Dj!=3D=3D1||!f.isXMLDoc(a),i&&(c=3Dc.toLowerCase(),h=3Df= .attrHooks[c]||(u.test(c)?x:w));if(d!=3D=3Db){if(d=3D=3D=3Dnull){f.remove= Attr(a,c);return}if(h&&"set"in h&&i&&(g=3Dh.set(a,d,c))!=3D=3Db)return = g;a.setAttribute(c,""+d);return d}if(h&&"get"in = h&&i&&(g=3Dh.get(a,c))!=3D=3Dnull)return g;g=3Da.getAttribute(c);return = g=3D=3D=3Dnull?b:g}},removeAttr:function(a,b){var = c,d,e,g,h=3D0;if(b&&a.nodeType=3D=3D=3D1){d=3Db.toLowerCase().split(p),g=3D= d.length;for(;h<g;h++)e=3Dd[h],e&&(c=3Df.propFix[e]||e,f.attr(a,e,""),a.r= emoveAttribute(v?e:c),u.test(e)&&c in = a&&(a[c]=3D!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName= )&&a.parentNode)f.error("type property can't be changed");else = if(!f.support.radioValue&&b=3D=3D=3D"radio"&&f.nodeName(a,"input")){var = c=3Da.value;a.setAttribute("type",b),c&&(a.value=3Dc);return = b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return = w.get(a,b);return b in = a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return = w.set(a,b,c);a.value=3Db}}},propFix:{tabindex:"tabIndex",readonly:"readOn= ly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing= :"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSp= an",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEdi= table"},prop:function(a,c,d){var = e,g,h,i=3Da.nodeType;if(!!a&&i!=3D=3D3&&i!=3D=3D8&&i!=3D=3D2){h=3Di!=3D=3D= 1||!f.isXMLDoc(a),h&&(c=3Df.propFix[c]||c,g=3Df.propHooks[c]);return = d!=3D=3Db?g&&"set"in g&&(e=3Dg.set(a,d,c))!=3D=3Db?e:a[c]=3Dd:g&&"get"in = g&&(e=3Dg.get(a,c))!=3D=3Dnull?e:a[c]}},propHooks:{tabIndex:{get:function= (a){var c=3Da.getAttributeNode("tabindex");return = c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName= )&&a.href?0:b}}}}),f.attrHooks.tabindex=3Df.propHooks.tabIndex,x=3D{get:f= unction(a,c){var d,e=3Df.prop(a,c);return e=3D=3D=3D!0||typeof = e!=3D"boolean"&&(d=3Da.getAttributeNode(c))&&d.nodeValue!=3D=3D!1?c.toLow= erCase():b},set:function(a,b,c){var = d;b=3D=3D=3D!1?f.removeAttr(a,c):(d=3Df.propFix[c]||c,d in = a&&(a[d]=3D!0),a.setAttribute(c,c.toLowerCase()));return = c}},v||(y=3D{name:!0,id:!0},w=3Df.valHooks.button=3D{get:function(a,c){va= r d;d=3Da.getAttributeNode(c);return = d&&(y[c]?d.nodeValue!=3D=3D"":d.specified)?d.nodeValue:b},set:function(a,= b,d){var = e=3Da.getAttributeNode(d);e||(e=3Dc.createAttribute(d),a.setAttributeNode= (e));return = e.nodeValue=3Db+""}},f.attrHooks.tabindex.set=3Dw.set,f.each(["width","he= ight"],function(a,b){f.attrHooks[b]=3Df.extend(f.attrHooks[b],{set:functi= on(a,c){if(c=3D=3D=3D""){a.setAttribute(b,"auto");return = c}}})}),f.attrHooks.contenteditable=3D{get:w.get,set:function(a,b,c){b=3D= =3D=3D""&&(b=3D"false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(= ["href","src","width","height"],function(a,c){f.attrHooks[c]=3Df.extend(f= .attrHooks[c],{get:function(a){var d=3Da.getAttribute(c,2);return = d=3D=3D=3Dnull?b:d}})}),f.support.style||(f.attrHooks.style=3D{get:functi= on(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return = a.style.cssText=3D""+b}}),f.support.optSelected||(f.propHooks.selected=3D= f.extend(f.propHooks.selected,{get:function(a){var = b=3Da.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedI= ndex);return = null}})),f.support.enctype||(f.propFix.enctype=3D"encoding"),f.support.ch= eckOn||f.each(["radio","checkbox"],function(){f.valHooks[this]=3D{get:fun= ction(a){return = a.getAttribute("value")=3D=3D=3Dnull?"on":a.value}}}),f.each(["radio","ch= eckbox"],function(){f.valHooks[this]=3Df.extend(f.valHooks[this],{set:fun= ction(a,b){if(f.isArray(b))return = a.checked=3Df.inArray(f(a).val(),b)>=3D0}})});var = z=3D/^(?:textarea|input|select)$/i,A=3D/^([^\.]*)?(?:\.(.+))?$/,B=3D/\bho= ver(\.\S+)?\b/,C=3D/^key/,D=3D/^(?:mouse|contextmenu)|click/,E=3D/^(?:foc= usinfocus|focusoutblur)$/,F=3D/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=3D= function(a){var = b=3DF.exec(a);b&&(b[1]=3D(b[1]||"").toLowerCase(),b[3]=3Db[3]&&new = RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=3Dfunction(a,b){var = c=3Da.attributes||{};return(!b[1]||a.nodeName.toLowerCase()=3D=3D=3Db[1])= &&(!b[2]||(c.id||{}).value=3D=3D=3Db[2])&&(!b[3]||b[3].test((c["class"]||= {}).value))},I=3Dfunction(a){return = f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};=0A= f.event=3D{add:function(a,c,d,e,g){var = h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType=3D=3D=3D3||a.nodeType=3D=3D=3D8||= !c||!d||!(h=3Df._data(a)))){d.handler&&(p=3Dd,d=3Dp.handler),d.guid||(d.g= uid=3Df.guid++),j=3Dh.events,j||(h.events=3Dj=3D{}),i=3Dh.handle,i||(h.ha= ndle=3Di=3Dfunction(a){return typeof = f!=3D"undefined"&&(!a||f.event.triggered!=3D=3Da.type)?f.event.dispatch.a= pply(i.elem,arguments):b},i.elem=3Da),c=3Df.trim(I(c)).split(" = ");for(k=3D0;k<c.length;k++){l=3DA.exec(c[k])||[],m=3Dl[1],n=3D(l[2]||"")= .split(".").sort(),s=3Df.event.special[m]||{},m=3D(g?s.delegateType:s.bin= dType)||m,s=3Df.event.special[m]||{},o=3Df.extend({type:m,origType:l[1],d= ata:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},= p),r=3Dj[m];if(!r){r=3Dj[m]=3D[],r.delegateCount=3D0;if(!s.setup||s.setup= .call(a,e,n,i)=3D=3D=3D!1)a.addEventListener?a.addEventListener(m,i,!1):a= .attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.g= uid||(o.handler.guid=3Dd.guid)),g?r.splice(r.delegateCount++,0,o):r.push(= o),f.event.global[m]=3D!0}a=3Dnull}},global:{},remove:function(a,b,c,d,e)= {var = g=3Df.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=3Dg.eve= nts)){b=3Df.trim(I(b||"")).split(" = ");for(h=3D0;h<b.length;h++){i=3DA.exec(b[h])||[],j=3Dk=3Di[1],l=3Di[2];i= f(!j){for(j in = o)f.event.remove(a,j+b[h],c,d,!0);continue}p=3Df.event.special[j]||{},j=3D= (d?p.delegateType:p.bindType)||j,r=3Do[j]||[],m=3Dr.length,l=3Dl?new = RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):nul= l;for(n=3D0;n<r.length;n++)s=3Dr[n],(e||k=3D=3D=3Ds.origType)&&(!c||c.gui= d=3D=3D=3Ds.guid)&&(!l||l.test(s.namespace))&&(!d||d=3D=3D=3Ds.selector||= d=3D=3D=3D"**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount= --,p.remove&&p.remove.call(a,s));r.length=3D=3D=3D0&&m!=3D=3Dr.length&&((= !p.teardown||p.teardown.call(a,l)=3D=3D=3D!1)&&f.removeEvent(a,j,g.handle= ),delete = o[j])}f.isEmptyObject(o)&&(q=3Dg.handle,q&&(q.elem=3Dnull),f.removeData(a= ,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData= :!0},trigger:function(c,d,e,g){if(!e||e.nodeType!=3D=3D3&&e.nodeType!=3D=3D= 8){var = h=3Dc.type||c,i=3D[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))r= eturn;h.indexOf("!")>=3D0&&(h=3Dh.slice(0,-1),k=3D!0),h.indexOf(".")>=3D0= &&(i=3Dh.split("."),h=3Di.shift(),i.sort());if((!e||f.event.customEvent[h= ])&&!f.event.global[h])return;c=3Dtypeof = c=3D=3D"object"?c[f.expando]?c:new f.Event(h,c):new = f.Event(h),c.type=3Dh,c.isTrigger=3D!0,c.exclusive=3Dk,c.namespace=3Di.jo= in("."),c.namespace_re=3Dc.namespace?new = RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=3Dh.indexOf(":= ")<0?"on"+h:"";if(!e){j=3Df.cache;for(l in = j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);r= eturn}c.result=3Db,c.target||(c.target=3De),d=3Dd!=3Dnull?f.makeArray(d):= [],d.unshift(c),p=3Df.event.special[h]||{};if(p.trigger&&p.trigger.apply(= e,d)=3D=3D=3D!1)return;r=3D[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isW= indow(e)){s=3Dp.delegateType||h,m=3DE.test(s+h)?e:e.parentNode,n=3Dnull;f= or(;m;m=3Dm.parentNode)r.push([m,s]),n=3Dm;n&&n=3D=3D=3De.ownerDocument&&= r.push([n.defaultView||n.parentWindow||a,s])}for(l=3D0;l<r.length&&!c.isP= ropagationStopped();l++)m=3Dr[l][0],c.type=3Dr[l][1],q=3D(f._data(m,"even= ts")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=3Do&&m[o],q&&f.a= cceptData(m)&&q.apply(m,d)=3D=3D=3D!1&&c.preventDefault();c.type=3Dh,!g&&= !c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d= )=3D=3D=3D!1)&&(h!=3D=3D"click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&= &e[h]&&(h!=3D=3D"focus"&&h!=3D=3D"blur"||c.target.offsetWidth!=3D=3D0)&&!= f.isWindow(e)&&(n=3De[o],n&&(e[o]=3Dnull),f.event.triggered=3Dh,e[h](),f.= event.triggered=3Db,n&&(e[o]=3Dn));return = c.result}},dispatch:function(c){c=3Df.event.fix(c||a.event);var = d=3D(f._data(this,"events")||{})[c.type]||[],e=3Dd.delegateCount,g=3D[].s= lice.call(arguments,0),h=3D!c.exclusive&&!c.namespace,i=3D[],j,k,l,m,n,o,= p,q,r,s,t;g[0]=3Dc,c.delegateTarget=3Dthis;if(e&&!c.target.disabled&&(!c.= button||c.type!=3D=3D"click")){m=3Df(this),m.context=3Dthis.ownerDocument= ||this;for(l=3Dc.target;l!=3Dthis;l=3Dl.parentNode||this){o=3D{},q=3D[],m= [0]=3Dl;for(j=3D0;j<e;j++)r=3Dd[j],s=3Dr.selector,o[s]=3D=3D=3Db&&(o[s]=3D= r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,ma= tches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=3D0;j= <i.length&&!c.isPropagationStopped();j++){p=3Di[j],c.currentTarget=3Dp.el= em;for(k=3D0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){= r=3Dp.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.name= space_re.test(r.namespace))c.data=3Dr.data,c.handleObj=3Dr,n=3D((f.event.= special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!=3D=3Db&&(c= .result=3Dn,n=3D=3D=3D!1&&(c.preventDefault(),c.stopPropagation()))}}retu= rn c.result},props:"attrChange attrName relatedNode srcElement altKey = bubbles cancelable ctrlKey currentTarget eventPhase metaKey = relatedTarget shiftKey target timeStamp view which".split(" = "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" = "),filter:function(a,b){a.which=3D=3Dnull&&(a.which=3Db.charCode!=3Dnull?= b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons = clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY = toElement".split(" "),filter:function(a,d){var = e,f,g,h=3Dd.button,i=3Dd.fromElement;a.pageX=3D=3Dnull&&d.clientX!=3Dnull= &&(e=3Da.target.ownerDocument||c,f=3De.documentElement,g=3De.body,a.pageX= =3Dd.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g= .clientLeft||0),a.pageY=3Dd.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(= f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget= =3Di=3D=3D=3Da.target?d.toElement:i),!a.which&&h!=3D=3Db&&(a.which=3Dh&1?= 1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var = d,e,g=3Da,h=3Df.event.fixHooks[a.type]||{},i=3Dh.props?this.props.concat(= h.props):this.props;a=3Df.Event(g);for(d=3Di.length;d;)e=3Di[--d],a[e]=3D= g[e];a.target||(a.target=3Dg.srcElement||c),a.target.nodeType=3D=3D=3D3&&= (a.target=3Da.target.parentNode),a.metaKey=3D=3D=3Db&&(a.metaKey=3Da.ctrl= Key);return = h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubb= le:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},befo= reunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=3D= c)},teardown:function(a,b){this.onbeforeunload=3D=3D=3Db&&(this.onbeforeu= nload=3Dnull)}}},simulate:function(a,b,c,d){var e=3Df.extend(new = f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,n= ull,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefaul= t()}},f.event.handle=3Df.event.dispatch,f.removeEvent=3Dc.removeEventList= ener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)= }:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=3Dfunct= ion(a,b){if(!(this instanceof f.Event))return new = f.Event(a,b);a&&a.type?(this.originalEvent=3Da,this.type=3Da.type,this.is= DefaultPrevented=3Da.defaultPrevented||a.returnValue=3D=3D=3D!1||a.getPre= ventDefault&&a.getPreventDefault()?K:J):this.type=3Da,b&&f.extend(this,b)= ,this.timeStamp=3Da&&a.timeStamp||f.now(),this[f.expando]=3D!0},f.Event.p= rototype=3D{preventDefault:function(){this.isDefaultPrevented=3DK;var = a=3Dthis.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnV= alue=3D!1)},stopPropagation:function(){this.isPropagationStopped=3DK;var = a=3Dthis.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.canc= elBubble=3D!0)},stopImmediatePropagation:function(){this.isImmediatePropa= gationStopped=3DK,this.stopPropagation()},isDefaultPrevented:J,isPropagat= ionStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseov= er",mouseleave:"mouseout"},function(a,b){f.event.special[a]=3D{delegateTy= pe:b,bindType:b,handle:function(a){var = c=3Dthis,d=3Da.relatedTarget,e=3Da.handleObj,g=3De.selector,h;if(!d||d!=3D= =3Dc&&!f.contains(c,d))a.type=3De.origType,h=3De.handler.apply(this,argum= ents),a.type=3Db;return = h}}}),f.support.submitBubbles||(f.event.special.submit=3D{setup:function(= ){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit = keypress._submit",function(a){var = c=3Da.target,d=3Df.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d= &&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.p= arentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}= ),d._submit_attached=3D!0)})},teardown:function(){if(f.nodeName(this,"for= m"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||= (f.event.special.change=3D{setup:function(){if(z.test(this.nodeName)){if(= this.type=3D=3D=3D"checkbox"||this.type=3D=3D=3D"radio")f.event.add(this,= "propertychange._change",function(a){a.originalEvent.propertyName=3D=3D=3D= "checked"&&(this._just_changed=3D!0)}),f.event.add(this,"click._change",f= unction(a){this._just_changed&&!a.isTrigger&&(this._just_changed=3D!1,f.e= vent.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeact= ivate._change",function(a){var = b=3Da.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"cha= nge._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f= .event.simulate("change",this.parentNode,a,!0)}),b._change_attached=3D!0)= })},handle:function(a){var = b=3Da.target;if(this!=3D=3Db||a.isSimulated||a.isTrigger||b.type!=3D=3D"r= adio"&&b.type!=3D=3D"checkbox")return = a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.re= move(this,"._change");return = z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin= ",blur:"focusout"},function(a,b){var = d=3D0,e=3Dfunction(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.e= vent.special[b]=3D{setup:function(){d++=3D=3D=3D0&&c.addEventListener(a,e= ,!0)},teardown:function(){--d=3D=3D=3D0&&c.removeEventListener(a,e,!0)}}}= ),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof = a=3D=3D"object"){typeof c!=3D"string"&&(d=3Dc,c=3Db);for(i in = a)this.on(i,c,d,a[i],g);return = this}d=3D=3Dnull&&e=3D=3Dnull?(e=3Dc,d=3Dc=3Db):e=3D=3Dnull&&(typeof = c=3D=3D"string"?(e=3Dd,d=3Db):(e=3Dd,d=3Dc,c=3Db));if(e=3D=3D=3D!1)e=3DJ;= else if(!e)return = this;g=3D=3D=3D1&&(h=3De,e=3Dfunction(a){f().off(a);return = h.apply(this,arguments)},e.guid=3Dh.guid||(h.guid=3Df.guid++));return = this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){r= eturn = this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&= &a.handleObj){var = e=3Da.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespac= e:e.type,e.selector,e.handler);return this}if(typeof = a=3D=3D"object"){for(var g in a)this.off(g,c,a[g]);return = this}if(c=3D=3D=3D!1||typeof = c=3D=3D"function")d=3Dc,c=3Db;d=3D=3D=3D!1&&(d=3DJ);return = this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){r= eturn this.on(a,null,b,c)},unbind:function(a,b){return = this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.select= or,b,c);return = this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);retu= rn this},delegate:function(a,b,c,d){return = this.on(b,a,c,d)},undelegate:function(a,b,c){return = arguments.length=3D=3D1?this.off(a,"**"):this.off(b,a,c)},trigger:functio= n(a,b){return = this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function= (a,b){if(this[0])return = f.event.trigger(a,b,this[0],!0)},toggle:function(a){var = b=3Darguments,c=3Da.guid||f.guid++,d=3D0,e=3Dfunction(c){var = e=3D(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.= guid,e+1),c.preventDefault();return = b[e].apply(this,arguments)||!1};e.guid=3Dc;while(d<b.length)b[d++].guid=3D= c;return this.click(e)},hover:function(a,b){return = this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin = focusout load resize scroll unload click dblclick mousedown mouseup = mousemove mouseover mouseout mouseenter mouseleave change select submit = keydown keypress keyup error contextmenu".split(" = "),function(a,b){f.fn[b]=3Dfunction(a,c){c=3D=3Dnull&&(c=3Da,a=3Dnull);re= turn = arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attr= Fn[b]=3D!0),C.test(b)&&(f.event.fixHooks[b]=3Df.event.keyHooks),D.test(b)= &&(f.event.fixHooks[b]=3Df.event.mouseHooks)}),function(){function = x(a,b,c,e,f,g){for(var h=3D0,i=3De.length;h<i;h++){var = j=3De[h];if(j){var = k=3D!1;j=3Dj[a];while(j){if(j[d]=3D=3D=3Dc){k=3De[j.sizset];break}if(j.no= deType=3D=3D=3D1){g||(j[d]=3Dc,j.sizset=3Dh);if(typeof = b!=3D"string"){if(j=3D=3D=3Db){k=3D!0;break}}else = if(m.filter(b,[j]).length>0){k=3Dj;break}}j=3Dj[a]}e[h]=3Dk}}}function = w(a,b,c,e,f,g){for(var h=3D0,i=3De.length;h<i;h++){var = j=3De[h];if(j){var = k=3D!1;j=3Dj[a];while(j){if(j[d]=3D=3D=3Dc){k=3De[j.sizset];break}j.nodeT= ype=3D=3D=3D1&&!g&&(j[d]=3Dc,j.sizset=3Dh);if(j.nodeName.toLowerCase()=3D= =3D=3Db){k=3Dj;break}j=3Dj[a]}e[h]=3Dk}}}var = a=3D/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[= \]'"]+)+\]|\\.|[^ = >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=3D"sizcache"+(Math.rando= m()+"").replace(".",""),e=3D0,g=3DObject.prototype.toString,h=3D!1,i=3D!0= ,j=3D/\\/g,k=3D/\r\n/g,l=3D/\W/;[0,0].sort(function(){i=3D!1;return = 0});var m=3Dfunction(b,d,e,f){e=3De||[],d=3Dd||c;var = h=3Dd;if(d.nodeType!=3D=3D1&&d.nodeType!=3D=3D9)return[];if(!b||typeof = b!=3D"string")return e;var = i,j,k,l,n,q,r,t,u=3D!0,v=3Dm.isXML(d),w=3D[],x=3Db;do{a.exec(""),i=3Da.ex= ec(x);if(i){x=3Di[3],w.push(i[1]);if(i[2]){l=3Di[3];break}}}while(i);if(w= .length>1&&p.exec(b))if(w.length=3D=3D=3D2&&o.relative[w[0]])j=3Dy(w[0]+w= [1],d,f);else{j=3Do.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=3D= w.shift(),o.relative[b]&&(b+=3Dw.shift()),j=3Dy(b,j,f)}else{!f&&w.length>= 1&&d.nodeType=3D=3D=3D9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.= length-1])&&(n=3Dm.find(w.shift(),d,v),d=3Dn.expr?m.filter(n.expr,n.set)[= 0]:n.set[0]);if(d){n=3Df?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length=3D= =3D=3D1&&(w[0]=3D=3D=3D"~"||w[0]=3D=3D=3D"+")&&d.parentNode?d.parentNode:= d,v),j=3Dn.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=3Ds(j):u=3D!1;w= hile(w.length)q=3Dw.pop(),r=3Dq,o.relative[q]?r=3Dw.pop():q=3D"",r=3D=3Dn= ull&&(r=3Dd),o.relative[q](k,r,v)}else = k=3Dw=3D[]}k||(k=3Dj),k||m.error(q||b);if(g.call(k)=3D=3D=3D"[object = Array]")if(!u)e.push.apply(e,k);else = if(d&&d.nodeType=3D=3D=3D1)for(t=3D0;k[t]!=3Dnull;t++)k[t]&&(k[t]=3D=3D=3D= !0||k[t].nodeType=3D=3D=3D1&&m.contains(d,k[t]))&&e.push(j[t]);else = for(t=3D0;k[t]!=3Dnull;t++)k[t]&&k[t].nodeType=3D=3D=3D1&&e.push(j[t]);el= se s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return = e};m.uniqueSort=3Dfunction(a){if(u){h=3Di,a.sort(u);if(h)for(var = b=3D1;b<a.length;b++)a[b]=3D=3D=3Da[b-1]&&a.splice(b--,1)}return = a},m.matches=3Dfunction(a,b){return = m(a,null,null,b)},m.matchesSelector=3Dfunction(a,b){return = m(b,null,null,[a]).length>0},m.find=3Dfunction(a,b,c){var = d,e,f,g,h,i;if(!a)return[];for(e=3D0,f=3Do.order.length;e<f;e++){h=3Do.or= der[e];if(g=3Do.leftMatch[h].exec(a)){i=3Dg[1],g.splice(1,1);if(i.substr(= i.length-1)!=3D=3D"\\"){g[1]=3D(g[1]||"").replace(j,""),d=3Do.find[h](g,b= ,c);if(d!=3Dnull){a=3Da.replace(o.match[h],"");break}}}}d||(d=3Dtypeof = b.getElementsByTagName!=3D"undefined"?b.getElementsByTagName("*"):[]);ret= urn{set:d,expr:a}},m.filter=3Dfunction(a,c,d,e){var = f,g,h,i,j,k,l,n,p,q=3Da,r=3D[],s=3Dc,t=3Dc&&c[0]&&m.isXML(c[0]);while(a&&= c.length){for(h in = o.filter)if((f=3Do.leftMatch[h].exec(a))!=3Dnull&&f[2]){k=3Do.filter[h],l= =3Df[1],g=3D!1,f.splice(1,1);if(l.substr(l.length-1)=3D=3D=3D"\\")continu= e;s=3D=3D=3Dr&&(r=3D[]);if(o.preFilter[h]){f=3Do.preFilter[h](f,s,d,r,e,t= );if(!f)g=3Di=3D!0;else = if(f=3D=3D=3D!0)continue}if(f)for(n=3D0;(j=3Ds[n])!=3Dnull;n++)j&&(i=3Dk(= j,f,n,s),p=3De^i,d&&i!=3Dnull?p?g=3D!0:s[n]=3D!1:p&&(r.push(j),g=3D!0));i= f(i!=3D=3Db){d||(s=3Dr),a=3Da.replace(o.match[h],"");if(!g)return[];break= }}if(a=3D=3D=3Dq)if(g=3D=3Dnull)m.error(a);else break;q=3Da}return = s},m.error=3Dfunction(a){throw new Error("Syntax error, unrecognized = expression: "+a)};var n=3Dm.getText=3Dfunction(a){var = b,c,d=3Da.nodeType,e=3D"";if(d){if(d=3D=3D=3D1||d=3D=3D=3D9){if(typeof = a.textContent=3D=3D"string")return a.textContent;if(typeof = a.innerText=3D=3D"string")return = a.innerText.replace(k,"");for(a=3Da.firstChild;a;a=3Da.nextSibling)e+=3Dn= (a)}else if(d=3D=3D=3D3||d=3D=3D=3D4)return a.nodeValue}else = for(b=3D0;c=3Da[b];b++)c.nodeType!=3D=3D8&&(e+=3Dn(c));return = e},o=3Dm.selectors=3D{order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0= -\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=3D= ['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFF= FF\-]|\\.)+)\s*(?:(\S?=3D)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\= \.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth= |last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\= -]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\)= )?(?=3D[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\= ([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","= for":"htmlFor"},attrHandle:{href:function(a){return = a.getAttribute("href")},type:function(a){return = a.getAttribute("type")}},relative:{"+":function(a,b){var c=3Dtypeof = b=3D=3D"string",d=3Dc&&!l.test(b),e=3Dc&&!d;d&&(b=3Db.toLowerCase());for(= var = f=3D0,g=3Da.length,h;f<g;f++)if(h=3Da[f]){while((h=3Dh.previousSibling)&&= h.nodeType!=3D=3D1);a[f]=3De||h&&h.nodeName.toLowerCase()=3D=3D=3Db?h||!1= :h=3D=3D=3Db}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=3Dtypeof = b=3D=3D"string",e=3D0,f=3Da.length;if(d&&!l.test(b)){b=3Db.toLowerCase();= for(;e<f;e++){c=3Da[e];if(c){var = g=3Dc.parentNode;a[e]=3Dg.nodeName.toLowerCase()=3D=3D=3Db?g:!1}}}else{fo= r(;e<f;e++)c=3Da[e],c&&(a[e]=3Dd?c.parentNode:c.parentNode=3D=3D=3Db);d&&= m.filter(b,a,!0)}},"":function(a,b,c){var d,f=3De++,g=3Dx;typeof = b=3D=3D"string"&&!l.test(b)&&(b=3Db.toLowerCase(),d=3Db,g=3Dw),g("parentN= ode",b,f,a,d,c)},"~":function(a,b,c){var d,f=3De++,g=3Dx;typeof = b=3D=3D"string"&&!l.test(b)&&(b=3Db.toLowerCase(),d=3Db,g=3Dw),g("previou= sSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof = b.getElementById!=3D"undefined"&&!c){var = d=3Db.getElementById(a[1]);return = d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof = b.getElementsByName!=3D"undefined"){var = c=3D[],d=3Db.getElementsByName(a[1]);for(var = e=3D0,f=3Dd.length;e<f;e++)d[e].getAttribute("name")=3D=3D=3Da[1]&&c.push= (d[e]);return c.length=3D=3D=3D0?null:c}},TAG:function(a,b){if(typeof = b.getElementsByTagName!=3D"undefined")return = b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=3D= " "+a[1].replace(j,"")+" ";if(f)return a;for(var = g=3D0,h;(h=3Db[g])!=3Dnull;g++)h&&(e^(h.className&&(" "+h.className+" = ").replace(/[\t\n\r]/g," = ").indexOf(a)>=3D0)?c||d.push(h):c&&(b[g]=3D!1));return!1},ID:function(a)= {return a[1].replace(j,"")},TAG:function(a,b){return = a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]=3D=3D=3D"nth"= ){a[2]||m.error(a[0]),a[2]=3Da[2].replace(/^\+|\s*/g,"");var = b=3D/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]=3D=3D=3D"even"&&"2n"||a[2]=3D=3D= =3D"odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=3Db[1]+(b[2]||= 1)-0,a[3]=3Db[3]-0}else a[2]&&m.error(a[0]);a[0]=3De++;return = a},ATTR:function(a,b,c,d,e,f){var = g=3Da[1]=3Da[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=3Do.attrMap[g]),a[4= ]=3D(a[4]||a[5]||"").replace(j,""),a[2]=3D=3D=3D"~=3D"&&(a[4]=3D" = "+a[4]+" ");return = a},PSEUDO:function(b,c,d,e,f){if(b[1]=3D=3D=3D"not")if((a.exec(b[3])||"")= .length>1||/^\w/.test(b[3]))b[3]=3Dm(b[3],null,null,c);else{var = g=3Dm.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else = if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return = b},POS:function(a){a.unshift(!0);return = a}},filters:{enabled:function(a){return = a.disabled=3D=3D=3D!1&&a.type!=3D=3D"hidden"},disabled:function(a){return= a.disabled=3D=3D=3D!0},checked:function(a){return = a.checked=3D=3D=3D!0},selected:function(a){a.parentNode&&a.parentNode.sel= ectedIndex;return = a.selected=3D=3D=3D!0},parent:function(a){return!!a.firstChild},empty:fun= ction(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).lengt= h},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var= b=3Da.getAttribute("type"),c=3Da.type;return = a.nodeName.toLowerCase()=3D=3D=3D"input"&&"text"=3D=3D=3Dc&&(b=3D=3D=3Dc|= |b=3D=3D=3Dnull)},radio:function(a){return = a.nodeName.toLowerCase()=3D=3D=3D"input"&&"radio"=3D=3D=3Da.type},checkbo= x:function(a){return = a.nodeName.toLowerCase()=3D=3D=3D"input"&&"checkbox"=3D=3D=3Da.type},file= :function(a){return = a.nodeName.toLowerCase()=3D=3D=3D"input"&&"file"=3D=3D=3Da.type},password= :function(a){return = a.nodeName.toLowerCase()=3D=3D=3D"input"&&"password"=3D=3D=3Da.type},subm= it:function(a){var = b=3Da.nodeName.toLowerCase();return(b=3D=3D=3D"input"||b=3D=3D=3D"button"= )&&"submit"=3D=3D=3Da.type},image:function(a){return = a.nodeName.toLowerCase()=3D=3D=3D"input"&&"image"=3D=3D=3Da.type},reset:f= unction(a){var = b=3Da.nodeName.toLowerCase();return(b=3D=3D=3D"input"||b=3D=3D=3D"button"= )&&"reset"=3D=3D=3Da.type},button:function(a){var = b=3Da.nodeName.toLowerCase();return = b=3D=3D=3D"input"&&"button"=3D=3D=3Da.type||b=3D=3D=3D"button"},input:fun= ction(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:fu= nction(a){return = a=3D=3D=3Da.ownerDocument.activeElement}},setFilters:{first:function(a,b)= {return b=3D=3D=3D0},last:function(a,b,c,d){return = b=3D=3D=3Dd.length-1},even:function(a,b){return = b%2=3D=3D=3D0},odd:function(a,b){return = b%2=3D=3D=3D1},lt:function(a,b,c){return = b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return = c[3]-0=3D=3D=3Db},eq:function(a,b,c){return = c[3]-0=3D=3D=3Db}},filter:{PSEUDO:function(a,b,c,d){var = e=3Db[1],f=3Do.filters[e];if(f)return = f(a,c,b,d);if(e=3D=3D=3D"contains")return(a.textContent||a.innerText||n([= a])||"").indexOf(b[3])>=3D0;if(e=3D=3D=3D"not"){var g=3Db[3];for(var = h=3D0,i=3Dg.length;h<i;h++)if(g[h]=3D=3D=3Da)return!1;return!0}m.error(e)= },CHILD:function(a,b){var = c,e,f,g,h,i,j,k=3Db[1],l=3Da;switch(k){case"only":case"first":while(l=3Dl= .previousSibling)if(l.nodeType=3D=3D=3D1)return!1;if(k=3D=3D=3D"first")re= turn!0;l=3Da;case"last":while(l=3Dl.nextSibling)if(l.nodeType=3D=3D=3D1)r= eturn!1;return!0;case"nth":c=3Db[2],e=3Db[3];if(c=3D=3D=3D1&&e=3D=3D=3D0)= return!0;f=3Db[0],g=3Da.parentNode;if(g&&(g[d]!=3D=3Df||!a.nodeIndex)){i=3D= 0;for(l=3Dg.firstChild;l;l=3Dl.nextSibling)l.nodeType=3D=3D=3D1&&(l.nodeI= ndex=3D++i);g[d]=3Df}j=3Da.nodeIndex-e;return = c=3D=3D=3D0?j=3D=3D=3D0:j%c=3D=3D=3D0&&j/c>=3D0}},ID:function(a,b){return= = a.nodeType=3D=3D=3D1&&a.getAttribute("id")=3D=3D=3Db},TAG:function(a,b){r= eturn = b=3D=3D=3D"*"&&a.nodeType=3D=3D=3D1||!!a.nodeName&&a.nodeName.toLowerCase= ()=3D=3D=3Db},CLASS:function(a,b){return(" = "+(a.className||a.getAttribute("class"))+" = ").indexOf(b)>-1},ATTR:function(a,b){var = c=3Db[1],d=3Dm.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=3D= null?a[c]:a.getAttribute(c),e=3Dd+"",f=3Db[2],g=3Db[4];return = d=3D=3Dnull?f=3D=3D=3D"!=3D":!f&&m.attr?d!=3Dnull:f=3D=3D=3D"=3D"?e=3D=3D= =3Dg:f=3D=3D=3D"*=3D"?e.indexOf(g)>=3D0:f=3D=3D=3D"~=3D"?(" "+e+" = ").indexOf(g)>=3D0:g?f=3D=3D=3D"!=3D"?e!=3D=3Dg:f=3D=3D=3D"^=3D"?e.indexO= f(g)=3D=3D=3D0:f=3D=3D=3D"$=3D"?e.substr(e.length-g.length)=3D=3D=3Dg:f=3D= =3D=3D"|=3D"?e=3D=3D=3Dg||e.substr(0,g.length+1)=3D=3D=3Dg+"-":!1:e&&d!=3D= =3D!1},POS:function(a,b,c,d){var = e=3Db[2],f=3Do.setFilters[e];if(f)return = f(a,c,b,d)}}},p=3Do.match.POS,q=3Dfunction(a,b){return"\\"+(b-0+1)};for(v= ar r in o.match)o.match[r]=3Dnew = RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r= ]=3Dnew = RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q))= ;var = s=3Dfunction(a,b){a=3DArray.prototype.slice.call(a,0);if(b){b.push.apply(= b,a);return b}return = a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].node= Type}catch(t){s=3Dfunction(a,b){var = c=3D0,d=3Db||[];if(g.call(a)=3D=3D=3D"[object = Array]")Array.prototype.push.apply(d,a);else if(typeof = a.length=3D=3D"number")for(var e=3Da.length;c<e;c++)d.push(a[c]);else = for(;a[c];c++)d.push(a[c]);return d}}var = u,v;c.documentElement.compareDocumentPosition?u=3Dfunction(a,b){if(a=3D=3D= =3Db){h=3D!0;return = 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return = a.compareDocumentPosition?-1:1;return = a.compareDocumentPosition(b)&4?-1:1}:(u=3Dfunction(a,b){if(a=3D=3D=3Db){h= =3D!0;return 0}if(a.sourceIndex&&b.sourceIndex)return = a.sourceIndex-b.sourceIndex;var = c,d,e=3D[],f=3D[],g=3Da.parentNode,i=3Db.parentNode,j=3Dg;if(g=3D=3D=3Di)= return v(a,b);if(!g)return-1;if(!i)return = 1;while(j)e.unshift(j),j=3Dj.parentNode;j=3Di;while(j)f.unshift(j),j=3Dj.= parentNode;c=3De.length,d=3Df.length;for(var = k=3D0;k<c&&k<d;k++)if(e[k]!=3D=3Df[k])return v(e[k],f[k]);return = k=3D=3D=3Dc?v(a,f[k],-1):v(e[k],b,1)},v=3Dfunction(a,b,c){if(a=3D=3D=3Db)= return c;var = d=3Da.nextSibling;while(d){if(d=3D=3D=3Db)return-1;d=3Dd.nextSibling}retu= rn 1}),function(){var a=3Dc.createElement("div"),d=3D"script"+(new = Date).getTime(),e=3Dc.documentElement;a.innerHTML=3D"<a = name=3D'"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.= find.ID=3Dfunction(a,c,d){if(typeof = c.getElementById!=3D"undefined"&&!d){var = e=3Dc.getElementById(a[1]);return e?e.id=3D=3D=3Da[1]||typeof = e.getAttributeNode!=3D"undefined"&&e.getAttributeNode("id").nodeValue=3D=3D= =3Da[1]?[e]:b:[]}},o.filter.ID=3Dfunction(a,b){var c=3Dtypeof = a.getAttributeNode!=3D"undefined"&&a.getAttributeNode("id");return = a.nodeType=3D=3D=3D1&&c&&c.nodeValue=3D=3D=3Db}),e.removeChild(a),e=3Da=3D= null}(),function(){var = a=3Dc.createElement("div");a.appendChild(c.createComment("")),a.getElemen= tsByTagName("*").length>0&&(o.find.TAG=3Dfunction(a,b){var = c=3Db.getElementsByTagName(a[1]);if(a[1]=3D=3D=3D"*"){var d=3D[];for(var = e=3D0;c[e];e++)c[e].nodeType=3D=3D=3D1&&d.push(c[e]);c=3Dd}return = c}),a.innerHTML=3D"<a href=3D'#'></a>",a.firstChild&&typeof = a.firstChild.getAttribute!=3D"undefined"&&a.firstChild.getAttribute("href= ")!=3D=3D"#"&&(o.attrHandle.href=3Dfunction(a){return = a.getAttribute("href",2)}),a=3Dnull}(),c.querySelectorAll&&function(){var= a=3Dm,b=3Dc.createElement("div"),d=3D"__sizzle__";b.innerHTML=3D"<p = class=3D'TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").= length!=3D=3D0){m=3Dfunction(b,e,f,g){e=3De||c;if(!g&&!m.isXML(e)){var = h=3D/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType=3D=3D=3D= 1||e.nodeType=3D=3D=3D9)){if(h[1])return = s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClas= sName)return = s(e.getElementsByClassName(h[2]),f)}if(e.nodeType=3D=3D=3D9){if(b=3D=3D=3D= "body"&&e.body)return s([e.body],f);if(h&&h[3]){var = i=3De.getElementById(h[3]);if(!i||!i.parentNode)return = s([],f);if(i.id=3D=3D=3Dh[3])return s([i],f)}try{return = s(e.querySelectorAll(b),f)}catch(j){}}else = if(e.nodeType=3D=3D=3D1&&e.nodeName.toLowerCase()!=3D=3D"object"){var = k=3De,l=3De.getAttribute("id"),n=3Dl||d,p=3De.parentNode,q=3D/^\s*[+~]/.t= est(b);l?n=3Dn.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=3De.p= arentNode);try{if(!q||p)return s(e.querySelectorAll("[id=3D'"+n+"'] = "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return = a(b,e,f,g)};for(var e in a)m[e]=3Da[e];b=3Dnull}}(),function(){var = a=3Dc.documentElement,b=3Da.matchesSelector||a.mozMatchesSelector||a.webk= itMatchesSelector||a.msMatchesSelector;if(b){var = d=3D!b.call(c.createElement("div"),"div"),e=3D!1;try{b.call(c.documentEle= ment,"[test!=3D'']:sizzle")}catch(f){e=3D!0}m.matchesSelector=3Dfunction(= a,c){c=3Dc.replace(/\=3D\s*([^'"\]]*)\s*\]/g,"=3D'$1']");if(!m.isXML(a))t= ry{if(e||!o.match.PSEUDO.test(c)&&!/!=3D/.test(c)){var = f=3Db.call(a,c);if(f||!d||a.document&&a.document.nodeType!=3D=3D11)return= f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var = a=3Dc.createElement("div");a.innerHTML=3D"<div class=3D'test = e'></div><div = class=3D'test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClas= sName("e").length!=3D=3D0){a.lastChild.className=3D"e";if(a.getElementsBy= ClassName("e").length=3D=3D=3D1)return;o.order.splice(1,0,"CLASS"),o.find= .CLASS=3Dfunction(a,b,c){if(typeof = b.getElementsByClassName!=3D"undefined"&&!c)return = b.getElementsByClassName(a[1])},a=3Dnull}}(),c.documentElement.contains?m= .contains=3Dfunction(a,b){return = a!=3D=3Db&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocume= ntPosition?m.contains=3Dfunction(a,b){return!!(a.compareDocumentPosition(= b)&16)}:m.contains=3Dfunction(){return!1},m.isXML=3Dfunction(a){var = b=3D(a?a.ownerDocument||a:0).documentElement;return = b?b.nodeName!=3D=3D"HTML":!1};var y=3Dfunction(a,b,c){var = d,e=3D[],f=3D"",g=3Db.nodeType?[b]:b;while(d=3Do.match.PSEUDO.exec(a))f+=3D= d[0],a=3Da.replace(o.match.PSEUDO,"");a=3Do.relative[a]?a+"*":a;for(var = h=3D0,i=3Dg.length;h<i;h++)m(a,g[h],e,c);return = m.filter(f,e)};m.attr=3Df.attr,m.selectors.attrMap=3D{},f.find=3Dm,f.expr= =3Dm.selectors,f.expr[":"]=3Df.expr.filters,f.unique=3Dm.uniqueSort,f.tex= t=3Dm.getText,f.isXMLDoc=3Dm.isXML,f.contains=3Dm.contains}();var = L=3D/Until$/,M=3D/^(?:parents|prevUntil|prevAll)/,N=3D/,/,O=3D/^.[^:#\[\.= ,]*$/,P=3DArray.prototype.slice,Q=3Df.expr.match.POS,R=3D{children:!0,con= tents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var = b=3Dthis,c,d;if(typeof a!=3D"string")return = f(a).filter(function(){for(c=3D0,d=3Db.length;c<d;c++)if(f.contains(b[c],= this))return!0});var = e=3Dthis.pushStack("","find",a),g,h,i;for(c=3D0,d=3Dthis.length;c<d;c++){= g=3De.length,f.find(a,this[c],e);if(c>0)for(h=3Dg;h<e.length;h++)for(i=3D= 0;i<g;i++)if(e[i]=3D=3D=3De[h]){e.splice(h--,1);break}}return = e},has:function(a){var b=3Df(a);return this.filter(function(){for(var = a=3D0,c=3Db.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:funct= ion(a){return = this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return = this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeo= f = a=3D=3D"string"?Q.test(a)?f(a,this.context).index(this[0])>=3D0:f.filter(= a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var = c=3D[],d,e,g=3Dthis[0];if(f.isArray(a)){var = h=3D1;while(g&&g.ownerDocument&&g!=3D=3Db){for(d=3D0;d<a.length;d++)f(g).= is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=3Dg.parentNode,h++}ret= urn c}var i=3DQ.test(a)||typeof = a!=3D"string"?f(a,b||this.context):0;for(d=3D0,e=3Dthis.length;d<e;d++){g= =3Dthis[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.pus= h(g);break}g=3Dg.parentNode;if(!g||!g.ownerDocument||g=3D=3D=3Db||g.nodeT= ype=3D=3D=3D11)break}}c=3Dc.length>1?f.unique(c):c;return = this.pushStack(c,"closest",a)},index:function(a){if(!a)return = this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof = a=3D=3D"string")return f.inArray(this[0],f(a));return = f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=3Dtypeof = a=3D=3D"string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=3Df.merge(this.= get(),c);return = this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return= this.add(this.prevObject)}}),f.each({parent:function(a){var = b=3Da.parentNode;return = b&&b.nodeType!=3D=3D11?b:null},parents:function(a){return = f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return = f.dir(a,"parentNode",c)},next:function(a){return = f.nth(a,2,"nextSibling")},prev:function(a){return = f.nth(a,2,"previousSibling")},nextAll:function(a){return = f.dir(a,"nextSibling")},prevAll:function(a){return = f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return = f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return = f.dir(a,"previousSibling",c)},siblings:function(a){return = f.sibling(a.parentNode.firstChild,a)},children:function(a){return = f.sibling(a.firstChild)},contents:function(a){return = f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.make= Array(a.childNodes)}},function(a,b){f.fn[a]=3Dfunction(c,d){var = e=3Df.map(this,b,c);L.test(a)||(d=3Dc),d&&typeof = d=3D=3D"string"&&(e=3Df.filter(d,e)),e=3Dthis.length>1&&!R[a]?f.unique(e)= :e,(this.length>1||N.test(d))&&M.test(a)&&(e=3De.reverse());return = this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:funct= ion(a,b,c){c&&(a=3D":not("+a+")");return = b.length=3D=3D=3D1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matche= s(a,b)},dir:function(a,c,d){var = e=3D[],g=3Da[c];while(g&&g.nodeType!=3D=3D9&&(d=3D=3D=3Db||g.nodeType!=3D= =3D1||!f(g).is(d)))g.nodeType=3D=3D=3D1&&e.push(g),g=3Dg[c];return = e},nth:function(a,b,c,d){b=3Db||1;var = e=3D0;for(;a;a=3Da[c])if(a.nodeType=3D=3D=3D1&&++e=3D=3D=3Db)break;return= a},sibling:function(a,b){var = c=3D[];for(;a;a=3Da.nextSibling)a.nodeType=3D=3D=3D1&&a!=3D=3Db&&c.push(a= );return c}});var = V=3D"abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|f= ooter|header|hgroup|mark|meter|nav|output|progress|section|summary|time|v= ideo",W=3D/ = jQuery\d+=3D"(?:\d+|null)"/g,X=3D/^\s+/,Y=3D/<(?!area|br|col|embed|hr|img= |input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=3D/<([\w:]+)/,$=3D/<tbody/= i,_=3D/<|&#?\w+;/,ba=3D/<(?:script|style)/i,bb=3D/<(?:script|object|embed= |option|style)/i,bc=3Dnew = RegExp("<(?:"+V+")","i"),bd=3D/checked\s*(?:[^=3D]|=3D\s*.checked.)/i,be=3D= /\/(java|ecma)script/i,bf=3D/^\s*<!(?:\[CDATA\[|\-\-)/,bg=3D{option:[1,"<= select = multiple=3D'multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"= ],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>= "],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tb= ody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],= _default:[0,"",""]},bh=3DU(c);bg.optgroup=3Dbg.option,bg.tbody=3Dbg.tfoot= =3Dbg.colgroup=3Dbg.caption=3Dbg.thead,bg.th=3Dbg.td,f.support.htmlSerial= ize||(bg._default=3D[1,"div<div>","</div>"]),f.fn.extend({text:function(a= ){if(f.isFunction(a))return this.each(function(b){var = c=3Df(this);c.text(a.call(this,b,c.text()))});if(typeof = a!=3D"object"&&a!=3D=3Db)return = this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a)= );return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return = this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var = b=3Df(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.inse= rtBefore(this[0]),b.map(function(){var = a=3Dthis;while(a.firstChild&&a.firstChild.nodeType=3D=3D=3D1)a=3Da.firstC= hild;return a}).append(this)}return = this},wrapInner:function(a){if(f.isFunction(a))return = this.each(function(b){f(this).wrapInner(a.call(this,b))});return = this.each(function(){var = b=3Df(this),c=3Db.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:fu= nction(a){var b=3Df.isFunction(a);return = this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:funct= ion(){return = this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWit= h(this.childNodes)}).end()},append:function(){return = this.domManip(arguments,!0,function(a){this.nodeType=3D=3D=3D1&&this.appe= ndChild(a)})},prepend:function(){return = this.domManip(arguments,!0,function(a){this.nodeType=3D=3D=3D1&&this.inse= rtBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].pare= ntNode)return = this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,thi= s)});if(arguments.length){var = a=3Df.clean(arguments);a.push.apply(a,this.toArray());return = this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[= 0].parentNode)return = this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,thi= s.nextSibling)});if(arguments.length){var = a=3Dthis.pushStack(this,"after",arguments);a.push.apply(a,f.clean(argumen= ts));return a}},remove:function(a,b){for(var = c=3D0,d;(d=3Dthis[c])!=3Dnull;c++)if(!a||f.filter(a,[d]).length)!b&&d.nod= eType=3D=3D=3D1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d= ])),d.parentNode&&d.parentNode.removeChild(d);return = this},empty:function()=0A= {for(var = a=3D0,b;(b=3Dthis[a])!=3Dnull;a++){b.nodeType=3D=3D=3D1&&f.cleanData(b.ge= tElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}r= eturn = this},clone:function(a,b){a=3Da=3D=3Dnull?!1:a,b=3Db=3D=3Dnull?a:b;return= this.map(function(){return = f.clone(this,a,b)})},html:function(a){if(a=3D=3D=3Db)return = this[0]&&this[0].nodeType=3D=3D=3D1?this[0].innerHTML.replace(W,""):null;= if(typeof = a=3D=3D"string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&= !bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=3Da.replace(Y,"<$1></$2>");= try{for(var = c=3D0,d=3Dthis.length;c<d;c++)this[c].nodeType=3D=3D=3D1&&(f.cleanData(th= is[c].getElementsByTagName("*")),this[c].innerHTML=3Da)}catch(e){this.emp= ty().append(a)}}else f.isFunction(a)?this.each(function(b){var = c=3Df(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);retu= rn = this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunc= tion(a))return this.each(function(b){var = c=3Df(this),d=3Dc.html();c.replaceWith(a.call(this,b,d))});typeof = a!=3D"string"&&(a=3Df(a).detach());return this.each(function(){var = b=3Dthis.nextSibling,c=3Dthis.parentNode;f(this).remove(),b?f(b).before(a= ):f(c).append(a)})}return = this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this= },detach:function(a){return = this.remove(a,!0)},domManip:function(a,c,d){var = e,g,h,i,j=3Da[0],k=3D[];if(!f.support.checkClone&&arguments.length=3D=3D=3D= 3&&typeof j=3D=3D"string"&&bd.test(j))return = this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))retu= rn this.each(function(e){var = g=3Df(this);a[0]=3Dj.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(thi= s[0]){i=3Dj&&j.parentNode,f.support.parentNode&&i&&i.nodeType=3D=3D=3D11&= &i.childNodes.length=3D=3D=3Dthis.length?e=3D{fragment:i}:e=3Df.buildFrag= ment(a,this,k),h=3De.fragment,h.childNodes.length=3D=3D=3D1?g=3Dh=3Dh.fir= stChild:g=3Dh.firstChild;if(g){c=3Dc&&f.nodeName(g,"tr");for(var = l=3D0,m=3Dthis.length,n=3Dm-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.ca= cheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return = this}}),f.buildFragment=3Dfunction(a,b,d){var = e,g,h,i,j=3Da[0];b&&b[0]&&(i=3Db[0].ownerDocument||b[0]),i.createDocument= Fragment||(i=3Dc),a.length=3D=3D=3D1&&typeof = j=3D=3D"string"&&j.length<512&&i=3D=3D=3Dc&&j.charAt(0)=3D=3D=3D"<"&&!bb.= test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.= test(j))&&(g=3D!0,h=3Df.fragments[j],h&&h!=3D=3D1&&(e=3Dh)),e||(e=3Di.cre= ateDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=3Dh?e:1);retur= n{fragment:e,cacheable:g}},f.fragments=3D{},f.each({appendTo:"append",pre= pendTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"re= placeWith"},function(a,b){f.fn[a]=3Dfunction(c){var = d=3D[],e=3Df(c),g=3Dthis.length=3D=3D=3D1&&this[0].parentNode;if(g&&g.nod= eType=3D=3D=3D11&&g.childNodes.length=3D=3D=3D1&&e.length=3D=3D=3D1){e[b]= (this[0]);return this}for(var h=3D0,i=3De.length;h<i;h++){var = j=3D(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=3Dd.concat(j)}return = this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var = d,e,g,h=3Df.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):= bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeTyp= e=3D=3D=3D1||a.nodeType=3D=3D=3D11)&&!f.isXMLDoc(a)){bk(a,h),d=3Dbl(a),e=3D= bl(h);for(g=3D0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=3Dbl(a= ),e=3Dbl(h);for(g=3D0;d[g];++g)bj(d[g],e[g])}}d=3De=3Dnull;return = h},clean:function(a,b,d,e){var g;b=3Db||c,typeof = b.createElement=3D=3D"undefined"&&(b=3Db.ownerDocument||b[0]&&b[0].ownerD= ocument||c);var h=3D[],i;for(var j=3D0,k;(k=3Da[j])!=3Dnull;j++){typeof = k=3D=3D"number"&&(k+=3D"");if(!k)continue;if(typeof = k=3D=3D"string")if(!_.test(k))k=3Db.createTextNode(k);else{k=3Dk.replace(= Y,"<$1></$2>");var = l=3D(Z.exec(k)||["",""])[1].toLowerCase(),m=3Dbg[l]||bg._default,n=3Dm[0]= ,o=3Db.createElement("div");b=3D=3D=3Dc?bh.appendChild(o):U(b).appendChil= d(o),o.innerHTML=3Dm[1]+k+m[2];while(n--)o=3Do.lastChild;if(!f.support.tb= ody){var = p=3D$.test(k),q=3Dl=3D=3D=3D"table"&&!p?o.firstChild&&o.firstChild.childN= odes:m[1]=3D=3D=3D"<table>"&&!p?o.childNodes:[];for(i=3Dq.length-1;i>=3D0= ;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.r= emoveChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(= b.createTextNode(X.exec(k)[0]),o.firstChild),k=3Do.childNodes}var = r;if(!f.support.appendChecked)if(k[0]&&typeof = (r=3Dk.length)=3D=3D"number")for(i=3D0;i<r;i++)bn(k[i]);else = bn(k);k.nodeType?h.push(k):h=3Df.merge(h,k)}if(d){g=3Dfunction(a){return!= a.type||be.test(a.type)};for(j=3D0;h[j];j++)if(e&&f.nodeName(h[j],"script= ")&&(!h[j].type||h[j].type.toLowerCase()=3D=3D=3D"text/javascript"))e.pus= h(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].no= deType=3D=3D=3D1){var = s=3Df.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0= ].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var = b,c,d=3Df.cache,e=3Df.event.special,g=3Df.support.deleteExpando;for(var = h=3D0,i;(i=3Da[h])!=3Dnull;h++){if(i.nodeName&&f.noData[i.nodeName.toLowe= rCase()])continue;c=3Di[f.expando];if(c){b=3Dd[c];if(b&&b.events){for(var= j in = b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(= b.handle.elem=3Dnull)}g?delete = i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete = d[c]}}}});var = bq=3D/alpha\([^)]*\)/i,br=3D/opacity=3D([^)]*)/,bs=3D/([A-Z]|^ms)/g,bt=3D= /^-?\d+(?:px)?$/i,bu=3D/^-?\d/,bv=3D/^([\-+])=3D([\-+.\de]+)/,bw=3D{posit= ion:"absolute",visibility:"hidden",display:"block"},bx=3D["Left","Right"]= ,by=3D["Top","Bottom"],bz,bA,bB;f.fn.css=3Dfunction(a,c){if(arguments.len= gth=3D=3D=3D2&&c=3D=3D=3Db)return this;return = f.access(this,a,c,!0,function(a,c,d){return = d!=3D=3Db?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:f= unction(a,b){if(b){var c=3Dbz(a,"opacity","opacity");return = c=3D=3D=3D""?"1":c}return = a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,= opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.su= pport.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a= .nodeType!=3D=3D3&&a.nodeType!=3D=3D8&&!!a.style){var = g,h,i=3Df.camelCase(c),j=3Da.style,k=3Df.cssHooks[i];c=3Df.cssProps[i]||i= ;if(d=3D=3D=3Db){if(k&&"get"in k&&(g=3Dk.get(a,!1,e))!=3D=3Db)return = g;return j[c]}h=3Dtypeof = d,h=3D=3D=3D"string"&&(g=3Dbv.exec(d))&&(d=3D+(g[1]+1)*+g[2]+parseFloat(f= .css(a,c)),h=3D"number");if(d=3D=3Dnull||h=3D=3D=3D"number"&&isNaN(d))ret= urn;h=3D=3D=3D"number"&&!f.cssNumber[i]&&(d+=3D"px");if(!k||!("set"in = k)||(d=3Dk.set(a,d))!=3D=3Db)try{j[c]=3Dd}catch(l){}}},css:function(a,c,d= ){var = e,g;c=3Df.camelCase(c),g=3Df.cssHooks[c],c=3Df.cssProps[c]||c,c=3D=3D=3D"= cssFloat"&&(c=3D"float");if(g&&"get"in = g&&(e=3Dg.get(a,!0,d))!=3D=3Db)return e;if(bz)return = bz(a,c)},swap:function(a,b,c){var d=3D{};for(var e in = b)d[e]=3Da.style[e],a.style[e]=3Db[e];c.call(a);for(e in = b)a.style[e]=3Dd[e]}}),f.curCSS=3Df.css,f.each(["height","width"],functio= n(a,b){f.cssHooks[b]=3D{get:function(a,c,d){var = e;if(c){if(a.offsetWidth!=3D=3D0)return = bC(a,b,d);f.swap(a,bw,function(){e=3DbC(a,b,d)});return = e}},set:function(a,b){if(!bt.test(b))return = b;b=3DparseFloat(b);if(b>=3D0)return = b+"px"}}}),f.support.opacity||(f.cssHooks.opacity=3D{get:function(a,b){re= turn = br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?par= seFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var = c=3Da.style,d=3Da.currentStyle,e=3Df.isNumeric(b)?"alpha(opacity=3D"+b*10= 0+")":"",g=3Dd&&d.filter||c.filter||"";c.zoom=3D1;if(b>=3D1&&f.trim(g.rep= lace(bq,""))=3D=3D=3D""){c.removeAttribute("filter");if(d&&!d.filter)retu= rn}c.filter=3Dbq.test(g)?g.replace(bq,e):g+" = "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRigh= t=3D{get:function(a,b){var = c;f.swap(a,{display:"inline-block"},function(){b?c=3Dbz(a,"margin-right",= "marginRight"):c=3Da.style.marginRight});return = c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=3Dfunction(a,b)= {var = c,d,e;b=3Db.replace(bs,"-$1").toLowerCase(),(d=3Da.ownerDocument.defaultV= iew)&&(e=3Dd.getComputedStyle(a,null))&&(c=3De.getPropertyValue(b),c=3D=3D= =3D""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=3Df.style(a,b))= );return c}),c.documentElement.currentStyle&&(bB=3Dfunction(a,b){var = c,d,e,f=3Da.currentStyle&&a.currentStyle[b],g=3Da.style;f=3D=3D=3Dnull&&g= &&(e=3Dg[b])&&(f=3De),!bt.test(f)&&bu.test(f)&&(c=3Dg.left,d=3Da.runtimeS= tyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=3Da.currentStyle.left),= g.left=3Db=3D=3D=3D"fontSize"?"1em":f||0,f=3Dg.pixelLeft+"px",g.left=3Dc,= d&&(a.runtimeStyle.left=3Dd));return = f=3D=3D=3D""?"auto":f}),bz=3DbA||bB,f.expr&&f.expr.filters&&(f.expr.filte= rs.hidden=3Dfunction(a){var b=3Da.offsetWidth,c=3Da.offsetHeight;return = b=3D=3D=3D0&&c=3D=3D=3D0||!f.support.reliableHiddenOffsets&&(a.style&&a.s= tyle.display||f.css(a,"display"))=3D=3D=3D"none"},f.expr.filters.visible=3D= function(a){return!f.expr.filters.hidden(a)});var = bD=3D/%20/g,bE=3D/\[\]$/,bF=3D/\r?\n/g,bG=3D/#.*$/,bH=3D/^(.*?):[ = \t]*([^\r\n]*)\r?$/mg,bI=3D/^(?:color|date|datetime|datetime-local|email|= hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=3D= /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=3D/^(?:G= ET|HEAD)$/,bL=3D/^\/\//,bM=3D/\?/,bN=3D/<script\b[^<]*(?:(?!<\/script>)<[= ^<]*)*<\/script>/gi,bO=3D/^(?:select|textarea)/i,bP=3D/\s+/,bQ=3D/([?&])_= =3D[^&]*/,bR=3D/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=3Df.fn= .load,bT=3D{},bU=3D{},bV,bW,bX=3D["*/"]+["*"];try{bV=3De.href}catch(bY){b= V=3Dc.createElement("a"),bV.href=3D"",bV=3DbV.href}bW=3DbR.exec(bV.toLowe= rCase())||[],f.fn.extend({load:function(a,c,d){if(typeof = a!=3D"string"&&bS)return bS.apply(this,arguments);if(!this.length)return = this;var e=3Da.indexOf(" ");if(e>=3D0){var = g=3Da.slice(e,a.length);a=3Da.slice(0,e)}var = h=3D"GET";c&&(f.isFunction(c)?(d=3Dc,c=3Db):typeof = c=3D=3D"object"&&(c=3Df.param(c,f.ajaxSettings.traditional),h=3D"POST"));= var = i=3Dthis;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,= b,c){c=3Da.responseText,a.isResolved()&&(a.done(function(a){c=3Da}),i.htm= l(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}= });return this},serialize:function(){return = f.param(this.serializeArray())},serializeArray:function(){return = this.map(function(){return = this.elements?f.makeArray(this.elements):this}).filter(function(){return = this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test= (this.type))}).map(function(a,b){var c=3Df(this).val();return = c=3D=3Dnull?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,va= lue:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).ge= t()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess = ajaxSend".split(" "),function(a,b){f.fn[b]=3Dfunction(a){return = this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=3Dfunction(a,d,e= ,g){f.isFunction(d)&&(g=3Dg||e,e=3Dd,d=3Db);return = f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript= :function(a,c){return = f.get(a,b,c,"script")},getJSON:function(a,b,c){return = f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=3D= a,a=3Df.ajaxSettings),b_(a,b);return = a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",conte= ntType:"application/x-www-form-urlencoded",processData:!0,async:!0,accept= s:{xml:"application/xml, = text/xml",html:"text/html",text:"text/plain",json:"application/json, = text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},res= ponseFields:{xml:"responseXML",text:"responseText"},converters:{"* = text":a.String,"text html":!0,"text json":f.parseJSON,"text = xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),aj= axTransport:bZ(bU),ajax:function(a,c){function = w(a,c,l,m){if(s!=3D=3D2){s=3D2,q&&clearTimeout(q),p=3Db,n=3Dm||"",v.ready= State=3Da>0?4:0;var = o,r,u,w=3Dc,x=3Dl?cb(d,v,l):b,y,z;if(a>=3D200&&a<300||a=3D=3D=3D304){if(d= .ifModified){if(y=3Dv.getResponseHeader("Last-Modified"))f.lastModified[k= ]=3Dy;if(z=3Dv.getResponseHeader("Etag"))f.etag[k]=3Dz}if(a=3D=3D=3D304)w= =3D"notmodified",o=3D!0;else = try{r=3Dcc(d,x),w=3D"success",o=3D!0}catch(A){w=3D"parsererror",u=3DA}}el= se{u=3Dw;if(!w||a)w=3D"error",a<0&&(a=3D0)}v.status=3Da,v.statusText=3D""= +(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j= ),j=3Db,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith= (e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger= ("ajaxStop"))}}typeof a=3D=3D"object"&&(c=3Da,a=3Db),c=3Dc||{};var = d=3Df.ajaxSetup({},c),e=3Dd.context||d,g=3De!=3D=3Dd&&(e.nodeType||e = instanceof f)?f(e):f.event,h=3Df.Deferred(),i=3Df.Callbacks("once = memory"),j=3Dd.statusCode||{},k,l=3D{},m=3D{},n,o,p,q,r,s=3D0,t,u,v=3D{re= adyState:0,setRequestHeader:function(a,b){if(!s){var = c=3Da.toLowerCase();a=3Dm[c]=3Dm[c]||a,l[a]=3Db}return = this},getAllResponseHeaders:function(){return = s=3D=3D=3D2?n:null},getResponseHeader:function(a){var = c;if(s=3D=3D=3D2){if(!o){o=3D{};while(c=3DbH.exec(n))o[c[1].toLowerCase()= ]=3Dc[2]}c=3Do[a.toLowerCase()]}return = c=3D=3D=3Db?null:c},overrideMimeType:function(a){s||(d.mimeType=3Da);retu= rn this},abort:function(a){a=3Da||"abort",p&&p.abort(a),w(0,a);return = this}};h.promise(v),v.success=3Dv.done,v.error=3Dv.fail,v.complete=3Di.ad= d,v.statusCode=3Dfunction(a){if(a){var b;if(s<2)for(b in = a)j[b]=3D[j[b],a[b]];else b=3Da[v.status],v.then(b,b)}return = this},d.url=3D((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dat= aTypes=3Df.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain=3D= =3Dnull&&(r=3DbR.exec(d.url.toLowerCase()),d.crossDomain=3D!(!r||r[1]=3D=3D= bW[1]&&r[2]=3D=3DbW[2]&&(r[3]||(r[1]=3D=3D=3D"http:"?80:443))=3D=3D(bW[3]= ||(bW[1]=3D=3D=3D"http:"?80:443)))),d.data&&d.processData&&typeof = d.data!=3D"string"&&(d.data=3Df.param(d.data,d.traditional)),b$(bT,d,c,v)= ;if(s=3D=3D=3D2)return!1;t=3Dd.global,d.type=3Dd.type.toUpperCase(),d.has= Content=3D!bK.test(d.type),t&&f.active++=3D=3D=3D0&&f.event.trigger("ajax= Start");if(!d.hasContent){d.data&&(d.url+=3D(bM.test(d.url)?"&":"?")+d.da= ta,delete d.data),k=3Dd.url;if(d.cache=3D=3D=3D!1){var = x=3Df.now(),y=3Dd.url.replace(bQ,"$1_=3D"+x);d.url=3Dy+(y=3D=3D=3Dd.url?(= bM.test(d.url)?"&":"?")+"_=3D"+x:"")}}(d.data&&d.hasContent&&d.contentTyp= e!=3D=3D!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentTy= pe),d.ifModified&&(k=3Dk||d.url,f.lastModified[k]&&v.setRequestHeader("If= -Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-Non= e-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accept= s[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=3D=3D"*"?", = "+bX+"; q=3D0.01":""):d.accepts["*"]);for(u in = d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSe= nd.call(e,v,d)=3D=3D=3D!1||s=3D=3D=3D2)){v.abort();return!1}for(u = in{success:1,error:1,complete:1})v[u](d[u]);p=3Db$(bU,d,c,v);if(!p)w(-1,"= No = Transport");else{v.readyState=3D1,t&&g.trigger("ajaxSend",[v,d]),d.async&= &d.timeout>0&&(q=3DsetTimeout(function(){v.abort("timeout")},d.timeout));= try{s=3D1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return = v},param:function(a,c){var = d=3D[],e=3Dfunction(a,b){b=3Df.isFunction(b)?b():b,d[d.length]=3DencodeUR= IComponent(a)+"=3D"+encodeURIComponent(b)};c=3D=3D=3Db&&(c=3Df.ajaxSettin= gs.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,f= unction(){e(this.name,this.value)});else for(var g in = a)ca(g,a[g],c,e);return = d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}= });var = cd=3Df.now(),ce=3D/(\=3D)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jso= npCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json = jsonp",function(b,c,d){var = e=3Db.contentType=3D=3D=3D"application/x-www-form-urlencoded"&&typeof = b.data=3D=3D"string";if(b.dataTypes[0]=3D=3D=3D"jsonp"||b.jsonp!=3D=3D!1&= &(ce.test(b.url)||e&&ce.test(b.data))){var = g,h=3Db.jsonpCallback=3Df.isFunction(b.jsonpCallback)?b.jsonpCallback():b= .jsonpCallback,i=3Da[h],j=3Db.url,k=3Db.data,l=3D"$1"+h+"$2";b.jsonp!=3D=3D= !1&&(j=3Dj.replace(ce,l),b.url=3D=3D=3Dj&&(e&&(k=3Dk.replace(ce,l)),b.dat= a=3D=3D=3Dk&&(j+=3D(/\?/.test(j)?"&":"?")+b.jsonp+"=3D"+h))),b.url=3Dj,b.= data=3Dk,a[h]=3Dfunction(a){g=3D[a]},d.always(function(){a[h]=3Di,g&&f.is= Function(i)&&a[h](g[0])}),b.converters["script = json"]=3Dfunction(){g||f.error(h+" was not called");return = g[0]},b.dataTypes[0]=3D"json";return"script"}}),f.ajaxSetup({accepts:{scr= ipt:"text/javascript, application/javascript, application/ecmascript, = application/x-ecmascript"},contents:{script:/javascript|ecmascript/},conv= erters:{"text script":function(a){f.globalEval(a);return = a}}}),f.ajaxPrefilter("script",function(a){a.cache=3D=3D=3Db&&(a.cache=3D= !1),a.crossDomain&&(a.type=3D"GET",a.global=3D!1)}),f.ajaxTransport("scri= pt",function(a){if(a.crossDomain){var = d,e=3Dc.head||c.getElementsByTagName("head")[0]||c.documentElement;return= {send:function(f,g){d=3Dc.createElement("script"),d.async=3D"async",a.scr= iptCharset&&(d.charset=3Da.scriptCharset),d.src=3Da.url,d.onload=3Dd.onre= adystatechange=3Dfunction(a,c){if(c||!d.readyState||/loaded|complete/.tes= t(d.readyState))d.onload=3Dd.onreadystatechange=3Dnull,e&&d.parentNode&&e= .removeChild(d),d=3Db,c||g(200,"success")},e.insertBefore(d,e.firstChild)= },abort:function(){d&&d.onload(0,1)}}}});var = cf=3Da.ActiveXObject?function(){for(var a in = ch)ch[a](0,1)}:!1,cg=3D0,ch;f.ajaxSettings.xhr=3Da.ActiveXObject?function= (){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{aj= ax:!!a,cors:!!a&&"withCredentials"in = a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if= (!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var = h=3Dc.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.passw= ord):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in = c.xhrFields)h[j]=3Dc.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overr= ideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Req= uested-With"]=3D"XMLHttpRequest");try{for(j in = e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null)= ,d=3Dfunction(a,e){var = j,k,l,m,n;try{if(d&&(e||h.readyState=3D=3D=3D4)){d=3Db,i&&(h.onreadystate= change=3Df.noop,cf&&delete = ch[i]);if(e)h.readyState!=3D=3D4&&h.abort();else{j=3Dh.status,l=3Dh.getAl= lResponseHeaders(),m=3D{},n=3Dh.responseXML,n&&n.documentElement&&(m.xml=3D= n),m.text=3Dh.responseText;try{k=3Dh.statusText}catch(o){k=3D""}!j&&c.isL= ocal&&!c.crossDomain?j=3Dm.text?200:404:j=3D=3D=3D1223&&(j=3D204)}}}catch= (p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState=3D=3D=3D4?d():(i=3D+= +cg,cf&&(ch||(ch=3D{},f(a).unload(cf)),ch[i]=3Dd),h.onreadystatechange=3D= d)},abort:function(){d&&d(0,1)}}}});var = ck=3D{},cl,cm,cn=3D/^(?:toggle|show|hide)$/,co=3D/^([+\-]=3D)?([\d+.\-]+)= ([a-z%]*)$/i,cp,cq=3D[["height","marginTop","marginBottom","paddingTop","= paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddin= gRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var = d,e;if(a||a=3D=3D=3D0)return this.animate(cu("show",3),a,b,c);for(var = g=3D0,h=3Dthis.length;g<h;g++)d=3Dthis[g],d.style&&(e=3Dd.style.display,!= f._data(d,"olddisplay")&&e=3D=3D=3D"none"&&(e=3Dd.style.display=3D""),e=3D= =3D=3D""&&f.css(d,"display")=3D=3D=3D"none"&&f._data(d,"olddisplay",cv(d.= nodeName)));for(g=3D0;g<h;g++){d=3Dthis[g];if(d.style){e=3Dd.style.displa= y;if(e=3D=3D=3D""||e=3D=3D=3D"none")d.style.display=3Df._data(d,"olddispl= ay")||""}}return this},hide:function(a,b,c){if(a||a=3D=3D=3D0)return = this.animate(cu("hide",3),a,b,c);var = d,e,g=3D0,h=3Dthis.length;for(;g<h;g++)d=3Dthis[g],d.style&&(e=3Df.css(d,= "display"),e!=3D=3D"none"&&!f._data(d,"olddisplay")&&f._data(d,"olddispla= y",e));for(g=3D0;g<h;g++)this[g].style&&(this[g].style.display=3D"none");= return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=3Dtypeof = a=3D=3D"boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this= ,arguments):a=3D=3Dnull||d?this.each(function(){var = b=3Dd?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(c= u("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return = this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},= a,c,d)},animate:function(a,b,c,d){function = g(){e.queue=3D=3D=3D!1&&f._mark(this);var = b=3Df.extend({},e),c=3Dthis.nodeType=3D=3D=3D1,d=3Dc&&f(this).is(":hidden= "),g,h,i,j,k,l,m,n,o;b.animatedProperties=3D{};for(i in = a){g=3Df.camelCase(i),i!=3D=3Dg&&(a[g]=3Da[i],delete = a[i]),h=3Da[g],f.isArray(h)?(b.animatedProperties[g]=3Dh[1],h=3Da[g]=3Dh[= 0]):b.animatedProperties[g]=3Db.specialEasing&&b.specialEasing[g]||b.easi= ng||"swing";if(h=3D=3D=3D"hide"&&d||h=3D=3D=3D"show"&&!d)return = b.complete.call(this);c&&(g=3D=3D=3D"height"||g=3D=3D=3D"width")&&(b.over= flow=3D[this.style.overflow,this.style.overflowX,this.style.overflowY],f.= css(this,"display")=3D=3D=3D"inline"&&f.css(this,"float")=3D=3D=3D"none"&= &(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)=3D=3D=3D"inline"?t= his.style.display=3D"inline-block":this.style.zoom=3D1))}b.overflow!=3Dnu= ll&&(this.style.overflow=3D"hidden");for(i in a)j=3Dnew = f.fx(this,b,i),h=3Da[i],cn.test(h)?(o=3Df._data(this,"toggle"+i)||(h=3D=3D= =3D"toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o=3D=3D=3D"show= "?"hide":"show"),j[o]()):j[h]()):(k=3Dco.exec(h),l=3Dj.cur(),k?(m=3Dparse= Float(k[2]),n=3Dk[3]||(f.cssNumber[i]?"":"px"),n!=3D=3D"px"&&(f.style(thi= s,i,(m||1)+n),l=3D(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=3D(k[1]=3D= =3D=3D"-=3D"?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var = e=3Df.speed(b,c,d);if(f.isEmptyObject(a))return = this.each(e.complete,[!1]);a=3Df.extend({},a);return = e.queue=3D=3D=3D!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,= d){typeof = a!=3D"string"&&(d=3Dc,c=3Da,a=3Db),c&&a!=3D=3D!1&&this.queue(a||"fx",[]);= return this.each(function(){function h(a,b,c){var = e=3Db[c];f.removeData(a,c,!0),e.stop(d)}var = b,c=3D!1,e=3Df.timers,g=3Df._data(this);d||f._unmark(!0,this);if(a=3D=3Dn= ull)for(b in = g)g[b]&&g[b].stop&&b.indexOf(".run")=3D=3D=3Db.length-4&&h(this,g,b);else= = g[b=3Da+".run"]&&g[b].stop&&h(this,g,b);for(b=3De.length;b--;)e[b].elem=3D= =3D=3Dthis&&(a=3D=3Dnull||e[b].queue=3D=3D=3Da)&&(d?e[b](!0):e[b].saveSta= te(),c=3D!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slide= Down:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:= {opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},= function(a,b){f.fn[a]=3Dfunction(a,c,d){return = this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var = d=3Da&&typeof = a=3D=3D"object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,dur= ation:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=3Df.fx.off?0:type= of d.duration=3D=3D"number"?d.duration:d.duration in = f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue=3D=3D= null||d.queue=3D=3D=3D!0)d.queue=3D"fx";d.old=3Dd.complete,d.complete=3Df= unction(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d= .queue):a!=3D=3D!1&&f._unmark(this)};return = d},easing:{linear:function(a,b,c,d){return = c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},ti= mers:[],fx:function(a,b,c){this.options=3Db,this.elem=3Da,this.prop=3Dc,b= .orig=3Db.orig||{}}}),f.fx.prototype=3D{update:function(){this.options.st= ep&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]= ||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=3Dnu= ll&&(!this.elem.style||this.elem.style[this.prop]=3D=3Dnull))return = this.elem[this.prop];var a,b=3Df.css(this.elem,this.prop);return = isNaN(a=3DparseFloat(b))?!b||b=3D=3D=3D"auto"?0:b:a},custom:function(a,c,= d){function h(a){return e.step(a)}var = e=3Dthis,g=3Df.fx;this.startTime=3Dcr||cs(),this.end=3Dc,this.now=3Dthis.= start=3Da,this.pos=3Dthis.state=3D0,this.unit=3Dd||this.unit||(f.cssNumbe= r[this.prop]?"":"px"),h.queue=3Dthis.options.queue,h.elem=3Dthis.elem,h.s= aveState=3Dfunction(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)=3D=3D= =3Db&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp= &&(cp=3DsetInterval(g.tick,g.interval))},show:function(){var = a=3Df._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=3D= a||f.style(this.elem,this.prop),this.options.show=3D!0,a!=3D=3Db?this.cus= tom(this.cur(),a):this.custom(this.prop=3D=3D=3D"width"||this.prop=3D=3D=3D= "height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.option= s.orig[this.prop]=3Df._data(this.elem,"fxshow"+this.prop)||f.style(this.e= lem,this.prop),this.options.hide=3D!0,this.custom(this.cur(),0)},step:fun= ction(a){var = b,c,d,e=3Dcr||cs(),g=3D!0,h=3Dthis.elem,i=3Dthis.options;if(a||e>=3Di.dur= ation+this.startTime){this.now=3Dthis.end,this.pos=3Dthis.state=3D1,this.= update(),i.animatedProperties[this.prop]=3D!0;for(b in = i.animatedProperties)i.animatedProperties[b]!=3D=3D!0&&(g=3D!1);if(g){i.o= verflow!=3Dnull&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],functio= n(a,b){h.style["overflow"+b]=3Di.overflow[a]}),i.hide&&f(h).hide();if(i.h= ide||i.show)for(b in = i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0)= ,f.removeData(h,"toggle"+b,!0);d=3Di.complete,d&&(i.complete=3D!1,d.call(= h))}return!1}i.duration=3D=3DInfinity?this.now=3De:(c=3De-this.startTime,= this.state=3Dc/i.duration,this.pos=3Df.easing[i.animatedProperties[this.p= rop]](this.state,c,0,1,i.duration),this.now=3Dthis.start+(this.end-this.s= tart)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){v= ar = a,b=3Df.timers,c=3D0;for(;c<b.length;c++)a=3Db[c],!a()&&b[c]=3D=3D=3Da&&b= .splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearIn= terval(cp),cp=3Dnull},speeds:{slow:600,fast:200,_default:400},step:{opaci= ty:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.el= em.style&&a.elem.style[a.prop]!=3Dnull?a.elem.style[a.prop]=3Da.now+a.uni= t:a.elem[a.prop]=3Da.now}}}),f.each(["width","height"],function(a,b){f.fx= .step[b]=3Dfunction(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.ex= pr&&f.expr.filters&&(f.expr.filters.animated=3Dfunction(a){return = f.grep(f.timers,function(b){return a=3D=3D=3Db.elem}).length});var = cw=3D/^t(?:able|d|h)$/i,cx=3D/^(?:body|html)$/i;"getBoundingClientRect"in= c.documentElement?f.fn.offset=3Dfunction(a){var = b=3Dthis[0],c;if(a)return = this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocum= ent)return null;if(b=3D=3D=3Db.ownerDocument.body)return = f.offset.bodyOffset(b);try{c=3Db.getBoundingClientRect()}catch(d){}var = e=3Db.ownerDocument,g=3De.documentElement;if(!c||!f.contains(g,b))return = c?{top:c.top,left:c.left}:{top:0,left:0};var = h=3De.body,i=3Dcy(e),j=3Dg.clientTop||h.clientTop||0,k=3Dg.clientLeft||h.= clientLeft||0,l=3Di.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrol= lTop,m=3Di.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=3D= c.top+l-j,o=3Dc.left+m-k;return{top:n,left:o}}:f.fn.offset=3Dfunction(a){= var b=3Dthis[0];if(a)return = this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocum= ent)return null;if(b=3D=3D=3Db.ownerDocument.body)return = f.offset.bodyOffset(b);var = c,d=3Db.offsetParent,e=3Db,g=3Db.ownerDocument,h=3Dg.documentElement,i=3D= g.body,j=3Dg.defaultView,k=3Dj?j.getComputedStyle(b,null):b.currentStyle,= l=3Db.offsetTop,m=3Db.offsetLeft;while((b=3Db.parentNode)&&b!=3D=3Di&&b!=3D= =3Dh){if(f.support.fixedPosition&&k.position=3D=3D=3D"fixed")break;c=3Dj?= j.getComputedStyle(b,null):b.currentStyle,l-=3Db.scrollTop,m-=3Db.scrollL= eft,b=3D=3D=3Dd&&(l+=3Db.offsetTop,m+=3Db.offsetLeft,f.support.doesNotAdd= Border&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&= &(l+=3DparseFloat(c.borderTopWidth)||0,m+=3DparseFloat(c.borderLeftWidth)= ||0),e=3Dd,d=3Db.offsetParent),f.support.subtractsBorderForOverflowNotVis= ible&&c.overflow!=3D=3D"visible"&&(l+=3DparseFloat(c.borderTopWidth)||0,m= +=3DparseFloat(c.borderLeftWidth)||0),k=3Dc}if(k.position=3D=3D=3D"relati= ve"||k.position=3D=3D=3D"static")l+=3Di.offsetTop,m+=3Di.offsetLeft;f.sup= port.fixedPosition&&k.position=3D=3D=3D"fixed"&&(l+=3DMath.max(h.scrollTo= p,i.scrollTop),m+=3DMath.max(h.scrollLeft,i.scrollLeft));return{top:l,lef= t:m}},f.offset=3D{bodyOffset:function(a){var = b=3Da.offsetTop,c=3Da.offsetLeft;f.support.doesNotIncludeMarginInBodyOffs= et&&(b+=3DparseFloat(f.css(a,"marginTop"))||0,c+=3DparseFloat(f.css(a,"ma= rginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var = d=3Df.css(a,"position");d=3D=3D=3D"static"&&(a.style.position=3D"relative= ");var = e=3Df(a),g=3De.offset(),h=3Df.css(a,"top"),i=3Df.css(a,"left"),j=3D(d=3D=3D= =3D"absolute"||d=3D=3D=3D"fixed")&&f.inArray("auto",[h,i])>-1,k=3D{},l=3D= {},m,n;j?(l=3De.position(),m=3Dl.top,n=3Dl.left):(m=3DparseFloat(h)||0,n=3D= parseFloat(i)||0),f.isFunction(b)&&(b=3Db.call(a,c,g)),b.top!=3Dnull&&(k.= top=3Db.top-g.top+m),b.left!=3Dnull&&(k.left=3Db.left-g.left+n),"using"in= = b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[= 0])return null;var = a=3Dthis[0],b=3Dthis.offsetParent(),c=3Dthis.offset(),d=3Dcx.test(b[0].no= deName)?{top:0,left:0}:b.offset();c.top-=3DparseFloat(f.css(a,"marginTop"= ))||0,c.left-=3DparseFloat(f.css(a,"marginLeft"))||0,d.top+=3DparseFloat(= f.css(b[0],"borderTopWidth"))||0,d.left+=3DparseFloat(f.css(b[0],"borderL= eftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:f= unction(){return this.map(function(){var = a=3Dthis.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"pos= ition")=3D=3D=3D"static")a=3Da.offsetParent;return = a})}}),f.each(["Left","Top"],function(a,c){var = d=3D"scroll"+c;f.fn[d]=3Dfunction(c){var = e,g;if(c=3D=3D=3Db){e=3Dthis[0];if(!e)return null;g=3Dcy(e);return = g?"pageXOffset"in = g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documen= tElement[d]||g.document.body[d]:e[d]}return = this.each(function(){g=3Dcy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:= f(g).scrollTop()):this[d]=3Dc})}}),f.each(["Height","Width"],function(a,c= ){var d=3Dc.toLowerCase();f.fn["inner"+c]=3Dfunction(){var = a=3Dthis[0];return = a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c= ]=3Dfunction(a){var b=3Dthis[0];return = b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn= [d]=3Dfunction(a){var e=3Dthis[0];if(!e)return = a=3D=3Dnull?null:this;if(f.isFunction(a))return = this.each(function(b){var = c=3Df(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var = g=3De.document.documentElement["client"+c],h=3De.document.body;return = e.document.compatMode=3D=3D=3D"CSS1Compat"&&g||h&&h["client"+c]||g}if(e.n= odeType=3D=3D=3D9)return = Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentEleme= nt["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a=3D=3D= =3Db){var i=3Df.css(e,d),j=3DparseFloat(i);return = f.isNumeric(j)?j:i}return this.css(d,typeof = a=3D=3D"string"?a:a+"px")}}),a.jQuery=3Da.$=3Df,typeof = define=3D=3D"function"&&define.amd&&define.amd.jQuery&&define("jquery",[]= ,function(){return f})})(window); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery.js =0A= /**=0A= * jQuery Once Plugin v1.2=0A= * http://plugins.jquery.com/project/once=0A= *=0A= * Dual licensed under the MIT and GPL licenses:=0A= * http://www.opensource.org/licenses/mit-license.php=0A= * http://www.gnu.org/licenses/gpl.html=0A= */=0A= =0A= (function ($) {=0A= var cache =3D {}, uuid =3D 0;=0A= =0A= /**=0A= * Filters elements by whether they have not yet been processed.=0A= *=0A= * @param id=0A= * (Optional) If this is a string, then it will be used as the CSS = class=0A= * name that is applied to the elements for determining whether it = has=0A= * already been processed. The elements will get a class in the form = of=0A= * "id-processed".=0A= *=0A= * If the id parameter is a function, it will be passed off to the fn=0A= * parameter and the id will become a unique identifier, represented = as a=0A= * number.=0A= *=0A= * When the id is neither a string or a function, it becomes a unique=0A= * identifier, depicted as a number. The element's class will then be=0A= * represented in the form of "jquery-once-#-processed".=0A= *=0A= * Take note that the id must be valid for usage as an element's = class name.=0A= * @param fn=0A= * (Optional) If given, this function will be called for each = element that=0A= * has not yet been processed. The function's return value follows = the same=0A= * logic as $.each(). Returning true will continue to the next = matched=0A= * element in the set, while returning false will entirely break the=0A= * iteration.=0A= */=0A= $.fn.once =3D function (id, fn) {=0A= if (typeof id !=3D 'string') {=0A= // Generate a numeric ID if the id passed can't be used as a CSS = class.=0A= if (!(id in cache)) {=0A= cache[id] =3D ++uuid;=0A= }=0A= // When the fn parameter is not passed, we interpret it from the = id.=0A= if (!fn) {=0A= fn =3D id;=0A= }=0A= id =3D 'jquery-once-' + cache[id];=0A= }=0A= // Remove elements from the set that have already been processed.=0A= var name =3D id + '-processed';=0A= var elements =3D this.not('.' + name).addClass(name);=0A= =0A= return $.isFunction(fn) ? elements.each(fn) : elements;=0A= };=0A= =0A= /**=0A= * Filters elements that have been processed once already.=0A= *=0A= * @param id=0A= * A required string representing the name of the class which should = be used=0A= * when filtering the elements. This only filters elements that have = already=0A= * been processed by the once function. The id should be the same id = that=0A= * was originally passed to the once() function.=0A= * @param fn=0A= * (Optional) If given, this function will be called for each = element that=0A= * has not yet been processed. The function's return value follows = the same=0A= * logic as $.each(). Returning true will continue to the next = matched=0A= * element in the set, while returning false will entirely break the=0A= * iteration.=0A= */=0A= $.fn.removeOnce =3D function (id, fn) {=0A= var name =3D id + '-processed';=0A= var elements =3D this.filter('.' + name).removeClass(name);=0A= =0A= return $.isFunction(fn) ? elements.each(fn) : elements;=0A= };=0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/drupal.js =0A= var Drupal =3D Drupal || { 'settings': {}, 'behaviors': {}, 'locale': {} = };=0A= =0A= // Allow other JavaScript libraries to use $.=0A= jQuery.noConflict();=0A= =0A= (function ($) {=0A= =0A= /**=0A= * Override jQuery.fn.init to guard against XSS attacks.=0A= *=0A= * See http://bugs.jquery.com/ticket/9521=0A= */=0A= var jquery_init =3D $.fn.init;=0A= $.fn.init =3D function (selector, context, rootjQuery) {=0A= // If the string contains a "#" before a "<", treat it as invalid HTML.=0A= if (selector && typeof selector =3D=3D=3D 'string') {=0A= var hash_position =3D selector.indexOf('#');=0A= if (hash_position >=3D 0) {=0A= var bracket_position =3D selector.indexOf('<');=0A= if (bracket_position > hash_position) {=0A= throw 'Syntax error, unrecognized expression: ' + selector;=0A= }=0A= }=0A= }=0A= return jquery_init.call(this, selector, context, rootjQuery);=0A= };=0A= $.fn.init.prototype =3D jquery_init.prototype;=0A= =0A= /**=0A= * Attach all registered behaviors to a page element.=0A= *=0A= * Behaviors are event-triggered actions that attach to page elements, = enhancing=0A= * default non-JavaScript UIs. Behaviors are registered in the = Drupal.behaviors=0A= * object using the method 'attach' and optionally also 'detach' as = follows:=0A= * @code=0A= * Drupal.behaviors.behaviorName =3D {=0A= * attach: function (context, settings) {=0A= * ...=0A= * },=0A= * detach: function (context, settings, trigger) {=0A= * ...=0A= * }=0A= * };=0A= * @endcode=0A= *=0A= * Drupal.attachBehaviors is added below to the jQuery ready event and so=0A= * runs on initial page load. Developers implementing AHAH/Ajax in their=0A= * solutions should also call this function after new page content has = been=0A= * loaded, feeding in an element to be processed, in order to attach all=0A= * behaviors to the new content.=0A= *=0A= * Behaviors should use=0A= * @code=0A= * $(selector).once('behavior-name', function () {=0A= * ...=0A= * });=0A= * @endcode=0A= * to ensure the behavior is attached only once to a given element. = (Doing so=0A= * enables the reprocessing of given elements, which may be needed on = occasion=0A= * despite the ability to limit behavior attachment to a particular = element.)=0A= *=0A= * @param context=0A= * An element to attach behaviors to. If none is given, the document = element=0A= * is used.=0A= * @param settings=0A= * An object containing settings for the current context. If none = given, the=0A= * global Drupal.settings object is used.=0A= */=0A= Drupal.attachBehaviors =3D function (context, settings) {=0A= context =3D context || document;=0A= settings =3D settings || Drupal.settings;=0A= // Execute all of them.=0A= $.each(Drupal.behaviors, function () {=0A= if ($.isFunction(this.attach)) {=0A= this.attach(context, settings);=0A= }=0A= });=0A= };=0A= =0A= /**=0A= * Detach registered behaviors from a page element.=0A= *=0A= * Developers implementing AHAH/Ajax in their solutions should call this=0A= * function before page content is about to be removed, feeding in an = element=0A= * to be processed, in order to allow special behaviors to detach from = the=0A= * content.=0A= *=0A= * Such implementations should look for the class name that was added in = their=0A= * corresponding Drupal.behaviors.behaviorName.attach implementation, = i.e.=0A= * behaviorName-processed, to ensure the behavior is detached only from=0A= * previously processed elements.=0A= *=0A= * @param context=0A= * An element to detach behaviors from. If none is given, the document = element=0A= * is used.=0A= * @param settings=0A= * An object containing settings for the current context. If none = given, the=0A= * global Drupal.settings object is used.=0A= * @param trigger=0A= * A string containing what's causing the behaviors to be detached. The=0A= * possible triggers are:=0A= * - unload: (default) The context element is being removed from the = DOM.=0A= * - move: The element is about to be moved within the DOM (for = example,=0A= * during a tabledrag row swap). After the move is completed,=0A= * Drupal.attachBehaviors() is called, so that the behavior can undo=0A= * whatever it did in response to the move. Many behaviors won't = need to=0A= * do anything simply in response to the element being moved, but = because=0A= * IFRAME elements reload their "src" when being moved within the = DOM,=0A= * behaviors bound to IFRAME elements (like WYSIWYG editors) may = need to=0A= * take some action.=0A= * - serialize: When an Ajax form is submitted, this is called with the=0A= * form as the context. This provides every behavior within the form = an=0A= * opportunity to ensure that the field elements have correct content=0A= * in them before the form is serialized. The canonical use-case is = so=0A= * that WYSIWYG editors can update the hidden textarea to which they = are=0A= * bound.=0A= *=0A= * @see Drupal.attachBehaviors=0A= */=0A= Drupal.detachBehaviors =3D function (context, settings, trigger) {=0A= context =3D context || document;=0A= settings =3D settings || Drupal.settings;=0A= trigger =3D trigger || 'unload';=0A= // Execute all of them.=0A= $.each(Drupal.behaviors, function () {=0A= if ($.isFunction(this.detach)) {=0A= this.detach(context, settings, trigger);=0A= }=0A= });=0A= };=0A= =0A= /**=0A= * Encode special characters in a plain-text string for display as HTML.=0A= *=0A= * @ingroup sanitization=0A= */=0A= Drupal.checkPlain =3D function (str) {=0A= var character, regex,=0A= replace =3D { '&': '&', '"': '"', '<': '<', '>': = '>' };=0A= str =3D String(str);=0A= for (character in replace) {=0A= if (replace.hasOwnProperty(character)) {=0A= regex =3D new RegExp(character, 'g');=0A= str =3D str.replace(regex, replace[character]);=0A= }=0A= }=0A= return str;=0A= };=0A= =0A= /**=0A= * Replace placeholders with sanitized values in a string.=0A= *=0A= * @param str=0A= * A string with placeholders.=0A= * @param args=0A= * An object of replacements pairs to make. Incidences of any key in = this=0A= * array are replaced with the corresponding value. Based on the first=0A= * character of the key, the value is escaped and/or themed:=0A= * - !variable: inserted as is=0A= * - @variable: escape plain text to HTML (Drupal.checkPlain)=0A= * - %variable: escape text and theme as a placeholder for = user-submitted=0A= * content (checkPlain + Drupal.theme('placeholder'))=0A= *=0A= * @see Drupal.t()=0A= * @ingroup sanitization=0A= */=0A= Drupal.formatString =3D function(str, args) {=0A= // Transform arguments before inserting them.=0A= for (var key in args) {=0A= switch (key.charAt(0)) {=0A= // Escaped only.=0A= case '@':=0A= args[key] =3D Drupal.checkPlain(args[key]);=0A= break;=0A= // Pass-through.=0A= case '!':=0A= break;=0A= // Escaped and placeholder.=0A= case '%':=0A= default:=0A= args[key] =3D Drupal.theme('placeholder', args[key]);=0A= break;=0A= }=0A= str =3D str.replace(key, args[key]);=0A= }=0A= return str;=0A= };=0A= =0A= /**=0A= * Translate strings to the page language or a given language.=0A= *=0A= * See the documentation of the server-side t() function for further = details.=0A= *=0A= * @param str=0A= * A string containing the English string to translate.=0A= * @param args=0A= * An object of replacements pairs to make after translation. = Incidences=0A= * of any key in this array are replaced with the corresponding value.=0A= * See Drupal.formatString().=0A= *=0A= * @param options=0A= * - 'context' (defaults to the empty context): The context the source = string=0A= * belongs to.=0A= *=0A= * @return=0A= * The translated string.=0A= */=0A= Drupal.t =3D function (str, args, options) {=0A= options =3D options || {};=0A= options.context =3D options.context || '';=0A= =0A= // Fetch the localized version of the string.=0A= if (Drupal.locale.strings && Drupal.locale.strings[options.context] && = Drupal.locale.strings[options.context][str]) {=0A= str =3D Drupal.locale.strings[options.context][str];=0A= }=0A= =0A= if (args) {=0A= str =3D Drupal.formatString(str, args);=0A= }=0A= return str;=0A= };=0A= =0A= /**=0A= * Format a string containing a count of items.=0A= *=0A= * This function ensures that the string is pluralized correctly. Since = Drupal.t() is=0A= * called by this function, make sure not to pass already-localized = strings to it.=0A= *=0A= * See the documentation of the server-side format_plural() function for = further details.=0A= *=0A= * @param count=0A= * The item count to display.=0A= * @param singular=0A= * The string for the singular case. Please make sure it is clear this = is=0A= * singular, to ease translation (e.g. use "1 new comment" instead of = "1 new").=0A= * Do not use @count in the singular string.=0A= * @param plural=0A= * The string for the plural case. Please make sure it is clear this = is plural,=0A= * to ease translation. Use @count in place of the item count, as in = "@count=0A= * new comments".=0A= * @param args=0A= * An object of replacements pairs to make after translation. = Incidences=0A= * of any key in this array are replaced with the corresponding value.=0A= * See Drupal.formatString().=0A= * Note that you do not need to include @count in this array.=0A= * This replacement is done automatically for the plural case.=0A= * @param options=0A= * The options to pass to the Drupal.t() function.=0A= * @return=0A= * A translated string.=0A= */=0A= Drupal.formatPlural =3D function (count, singular, plural, args, = options) {=0A= var args =3D args || {};=0A= args['@count'] =3D count;=0A= // Determine the index of the plural form.=0A= var index =3D Drupal.locale.pluralFormula ? = Drupal.locale.pluralFormula(args['@count']) : ((args['@count'] =3D=3D 1) = ? 0 : 1);=0A= =0A= if (index =3D=3D 0) {=0A= return Drupal.t(singular, args, options);=0A= }=0A= else if (index =3D=3D 1) {=0A= return Drupal.t(plural, args, options);=0A= }=0A= else {=0A= args['@count[' + index + ']'] =3D args['@count'];=0A= delete args['@count'];=0A= return Drupal.t(plural.replace('@count', '@count[' + index + ']'), = args, options);=0A= }=0A= };=0A= =0A= /**=0A= * Generate the themed representation of a Drupal object.=0A= *=0A= * All requests for themed output must go through this function. It = examines=0A= * the request and routes it to the appropriate theme function. If the = current=0A= * theme does not provide an override function, the generic theme = function is=0A= * called.=0A= *=0A= * For example, to retrieve the HTML for text that should be emphasized = and=0A= * displayed as a placeholder inside a sentence, call=0A= * Drupal.theme('placeholder', text).=0A= *=0A= * @param func=0A= * The name of the theme function to call.=0A= * @param ...=0A= * Additional arguments to pass along to the theme function.=0A= * @return=0A= * Any data the theme function returns. This could be a plain HTML = string,=0A= * but also a complex object.=0A= */=0A= Drupal.theme =3D function (func) {=0A= var args =3D Array.prototype.slice.apply(arguments, [1]);=0A= =0A= return (Drupal.theme[func] || = Drupal.theme.prototype[func]).apply(this, args);=0A= };=0A= =0A= /**=0A= * Freeze the current body height (as minimum height). Used to prevent=0A= * unnecessary upwards scrolling when doing DOM manipulations.=0A= */=0A= Drupal.freezeHeight =3D function () {=0A= Drupal.unfreezeHeight();=0A= $('<div id=3D"freeze-height"></div>').css({=0A= position: 'absolute',=0A= top: '0px',=0A= left: '0px',=0A= width: '1px',=0A= height: $('body').css('height')=0A= }).appendTo('body');=0A= };=0A= =0A= /**=0A= * Unfreeze the body height.=0A= */=0A= Drupal.unfreezeHeight =3D function () {=0A= $('#freeze-height').remove();=0A= };=0A= =0A= /**=0A= * Encodes a Drupal path for use in a URL.=0A= *=0A= * For aesthetic reasons slashes are not escaped.=0A= */=0A= Drupal.encodePath =3D function (item, uri) {=0A= uri =3D uri || location.href;=0A= return encodeURIComponent(item).replace(/%2F/g, '/');=0A= };=0A= =0A= /**=0A= * Get the text selection in a textarea.=0A= */=0A= Drupal.getSelection =3D function (element) {=0A= if (typeof element.selectionStart !=3D 'number' && document.selection) = {=0A= // The current selection.=0A= var range1 =3D document.selection.createRange();=0A= var range2 =3D range1.duplicate();=0A= // Select all text.=0A= range2.moveToElementText(element);=0A= // Now move 'dummy' end point to end point of original range.=0A= range2.setEndPoint('EndToEnd', range1);=0A= // Now we can calculate start and end points.=0A= var start =3D range2.text.length - range1.text.length;=0A= var end =3D start + range1.text.length;=0A= return { 'start': start, 'end': end };=0A= }=0A= return { 'start': element.selectionStart, 'end': element.selectionEnd = };=0A= };=0A= =0A= /**=0A= * Build an error message from an Ajax response.=0A= */=0A= Drupal.ajaxError =3D function (xmlhttp, uri) {=0A= var statusCode, statusText, pathText, responseText, readyStateText, = message;=0A= if (xmlhttp.status) {=0A= statusCode =3D "\n" + Drupal.t("An AJAX HTTP error occurred.") + = "\n" + Drupal.t("HTTP Result Code: !status", {'!status': = xmlhttp.status});=0A= }=0A= else {=0A= statusCode =3D "\n" + Drupal.t("An AJAX HTTP request terminated = abnormally.");=0A= }=0A= statusCode +=3D "\n" + Drupal.t("Debugging information follows.");=0A= pathText =3D "\n" + Drupal.t("Path: !uri", {'!uri': uri} );=0A= statusText =3D '';=0A= // In some cases, when statusCode =3D=3D 0, xmlhttp.statusText may not = be defined.=0A= // Unfortunately, testing for it with typeof, etc, doesn't seem to = catch that=0A= // and the test causes an exception. So we need to catch the exception = here.=0A= try {=0A= statusText =3D "\n" + Drupal.t("StatusText: !statusText", = {'!statusText': $.trim(xmlhttp.statusText)});=0A= }=0A= catch (e) {}=0A= =0A= responseText =3D '';=0A= // Again, we don't have a way to know for sure whether accessing=0A= // xmlhttp.responseText is going to throw an exception. So we'll catch = it.=0A= try {=0A= responseText =3D "\n" + Drupal.t("ResponseText: !responseText", = {'!responseText': $.trim(xmlhttp.responseText) } );=0A= } catch (e) {}=0A= =0A= // Make the responseText more readable by stripping HTML tags and = newlines.=0A= responseText =3D = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,"");=0A= responseText =3D responseText.replace(/[\n]+\s+/g,"\n");=0A= =0A= // We don't need readyState except for status =3D=3D 0.=0A= readyStateText =3D xmlhttp.status =3D=3D 0 ? ("\n" + = Drupal.t("ReadyState: !readyState", {'!readyState': = xmlhttp.readyState})) : "";=0A= =0A= message =3D statusCode + pathText + statusText + responseText + = readyStateText;=0A= return message;=0A= };=0A= =0A= // Class indicating that JS is enabled; used for styling purpose.=0A= $('html').addClass('js');=0A= =0A= // 'js enabled' cookie.=0A= document.cookie =3D 'has_js=3D1; path=3D/';=0A= =0A= /**=0A= * Additions to jQuery.support.=0A= */=0A= $(function () {=0A= /**=0A= * Boolean indicating whether or not position:fixed is supported.=0A= */=0A= if (jQuery.support.positionFixed =3D=3D=3D undefined) {=0A= var el =3D $('<div style=3D"position:fixed; top:10px" = />').appendTo(document.body);=0A= jQuery.support.positionFixed =3D el[0].offsetTop =3D=3D=3D 10;=0A= el.remove();=0A= }=0A= });=0A= =0A= //Attach all behaviors.=0A= $(function () {=0A= Drupal.attachBehaviors(document, Drupal.settings);=0A= });=0A= =0A= /**=0A= * The default themes.=0A= */=0A= Drupal.theme.prototype =3D {=0A= =0A= /**=0A= * Formats text for emphasized display in a placeholder inside a = sentence.=0A= *=0A= * @param str=0A= * The text to format (plain-text).=0A= * @return=0A= * The formatted text (html).=0A= */=0A= placeholder: function (str) {=0A= return '<em class=3D"placeholder">' + Drupal.checkPlain(str) + = '</em>';=0A= }=0A= };=0A= =0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_004.js =0A= /**=0A= * Cookie plugin 1.0=0A= *=0A= * Copyright (c) 2006 Klaus Hartl (stilbuero.de)=0A= * Dual licensed under the MIT and GPL licenses:=0A= * http://www.opensource.org/licenses/mit-license.php=0A= * http://www.gnu.org/licenses/gpl.html=0A= *=0A= */=0A= jQuery.cookie=3Dfunction(b,j,m){if(typeof = j!=3D"undefined"){m=3Dm||{};if(j=3D=3D=3Dnull){j=3D"";m.expires=3D-1}var = e=3D"";if(m.expires&&(typeof = m.expires=3D=3D"number"||m.expires.toUTCString)){var f;if(typeof = m.expires=3D=3D"number"){f=3Dnew = Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=3Dm.expire= s}e=3D"; expires=3D"+f.toUTCString()}var l=3Dm.path?"; = path=3D"+(m.path):"";var g=3Dm.domain?"; domain=3D"+(m.domain):"";var = a=3Dm.secure?"; = secure":"";document.cookie=3D[b,"=3D",encodeURIComponent(j),e,l,g,a].join= ("")}else{var d=3Dnull;if(document.cookie&&document.cookie!=3D""){var = k=3Ddocument.cookie.split(";");for(var h=3D0;h<k.length;h++){var = c=3DjQuery.trim(k[h]);if(c.substring(0,b.length+1)=3D=3D(b+"=3D")){d=3Dde= codeURIComponent(c.substring(b.length+1));break}}}return d}};=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_012.js /*jslint browser: true */ /*global jQuery: true */=0A= =0A= /**=0A= * jQuery Cookie plugin=0A= *=0A= * Copyright (c) 2010 Klaus Hartl (stilbuero.de)=0A= * Dual licensed under the MIT and GPL licenses:=0A= * http://www.opensource.org/licenses/mit-license.php=0A= * http://www.gnu.org/licenses/gpl.html=0A= *=0A= */=0A= =0A= // TODO JsDoc=0A= =0A= /**=0A= * Create a cookie with the given key and value and other optional = parameters.=0A= *=0A= * @example $.cookie('the_cookie', 'the_value');=0A= * @desc Set the value of a cookie.=0A= * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', = domain: 'jquery.com', secure: true });=0A= * @desc Create a cookie with all available options.=0A= * @example $.cookie('the_cookie', 'the_value');=0A= * @desc Create a session cookie.=0A= * @example $.cookie('the_cookie', null);=0A= * @desc Delete a cookie by passing null as value. Keep in mind that you = have to use the same path and domain=0A= * used when the cookie was set.=0A= *=0A= * @param String key The key of the cookie.=0A= * @param String value The value of the cookie.=0A= * @param Object options An object literal containing key/value pairs to = provide optional cookie attributes.=0A= * @option Number|Date expires Either an integer specifying the = expiration date from now on in days or a Date object.=0A= * If a negative value is specified (e.g. a = date in the past), the cookie will be deleted.=0A= * If set to null or omitted, the cookie = will be a session cookie and will not be retained=0A= * when the the browser exits.=0A= * @option String path The value of the path atribute of the cookie = (default: path of page that created the cookie).=0A= * @option String domain The value of the domain attribute of the cookie = (default: domain of page that created the cookie).=0A= * @option Boolean secure If true, the secure attribute of the cookie = will be set and the cookie transmission will=0A= * require a secure protocol (like HTTPS).=0A= * @type undefined=0A= *=0A= * @name $.cookie=0A= * @cat Plugins/Cookie=0A= * @author Klaus Hartl/klaus.hartl@stilbuero.de=0A= */=0A= =0A= /**=0A= * Get the value of a cookie with the given key.=0A= *=0A= * @example $.cookie('the_cookie');=0A= * @desc Get the value of a cookie.=0A= *=0A= * @param String key The key of the cookie.=0A= * @return The value of the cookie.=0A= * @type String=0A= *=0A= * @name $.cookie=0A= * @cat Plugins/Cookie=0A= * @author Klaus Hartl/klaus.hartl@stilbuero.de=0A= */=0A= jQuery.cookie =3D function (key, value, options) {=0A= =0A= // key and value given, set cookie...=0A= if (arguments.length > 1 && (value =3D=3D=3D null || typeof value = !=3D=3D "object")) {=0A= options =3D jQuery.extend({}, options);=0A= =0A= if (value =3D=3D=3D null) {=0A= options.expires =3D -1;=0A= }=0A= =0A= if (typeof options.expires =3D=3D=3D 'number') {=0A= var days =3D options.expires, t =3D options.expires =3D new = Date();=0A= t.setDate(t.getDate() + days);=0A= }=0A= =0A= return (document.cookie =3D [=0A= encodeURIComponent(key), '=3D',=0A= options.raw ? String(value) : = encodeURIComponent(String(value)),=0A= options.expires ? '; expires=3D' + = options.expires.toUTCString() : '', // use expires attribute, max-age is = not supported by IE=0A= options.path ? '; path=3D' + options.path : '',=0A= options.domain ? '; domain=3D' + options.domain : '',=0A= options.secure ? '; secure' : ''=0A= ].join(''));=0A= }=0A= =0A= // key and possibly options given, get cookie...=0A= options =3D value || {};=0A= var result, decode =3D options.raw ? function (s) { return s; } : = decodeURIComponent;=0A= return (result =3D new RegExp('(?:^|; )' + encodeURIComponent(key) + = '=3D([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;=0A= };=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_008.js /*!=0A= * jQuery Form Plugin=0A= * version: 2.69 (06-APR-2011)=0A= * @requires jQuery v1.3.2 or later=0A= *=0A= * Examples and documentation at: http://malsup.com/jquery/form/=0A= * Dual licensed under the MIT and GPL licenses:=0A= * http://www.opensource.org/licenses/mit-license.php=0A= * http://www.gnu.org/licenses/gpl.html=0A= */=0A= (function(a){function b(){if(a.fn.ajaxSubmit.debug){var = b=3D"[jquery.form] = "+Array.prototype.join.call(arguments,"");window.console&&window.console.= log?window.console.log(b):window.opera&&window.opera.postError&&window.op= era.postError(b)}}a.fn.ajaxSubmit=3Dfunction(c){function r(){function = t(){if(!j.aborted){var = c=3Di.contentWindow?i.contentWindow.document:i.contentDocument?i.contentD= ocument:i.document;if(!c||c.location.href=3D=3De.iframeSrc)if(!m)return;i= .detachEvent?i.detachEvent("onload",t):i.removeEventListener("load",t,!1)= ;var d=3D!0;try{if(m)throw"timeout";var = f=3De.dataType=3D=3D"xml"||c.XMLDocument||a.isXMLDoc(c);b("isXml=3D"+f);i= f(!f&&window.opera&&(c.body=3D=3Dnull||c.body.innerHTML=3D=3D"")&&--s){b(= "requeing onLoad callback, DOM not = available"),setTimeout(t,250);return}j.responseText=3Dc.body?c.body.inner= HTML:c.documentElement?c.documentElement.innerHTML:null,j.responseXML=3Dc= .XMLDocument?c.XMLDocument:c,j.getResponseHeader=3Dfunction(a){var = b=3D{"content-type":e.dataType};return b[a]};var = g=3D/(json|script)/.test(e.dataType);if(g||e.textarea){var = l=3Dc.getElementsByTagName("textarea")[0];if(l)j.responseText=3Dl.value;e= lse if(g){var = n=3Dc.getElementsByTagName("pre")[0],o=3Dc.getElementsByTagName("body")[0= ];n?j.responseText=3Dn.textContent:o&&(j.responseText=3Do.innerHTML)}}els= e = e.dataType=3D=3D"xml"&&!j.responseXML&&j.responseText!=3Dnull&&(j.respons= eXML=3Du(j.responseText));q=3Dw(j,e.dataType,e)}catch(p){b("error = caught:",p),d=3D!1,j.error=3Dp,e.error&&e.error.call(e.context,j,"error",= p),k&&a.event.trigger("ajaxError",[j,e,p])}j.aborted&&(b("upload = aborted"),d=3D!1),d&&(e.success&&e.success.call(e.context,q,"success",j),= k&&a.event.trigger("ajaxSuccess",[j,e])),k&&a.event.trigger("ajaxComplete= ",[j,e]),k&&!--a.active&&a.event.trigger("ajaxStop"),e.complete&&e.comple= te.call(e.context,j,d?"success":"error"),setTimeout(function(){h.removeDa= ta("form-plugin-onload"),h.remove(),j.responseXML=3Dnull},100)}}function = p(){var = b=3Dl.attr("target"),c=3Dl.attr("action");d.setAttribute("target",f),d.ge= tAttribute("method")!=3D"POST"&&d.setAttribute("method","POST"),d.getAttr= ibute("action")!=3De.url&&d.setAttribute("action",e.url),e.skipEncodingOv= erride||l.attr({encoding:"multipart/form-data",enctype:"multipart/form-da= ta"}),e.timeout&&setTimeout(function(){m=3D!0,t()},e.timeout);var = g=3D[];try{if(e.extraData)for(var j in e.extraData)g.push(a('<input = type=3D"hidden" name=3D"'+j+'" value=3D"'+e.extraData[j]+'" = />').appendTo(d)[0]);h.appendTo("body"),i.attachEvent?i.attachEvent("onlo= ad",t):i.addEventListener("load",t,!1),d.submit()}finally{d.setAttribute(= "action",c),b?d.setAttribute("target",b):l.removeAttr("target"),a(g).remo= ve()}}var = d=3Dl[0];if(a(":input[name=3Dsubmit],:input[id=3Dsubmit]",d).length)alert= ('Error: Form elements must not have name or id of "submit".');else{var = e=3Da.extend(!0,{},a.ajaxSettings,c);e.context=3De.context||e;var = f=3D"jqFormIO"+(new Date).getTime(),g=3D"_"+f,h=3Da('<iframe = id=3D"'+f+'" name=3D"'+f+'" src=3D"'+e.iframeSrc+'" = />'),i=3Dh[0];h.css({position:"absolute",top:"-1000px",left:"-1000px"});v= ar = j=3D{aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/= a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setR= equestHeader:function(){},abort:function(){b("aborting upload...");var = c=3D"aborted";this.aborted=3D1,h.attr("src",e.iframeSrc),j.error=3Dc,e.er= ror&&e.error.call(e.context,j,"error",c),k&&a.event.trigger("ajaxError",[= j,e,c]),e.complete&&e.complete.call(e.context,j,"error")}},k=3De.global;k= &&!(a.active++)&&a.event.trigger("ajaxStart"),k&&a.event.trigger("ajaxSen= d",[j,e]);if(e.beforeSend&&e.beforeSend.call(e.context,j,e)=3D=3D=3D!1){e= .global&&a.active--;return}if(j.aborted)return;var = m=3D0,n=3Dd.clk;if(n){var = o=3Dn.name;o&&!n.disabled&&(e.extraData=3De.extraData||{},e.extraData[o]=3D= n.value,n.type=3D=3D"image"&&(e.extraData[o+".x"]=3Dd.clk_x,e.extraData[o= +".y"]=3Dd.clk_y))}e.forceSync?p():setTimeout(p,10);var = q,r,s=3D50,u=3Da.parseXML||function(a,b){window.ActiveXObject?(b=3Dnew = ActiveXObject("Microsoft.XMLDOM"),b.async=3D"false",b.loadXML(a)):b=3D(ne= w DOMParser).parseFromString(a,"text/xml");return = b&&b.documentElement&&b.documentElement.nodeName!=3D"parsererror"?b:null}= ,v=3Da.parseJSON||function(a){return = window.eval("("+a+")")},w=3Dfunction(b,c,d){var = e=3Db.getResponseHeader("content-type")||"",f=3Dc=3D=3D=3D"xml"||!c&&e.in= dexOf("xml")>=3D0,g=3Df?b.responseXML:b.responseText;f&&g.documentElement= .nodeName=3D=3D=3D"parsererror"&&a.error&&a.error("parsererror"),d&&d.dat= aFilter&&(g=3Dd.dataFilter(g,c)),typeof = g=3D=3D"string"&&(c=3D=3D=3D"json"||!c&&e.indexOf("json")>=3D0?g=3Dv(g):(= c=3D=3D=3D"script"||!c&&e.indexOf("javascript")>=3D0)&&a.globalEval(g));r= eturn g}}}if(!this.length){b("ajaxSubmit: skipping submit process - no = element selected");return this}typeof = c=3D=3D"function"&&(c=3D{success:c});var = d=3Dthis.attr("action"),e=3Dtypeof = d=3D=3D"string"?a.trim(d):"";e&&(e=3D(e.match(/^([^#]+)/)||[])[1]),e=3De|= |window.location.href||"",c=3Da.extend(!0,{url:e,success:a.ajaxSettings.s= uccess,type:this[0].getAttribute("method")||"GET",iframeSrc:/^https/i.tes= t(window.location.href||"")?"javascript:false":"about:blank"},c);var = f=3D{};this.trigger("form-pre-serialize",[this,c,f]);if(f.veto){b("ajaxSu= bmit: submit vetoed via form-pre-serialize trigger");return = this}if(c.beforeSerialize&&c.beforeSerialize(this,c)=3D=3D=3D!1){b("ajaxS= ubmit: submit aborted via beforeSerialize callback");return this}var = g,h,i=3Dthis.formToArray(c.semantic);if(c.data){c.extraData=3Dc.data;for(= g in c.data)if(c.data[g]instanceof Array)for(var j in = c.data[g])i.push({name:g,value:c.data[g][j]});else = h=3Dc.data[g],h=3Da.isFunction(h)?h():h,i.push({name:g,value:h})}if(c.bef= oreSubmit&&c.beforeSubmit(i,this,c)=3D=3D=3D!1){b("ajaxSubmit: submit = aborted via beforeSubmit callback");return = this}this.trigger("form-submit-validate",[i,this,c,f]);if(f.veto){b("ajax= Submit: submit vetoed via form-submit-validate trigger");return this}var = k=3Da.param(i);c.type.toUpperCase()=3D=3D"GET"?(c.url+=3D(c.url.indexOf("= ?")>=3D0?"&":"?")+k,c.data=3Dnull):c.data=3Dk;var = l=3Dthis,m=3D[];c.resetForm&&m.push(function(){l.resetForm()}),c.clearFor= m&&m.push(function(){l.clearForm()});if(!c.dataType&&c.target){var = n=3Dc.success||function(){};m.push(function(b){var = d=3Dc.replaceTarget?"replaceWith":"html";a(c.target)[d](b).each(n,argumen= ts)})}else c.success&&m.push(c.success);c.success=3Dfunction(a,b,d){var = e=3Dc.context||c;for(var = f=3D0,g=3Dm.length;f<g;f++)m[f].apply(e,[a,b,d||l,l])};var = o=3Da("input:file",this).length>0,p=3D"multipart/form-data",q=3Dl.attr("e= nctype")=3D=3Dp||l.attr("encoding")=3D=3Dp;c.iframe!=3D=3D!1&&(o||c.ifram= e||q)?c.closeKeepAlive?a.get(c.closeKeepAlive,r):r():a.ajax(c),this.trigg= er("form-submit-notify",[this,c]);return = this},a.fn.ajaxForm=3Dfunction(c){if(this.length=3D=3D=3D0){var = d=3D{s:this.selector,c:this.context};if(!a.isReady&&d.s){b("DOM not = ready, queuing ajaxForm"),a(function(){a(d.s,d.c).ajaxForm(c)});return = this}b("terminating; zero elements found by selector"+(a.isReady?"":" = (DOM not ready)"));return this}return = this.ajaxFormUnbind().bind("submit.form-plugin",function(b){b.isDefaultPr= evented()||(b.preventDefault(),a(this).ajaxSubmit(c))}).bind("click.form-= plugin",function(b){var = c=3Db.target,d=3Da(c);if(!d.is(":submit,input:image")){var = e=3Dd.closest(":submit");if(e.length=3D=3D0)return;c=3De[0]}var = f=3Dthis;f.clk=3Dc;if(c.type=3D=3D"image")if(b.offsetX!=3Dundefined)f.clk= _x=3Db.offsetX,f.clk_y=3Db.offsetY;else if(typeof = a.fn.offset=3D=3D"function"){var = g=3Dd.offset();f.clk_x=3Db.pageX-g.left,f.clk_y=3Db.pageY-g.top}else = f.clk_x=3Db.pageX-c.offsetLeft,f.clk_y=3Db.pageY-c.offsetTop;setTimeout(f= unction(){f.clk=3Df.clk_x=3Df.clk_y=3Dnull},100)})},a.fn.ajaxFormUnbind=3D= function(){return this.unbind("submit.form-plugin = click.form-plugin")},a.fn.formToArray=3Dfunction(b){var = c=3D[];if(this.length=3D=3D=3D0)return c;var = d=3Dthis[0],e=3Db?d.getElementsByTagName("*"):d.elements;if(!e)return = c;var = f,g,h,i,j,k,l;for(f=3D0,k=3De.length;f<k;f++){j=3De[f],h=3Dj.name;if(!h)c= ontinue;if(b&&d.clk&&j.type=3D=3D"image"){!j.disabled&&d.clk=3D=3Dj&&(c.p= ush({name:h,value:a(j).val()}),c.push({name:h+".x",value:d.clk_x},{name:h= +".y",value:d.clk_y}));continue}i=3Da.fieldValue(j,!0);if(i&&i.constructo= r=3D=3DArray)for(g=3D0,l=3Di.length;g<l;g++)c.push({name:h,value:i[g]});e= lse i!=3D=3Dnull&&typeof = i!=3D"undefined"&&c.push({name:h,value:i})}if(!b&&d.clk){var = m=3Da(d.clk),n=3Dm[0];h=3Dn.name,h&&!n.disabled&&n.type=3D=3D"image"&&(c.= push({name:h,value:m.val()}),c.push({name:h+".x",value:d.clk_x},{name:h+"= .y",value:d.clk_y}))}return c},a.fn.formSerialize=3Dfunction(b){return = a.param(this.formToArray(b))},a.fn.fieldSerialize=3Dfunction(b){var = c=3D[];this.each(function(){var d=3Dthis.name;if(!!d){var = e=3Da.fieldValue(this,b);if(e&&e.constructor=3D=3DArray)for(var = f=3D0,g=3De.length;f<g;f++)c.push({name:d,value:e[f]});else = e!=3D=3Dnull&&typeof = e!=3D"undefined"&&c.push({name:this.name,value:e})}});return = a.param(c)},a.fn.fieldValue=3Dfunction(b){for(var = c=3D[],d=3D0,e=3Dthis.length;d<e;d++){var = f=3Dthis[d],g=3Da.fieldValue(f,b);if(g=3D=3D=3Dnull||typeof = g=3D=3D"undefined"||g.constructor=3D=3DArray&&!g.length)continue;g.constr= uctor=3D=3DArray?a.merge(c,g):c.push(g)}return = c},a.fieldValue=3Dfunction(b,c){var = d=3Db.name,e=3Db.type,f=3Db.tagName.toLowerCase();c=3D=3D=3Dundefined&&(c= =3D!0);if(c&&(!d||b.disabled||e=3D=3D"reset"||e=3D=3D"button"||(e=3D=3D"c= heckbox"||e=3D=3D"radio")&&!b.checked||(e=3D=3D"submit"||e=3D=3D"image")&= &b.form&&b.form.clk!=3Db||f=3D=3D"select"&&b.selectedIndex=3D=3D-1))retur= n null;if(f=3D=3D"select"){var g=3Db.selectedIndex;if(g<0)return = null;var = h=3D[],i=3Db.options,j=3De=3D=3D"select-one",k=3Dj?g+1:i.length;for(var = l=3Dj?g:0;l<k;l++){var m=3Di[l];if(m.selected){var = n=3Dm.value;n||(n=3Dm.attributes&&m.attributes.value&&!m.attributes.value= .specified?m.text:m.value);if(j)return n;h.push(n)}}return h}return = a(b).val()},a.fn.clearForm=3Dfunction(){return = this.each(function(){a("input,select,textarea",this).clearFields()})},a.f= n.clearFields=3Da.fn.clearInputs=3Dfunction(){return = this.each(function(){var = a=3Dthis.type,b=3Dthis.tagName.toLowerCase();a=3D=3D"text"||a=3D=3D"passw= ord"||b=3D=3D"textarea"?this.value=3D"":a=3D=3D"checkbox"||a=3D=3D"radio"= ?this.checked=3D!1:b=3D=3D"select"&&(this.selectedIndex=3D-1)})},a.fn.res= etForm=3Dfunction(){return this.each(function(){(typeof = this.reset=3D=3D"function"||typeof = this.reset=3D=3D"object"&&!this.reset.nodeType)&&this.reset()})},a.fn.ena= ble=3Dfunction(a){a=3D=3D=3Dundefined&&(a=3D!0);return = this.each(function(){this.disabled=3D!a})},a.fn.selected=3Dfunction(b){b=3D= =3D=3Dundefined&&(b=3D!0);return this.each(function(){var = c=3Dthis.type;if(c=3D=3D"checkbox"||c=3D=3D"radio")this.checked=3Db;else = if(this.tagName.toLowerCase()=3D=3D"option"){var = d=3Da(this).parent("select");b&&d[0]&&d[0].type=3D=3D"select-one"&&d.find= ("option").selected(!1),this.selected=3Db}})}})(jQuery) ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/ajax.js (function ($) {=0A= =0A= /**=0A= * Provides Ajax page updating via jQuery $.ajax (Asynchronous = JavaScript and XML).=0A= *=0A= * Ajax is a method of making a request via JavaScript while viewing an = HTML=0A= * page. The request returns an array of commands encoded in JSON, which = is=0A= * then executed to make any changes that are necessary to the page.=0A= *=0A= * Drupal uses this file to enhance form elements with #ajax['path'] and=0A= * #ajax['wrapper'] properties. If set, this file will automatically be = included=0A= * to provide Ajax capabilities.=0A= */=0A= =0A= Drupal.ajax =3D Drupal.ajax || {};=0A= =0A= /**=0A= * Attaches the Ajax behavior to each Ajax form element.=0A= */=0A= Drupal.behaviors.AJAX =3D {=0A= attach: function (context, settings) {=0A= // Load all Ajax behaviors specified in the settings.=0A= for (var base in settings.ajax) {=0A= if (!$('#' + base + '.ajax-processed').length) {=0A= var element_settings =3D settings.ajax[base];=0A= =0A= if (typeof element_settings.selector =3D=3D 'undefined') {=0A= element_settings.selector =3D '#' + base;=0A= }=0A= $(element_settings.selector).each(function () {=0A= element_settings.element =3D this;=0A= Drupal.ajax[base] =3D new Drupal.ajax(base, this, = element_settings);=0A= });=0A= =0A= $('#' + base).addClass('ajax-processed');=0A= }=0A= }=0A= =0A= // Bind Ajax behaviors to all items showing the class.=0A= = $('.use-ajax:not(.ajax-processed)').addClass('ajax-processed').each(funct= ion () {=0A= var element_settings =3D {};=0A= // Clicked links look better with the throbber than the progress = bar.=0A= element_settings.progress =3D { 'type': 'throbber' };=0A= =0A= // For anchor tags, these will go to the target of the anchor = rather=0A= // than the usual location.=0A= if ($(this).attr('href')) {=0A= element_settings.url =3D $(this).attr('href');=0A= element_settings.event =3D 'click';=0A= }=0A= var base =3D $(this).attr('id');=0A= Drupal.ajax[base] =3D new Drupal.ajax(base, this, = element_settings);=0A= });=0A= =0A= // This class means to submit the form to the action using Ajax.=0A= = $('.use-ajax-submit:not(.ajax-processed)').addClass('ajax-processed').eac= h(function () {=0A= var element_settings =3D {};=0A= =0A= // Ajax submits specified in this manner automatically submit to = the=0A= // normal form action.=0A= element_settings.url =3D $(this.form).attr('action');=0A= // Form submit button clicks need to tell the form what was = clicked so=0A= // it gets passed in the POST request.=0A= element_settings.setClick =3D true;=0A= // Form buttons use the 'click' event rather than mousedown.=0A= element_settings.event =3D 'click';=0A= // Clicked form buttons look better with the throbber than the = progress bar.=0A= element_settings.progress =3D { 'type': 'throbber' };=0A= =0A= var base =3D $(this).attr('id');=0A= Drupal.ajax[base] =3D new Drupal.ajax(base, this, = element_settings);=0A= });=0A= }=0A= };=0A= =0A= /**=0A= * Ajax object.=0A= *=0A= * All Ajax objects on a page are accessible through the global = Drupal.ajax=0A= * object and are keyed by the submit button's ID. You can access them = from=0A= * your module's JavaScript file to override properties or functions.=0A= *=0A= * For example, if your Ajax enabled button has the ID 'edit-submit', = you can=0A= * redefine the function that is called to insert the new content like = this=0A= * (inside a Drupal.behaviors attach block):=0A= * @code=0A= * Drupal.behaviors.myCustomAJAXStuff =3D {=0A= * attach: function (context, settings) {=0A= * Drupal.ajax['edit-submit'].commands.insert =3D function (ajax, = response, status) {=0A= * new_content =3D $(response.data);=0A= * $('#my-wrapper').append(new_content);=0A= * alert('New content was appended to #my-wrapper');=0A= * }=0A= * }=0A= * };=0A= * @endcode=0A= */=0A= Drupal.ajax =3D function (base, element, element_settings) {=0A= var defaults =3D {=0A= url: 'system/ajax',=0A= event: 'mousedown',=0A= keypress: true,=0A= selector: '#' + base,=0A= effect: 'none',=0A= speed: 'none',=0A= method: 'replaceWith',=0A= progress: {=0A= type: 'throbber',=0A= message: Drupal.t('Please wait...')=0A= },=0A= submit: {=0A= 'js': true=0A= }=0A= };=0A= =0A= $.extend(this, defaults, element_settings);=0A= =0A= this.element =3D element;=0A= this.element_settings =3D element_settings;=0A= =0A= // Replacing 'nojs' with 'ajax' in the URL allows for an easy method = to let=0A= // the server detect when it needs to degrade gracefully.=0A= // There are five scenarios to check for:=0A= // 1. /nojs/=0A= // 2. /nojs$ - The end of a URL string.=0A= // 3. /nojs? - Followed by a query (with clean URLs enabled).=0A= // E.g.: path/nojs?destination=3Dfoobar=0A= // 4. /nojs& - Followed by a query (without clean URLs enabled).=0A= // E.g.: ?q=3Dpath/nojs&destination=3Dfoobar=0A= // 5. /nojs# - Followed by a fragment.=0A= // E.g.: path/nojs#myfragment=0A= this.url =3D element_settings.url.replace(/\/nojs(\/|$|\?|&|#)/g, = '/ajax$1');=0A= this.wrapper =3D '#' + element_settings.wrapper;=0A= =0A= // If there isn't a form, jQuery.ajax() will be used instead, allowing = us to=0A= // bind Ajax to links as well.=0A= if (this.element.form) {=0A= this.form =3D $(this.element.form);=0A= }=0A= =0A= // Set the options for the ajaxSubmit function.=0A= // The 'this' variable will not persist inside of the options object.=0A= var ajax =3D this;=0A= ajax.options =3D {=0A= url: ajax.url,=0A= data: ajax.submit,=0A= beforeSerialize: function (element_settings, options) {=0A= return ajax.beforeSerialize(element_settings, options);=0A= },=0A= beforeSubmit: function (form_values, element_settings, options) {=0A= ajax.ajaxing =3D true;=0A= return ajax.beforeSubmit(form_values, element_settings, options);=0A= },=0A= beforeSend: function (xmlhttprequest, options) {=0A= ajax.ajaxing =3D true;=0A= return ajax.beforeSend(xmlhttprequest, options);=0A= },=0A= success: function (response, status) {=0A= // Sanity check for browser support (object expected).=0A= // When using iFrame uploads, responses must be returned as a = string.=0A= if (typeof response =3D=3D 'string') {=0A= response =3D $.parseJSON(response);=0A= }=0A= return ajax.success(response, status);=0A= },=0A= complete: function (response, status) {=0A= ajax.ajaxing =3D false;=0A= if (status =3D=3D 'error' || status =3D=3D 'parsererror') {=0A= return ajax.error(response, ajax.url);=0A= }=0A= },=0A= dataType: 'json',=0A= type: 'POST'=0A= };=0A= =0A= // Bind the ajaxSubmit function to the element event.=0A= $(ajax.element).bind(element_settings.event, function (event) {=0A= return ajax.eventResponse(this, event);=0A= });=0A= =0A= // If necessary, enable keyboard submission so that Ajax behaviors=0A= // can be triggered through keyboard input as well as e.g. a mousedown=0A= // action.=0A= if (element_settings.keypress) {=0A= $(ajax.element).keypress(function (event) {=0A= return ajax.keypressResponse(this, event);=0A= });=0A= }=0A= =0A= // If necessary, prevent the browser default action of an additional = event.=0A= // For example, prevent the browser default action of a click, even if = the=0A= // AJAX behavior binds to mousedown.=0A= if (element_settings.prevent) {=0A= $(ajax.element).bind(element_settings.prevent, false);=0A= }=0A= };=0A= =0A= /**=0A= * Handle a key press.=0A= *=0A= * The Ajax object will, if instructed, bind to a key press response. = This=0A= * will test to see if the key press is valid to trigger this event and=0A= * if it is, trigger it for us and prevent other keypresses from = triggering.=0A= * In this case we're handling RETURN and SPACEBAR keypresses (event = codes 13=0A= * and 32. RETURN is often used to submit a form when in a textfield, = and =0A= * SPACE is often used to activate an element without submitting. =0A= */=0A= Drupal.ajax.prototype.keypressResponse =3D function (element, event) {=0A= // Create a synonym for this to reduce code confusion.=0A= var ajax =3D this;=0A= =0A= // Detect enter key and space bar and allow the standard response for = them,=0A= // except for form elements of type 'text' and 'textarea', where the =0A= // spacebar activation causes inappropriate activation if = #ajax['keypress'] is =0A= // TRUE. On a text-type widget a space should always be a space.=0A= if (event.which =3D=3D 13 || (event.which =3D=3D 32 && element.type = !=3D 'text' && element.type !=3D 'textarea')) {=0A= = $(ajax.element_settings.element).trigger(ajax.element_settings.event);=0A= return false;=0A= }=0A= };=0A= =0A= /**=0A= * Handle an event that triggers an Ajax response.=0A= *=0A= * When an event that triggers an Ajax response happens, this method will=0A= * perform the actual Ajax call. It is bound to the event using=0A= * bind() in the constructor, and it uses the options specified on the=0A= * ajax object.=0A= */=0A= Drupal.ajax.prototype.eventResponse =3D function (element, event) {=0A= // Create a synonym for this to reduce code confusion.=0A= var ajax =3D this;=0A= =0A= // Do not perform another ajax command if one is already in progress.=0A= if (ajax.ajaxing) {=0A= return false;=0A= }=0A= =0A= try {=0A= if (ajax.form) {=0A= // If setClick is set, we must set this to ensure that the button's=0A= // value is passed.=0A= if (ajax.setClick) {=0A= // Mark the clicked button. 'form.clk' is a special variable for=0A= // ajaxSubmit that tells the system which element got clicked to=0A= // trigger the submit. Without it there would be no 'op' or=0A= // equivalent.=0A= element.form.clk =3D element;=0A= }=0A= =0A= ajax.form.ajaxSubmit(ajax.options);=0A= }=0A= else {=0A= ajax.beforeSerialize(ajax.element, ajax.options);=0A= $.ajax(ajax.options);=0A= }=0A= }=0A= catch (e) {=0A= // Unset the ajax.ajaxing flag here because it won't be unset during=0A= // the complete response.=0A= ajax.ajaxing =3D false;=0A= alert("An error occurred while attempting to process " + = ajax.options.url + ": " + e.message);=0A= }=0A= =0A= // For radio/checkbox, allow the default event. On IE, this means = letting=0A= // it actually check the box.=0A= if (typeof element.type !=3D 'undefined' && (element.type =3D=3D = 'checkbox' || element.type =3D=3D 'radio')) {=0A= return true;=0A= }=0A= else {=0A= return false;=0A= }=0A= =0A= };=0A= =0A= /**=0A= * Handler for the form serialization.=0A= *=0A= * Runs before the beforeSend() handler (see below), and unlike that = one, runs=0A= * before field data is collected.=0A= */=0A= Drupal.ajax.prototype.beforeSerialize =3D function (element, options) {=0A= // Allow detaching behaviors to update field values before collecting = them.=0A= // This is only needed when field values are added to the POST data, = so only=0A= // when there is a form such that this.form.ajaxSubmit() is used = instead of=0A= // $.ajax(). When there is no form and $.ajax() is used, = beforeSerialize()=0A= // isn't called, but don't rely on that: explicitly check this.form.=0A= if (this.form) {=0A= var settings =3D this.settings || Drupal.settings;=0A= Drupal.detachBehaviors(this.form, settings, 'serialize');=0A= }=0A= =0A= // Prevent duplicate HTML ids in the returned markup.=0A= // @see drupal_html_id()=0A= options.data['ajax_html_ids[]'] =3D [];=0A= $('[id]').each(function () {=0A= options.data['ajax_html_ids[]'].push(this.id);=0A= });=0A= =0A= // Allow Drupal to return new JavaScript and CSS files to load without=0A= // returning the ones already loaded.=0A= // @see ajax_base_page_theme()=0A= // @see drupal_get_css()=0A= // @see drupal_get_js()=0A= options.data['ajax_page_state[theme]'] =3D = Drupal.settings.ajaxPageState.theme;=0A= options.data['ajax_page_state[theme_token]'] =3D = Drupal.settings.ajaxPageState.theme_token;=0A= for (var key in Drupal.settings.ajaxPageState.css) {=0A= options.data['ajax_page_state[css][' + key + ']'] =3D 1;=0A= }=0A= for (var key in Drupal.settings.ajaxPageState.js) {=0A= options.data['ajax_page_state[js][' + key + ']'] =3D 1;=0A= }=0A= };=0A= =0A= /**=0A= * Modify form values prior to form submission.=0A= */=0A= Drupal.ajax.prototype.beforeSubmit =3D function (form_values, element, = options) {=0A= // This function is left empty to make it simple to override for = modules=0A= // that wish to add functionality here.=0A= };=0A= =0A= /**=0A= * Prepare the Ajax request before it is sent.=0A= */=0A= Drupal.ajax.prototype.beforeSend =3D function (xmlhttprequest, options) {=0A= // For forms without file inputs, the jQuery Form plugin serializes = the form=0A= // values, and then calls jQuery's $.ajax() function, which invokes = this=0A= // handler. In this circumstance, options.extraData is never used. For = forms=0A= // with file inputs, the jQuery Form plugin uses the browser's normal = form=0A= // submission mechanism, but captures the response in a hidden IFRAME. = In this=0A= // circumstance, it calls this handler first, and then appends hidden = fields=0A= // to the form to submit the values in options.extraData. There is no = simple=0A= // way to know which submission mechanism will be used, so we add to = extraData=0A= // regardless, and allow it to be ignored in the former case.=0A= if (this.form) {=0A= options.extraData =3D options.extraData || {};=0A= =0A= // Let the server know when the IFRAME submission mechanism is used. = The=0A= // server can use this information to wrap the JSON response in a = TEXTAREA,=0A= // as per http://jquery.malsup.com/form/#file-upload.=0A= options.extraData.ajax_iframe_upload =3D '1';=0A= =0A= // The triggering element is about to be disabled (see below), but = if it=0A= // contains a value (e.g., a checkbox, textfield, select, etc.), = ensure that=0A= // value is included in the submission. As per above, submissions = that use=0A= // $.ajax() are already serialized prior to the element being = disabled, so=0A= // this is only needed for IFRAME submissions.=0A= var v =3D $.fieldValue(this.element);=0A= if (v !=3D=3D null) {=0A= options.extraData[this.element.name] =3D Drupal.checkPlain(v);=0A= }=0A= }=0A= =0A= // Disable the element that received the change to prevent user = interface=0A= // interaction while the Ajax request is in progress. ajax.ajaxing = prevents=0A= // the element from triggering a new request, but does not prevent the = user=0A= // from changing its value.=0A= $(this.element).addClass('progress-disabled').attr('disabled', true);=0A= =0A= // Insert progressbar or throbber.=0A= if (this.progress.type =3D=3D 'bar') {=0A= var progressBar =3D new Drupal.progressBar('ajax-progress-' + = this.element.id, eval(this.progress.update_callback), = this.progress.method, eval(this.progress.error_callback));=0A= if (this.progress.message) {=0A= progressBar.setProgress(-1, this.progress.message);=0A= }=0A= if (this.progress.url) {=0A= progressBar.startMonitoring(this.progress.url, = this.progress.interval || 1500);=0A= }=0A= this.progress.element =3D = $(progressBar.element).addClass('ajax-progress ajax-progress-bar');=0A= this.progress.object =3D progressBar;=0A= $(this.element).after(this.progress.element);=0A= }=0A= else if (this.progress.type =3D=3D 'throbber') {=0A= this.progress.element =3D $('<div class=3D"ajax-progress = ajax-progress-throbber"><div class=3D"throbber"> </div></div>');=0A= if (this.progress.message) {=0A= $('.throbber', this.progress.element).after('<div = class=3D"message">' + this.progress.message + '</div>');=0A= }=0A= $(this.element).after(this.progress.element);=0A= }=0A= };=0A= =0A= /**=0A= * Handler for the form redirection completion.=0A= */=0A= Drupal.ajax.prototype.success =3D function (response, status) {=0A= // Remove the progress element.=0A= if (this.progress.element) {=0A= $(this.progress.element).remove();=0A= }=0A= if (this.progress.object) {=0A= this.progress.object.stopMonitoring();=0A= }=0A= = $(this.element).removeClass('progress-disabled').removeAttr('disabled');=0A= =0A= Drupal.freezeHeight();=0A= =0A= for (var i in response) {=0A= if (response.hasOwnProperty(i) && response[i]['command'] && = this.commands[response[i]['command']]) {=0A= this.commands[response[i]['command']](this, response[i], status);=0A= }=0A= }=0A= =0A= // Reattach behaviors, if they were detached in beforeSerialize(). The=0A= // attachBehaviors() called on the new content from processing the = response=0A= // commands is not sufficient, because behaviors from the entire form = need=0A= // to be reattached.=0A= if (this.form) {=0A= var settings =3D this.settings || Drupal.settings;=0A= Drupal.attachBehaviors(this.form, settings);=0A= }=0A= =0A= Drupal.unfreezeHeight();=0A= =0A= // Remove any response-specific settings so they don't get used on the = next=0A= // call by mistake.=0A= this.settings =3D null;=0A= };=0A= =0A= /**=0A= * Build an effect object which tells us how to apply the effect when = adding new HTML.=0A= */=0A= Drupal.ajax.prototype.getEffect =3D function (response) {=0A= var type =3D response.effect || this.effect;=0A= var speed =3D response.speed || this.speed;=0A= =0A= var effect =3D {};=0A= if (type =3D=3D 'none') {=0A= effect.showEffect =3D 'show';=0A= effect.hideEffect =3D 'hide';=0A= effect.showSpeed =3D '';=0A= }=0A= else if (type =3D=3D 'fade') {=0A= effect.showEffect =3D 'fadeIn';=0A= effect.hideEffect =3D 'fadeOut';=0A= effect.showSpeed =3D speed;=0A= }=0A= else {=0A= effect.showEffect =3D type + 'Toggle';=0A= effect.hideEffect =3D type + 'Toggle';=0A= effect.showSpeed =3D speed;=0A= }=0A= =0A= return effect;=0A= };=0A= =0A= /**=0A= * Handler for the form redirection error.=0A= */=0A= Drupal.ajax.prototype.error =3D function (response, uri) {=0A= ////alert(Drupal.ajaxError(response, uri));=0A= //sandy add=0A= // Fix for autocomplete terminated error.=0A= if (response.status !=3D 0) {=0A= alert(Drupal.ajaxError(response, uri));=0A= }=0A= // Remove the progress element.=0A= if (this.progress.element) {=0A= $(this.progress.element).remove();=0A= }=0A= if (this.progress.object) {=0A= this.progress.object.stopMonitoring();=0A= }=0A= // Undo hide.=0A= $(this.wrapper).show();=0A= // Re-enable the element.=0A= = $(this.element).removeClass('progress-disabled').removeAttr('disabled');=0A= // Reattach behaviors, if they were detached in beforeSerialize().=0A= if (this.form) {=0A= var settings =3D response.settings || this.settings || = Drupal.settings;=0A= Drupal.attachBehaviors(this.form, settings);=0A= }=0A= };=0A= =0A= /**=0A= * Provide a series of commands that the server can request the client = perform.=0A= */=0A= Drupal.ajax.prototype.commands =3D {=0A= /**=0A= * Command to insert new content into the DOM.=0A= */=0A= insert: function (ajax, response, status) {=0A= // Get information from the response. If it is not there, default to=0A= // our presets.=0A= var wrapper =3D response.selector ? $(response.selector) : = $(ajax.wrapper);=0A= var method =3D response.method || ajax.method;=0A= var effect =3D ajax.getEffect(response);=0A= =0A= // We don't know what response.data contains: it might be a string = of text=0A= // without HTML, so don't rely on jQuery correctly iterpreting=0A= // $(response.data) as new HTML rather than a CSS selector. Also, if=0A= // response.data contains top-level text nodes, they get lost with = either=0A= // $(response.data) or $('<div></div>').replaceWith(response.data).=0A= var new_content_wrapped =3D $('<div></div>').html(response.data);=0A= var new_content =3D new_content_wrapped.contents();=0A= =0A= // For legacy reasons, the effects processing code assumes that = new_content=0A= // consists of a single top-level element. Also, it has not been=0A= // sufficiently tested whether attachBehaviors() can be successfully = called=0A= // with a context object that includes top-level text nodes. = However, to=0A= // give developers full control of the HTML appearing in the page, = and to=0A= // enable Ajax content to be inserted in places where DIV elements = are not=0A= // allowed (e.g., within TABLE, TR, and SPAN parents), we check if = the new=0A= // content satisfies the requirement of a single top-level element, = and=0A= // only use the container DIV created above when it doesn't. For more=0A= // information, please see http://drupal.org/node/736066.=0A= if (new_content.length !=3D 1 || new_content.get(0).nodeType !=3D 1) = {=0A= new_content =3D new_content_wrapped;=0A= }=0A= =0A= // If removing content from the wrapper, detach behaviors first.=0A= switch (method) {=0A= case 'html':=0A= case 'replaceWith':=0A= case 'replaceAll':=0A= case 'empty':=0A= case 'remove':=0A= var settings =3D response.settings || ajax.settings || = Drupal.settings;=0A= Drupal.detachBehaviors(wrapper, settings);=0A= }=0A= =0A= // Add the new content to the page.=0A= wrapper[method](new_content);=0A= =0A= // Immediately hide the new content if we're using any effects.=0A= if (effect.showEffect !=3D 'show') {=0A= new_content.hide();=0A= }=0A= =0A= // Determine which effect to use and what content will receive the=0A= // effect, then show the new content.=0A= if ($('.ajax-new-content', new_content).length > 0) {=0A= $('.ajax-new-content', new_content).hide();=0A= new_content.show();=0A= $('.ajax-new-content', = new_content)[effect.showEffect](effect.showSpeed);=0A= }=0A= else if (effect.showEffect !=3D 'show') {=0A= new_content[effect.showEffect](effect.showSpeed);=0A= }=0A= =0A= // Attach all JavaScript behaviors to the new content, if it was = successfully=0A= // added to the page, this if statement allows #ajax['wrapper'] to be=0A= // optional.=0A= if (new_content.parents('html').length > 0) {=0A= // Apply any settings from the returned JSON if available.=0A= var settings =3D response.settings || ajax.settings || = Drupal.settings;=0A= Drupal.attachBehaviors(new_content, settings);=0A= }=0A= },=0A= =0A= /**=0A= * Command to remove a chunk from the page.=0A= */=0A= remove: function (ajax, response, status) {=0A= var settings =3D response.settings || ajax.settings || = Drupal.settings;=0A= Drupal.detachBehaviors($(response.selector), settings);=0A= $(response.selector).remove();=0A= },=0A= =0A= /**=0A= * Command to mark a chunk changed.=0A= */=0A= changed: function (ajax, response, status) {=0A= if (!$(response.selector).hasClass('ajax-changed')) {=0A= $(response.selector).addClass('ajax-changed');=0A= if (response.asterisk) {=0A= $(response.selector).find(response.asterisk).append(' <span = class=3D"ajax-changed">*</span> ');=0A= }=0A= }=0A= },=0A= =0A= /**=0A= * Command to provide an alert.=0A= */=0A= alert: function (ajax, response, status) {=0A= alert(response.text, response.title);=0A= },=0A= =0A= /**=0A= * Command to provide the jQuery css() function.=0A= */=0A= css: function (ajax, response, status) {=0A= $(response.selector).css(response.argument);=0A= },=0A= =0A= /**=0A= * Command to set the settings that will be used for other commands in = this response.=0A= */=0A= settings: function (ajax, response, status) {=0A= if (response.merge) {=0A= $.extend(true, Drupal.settings, response.settings);=0A= }=0A= else {=0A= ajax.settings =3D response.settings;=0A= }=0A= },=0A= =0A= /**=0A= * Command to attach data using jQuery's data API.=0A= */=0A= data: function (ajax, response, status) {=0A= $(response.selector).data(response.name, response.value);=0A= },=0A= =0A= /**=0A= * Command to apply a jQuery method.=0A= */=0A= invoke: function (ajax, response, status) {=0A= var $element =3D $(response.selector);=0A= $element[response.method].apply($element, response.arguments);=0A= },=0A= =0A= /**=0A= * Command to restripe a table.=0A= */=0A= restripe: function (ajax, response, status) {=0A= // :even and :odd are reversed because jQuery counts from 0 and=0A= // we count from 1, so we're out of sync.=0A= // Match immediate children of the parent element to allow nesting.=0A= $('> tbody > tr:visible, > tr:visible', $(response.selector))=0A= .removeClass('odd even')=0A= .filter(':even').addClass('odd').end()=0A= .filter(':odd').addClass('even');=0A= },=0A= =0A= /**=0A= * Command to add css.=0A= *=0A= * Uses the proprietary addImport method if available as browsers which=0A= * support that method ignore @import statements in dynamically added=0A= * stylesheets.=0A= */=0A= add_css: function (ajax, response, status) {=0A= // Add the styles in the normal way.=0A= $('head').prepend(response.data);=0A= // Add imports in the styles using the addImport method if available.=0A= var match, importMatch =3D /^@import url\("(.*)"\);$/igm;=0A= if (document.styleSheets[0].addImport && = importMatch.test(response.data)) {=0A= importMatch.lastIndex =3D 0;=0A= while (match =3D importMatch.exec(response.data)) {=0A= document.styleSheets[0].addImport(match[1]);=0A= }=0A= }=0A= },=0A= =0A= /**=0A= * Command to update a form's build ID.=0A= */=0A= updateBuildId: function(ajax, response, status) {=0A= $('input[name=3D"form_build_id"][value=3D"' + response['old'] + = '"]').val(response['new']);=0A= }=0A= };=0A= =0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_update.js (function (D) {=0A= var beforeSerialize =3D D.ajax.prototype.beforeSerialize;=0A= D.ajax.prototype.beforeSerialize =3D function (element, options) {=0A= beforeSerialize.call(this, element, options);=0A= options.data['ajax_page_state[jquery_version]'] =3D = D.settings.ajaxPageState.jquery_version;=0A= }=0A= })(Drupal);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/extlink.js (function ($) {=0A= =0A= Drupal.extlink =3D Drupal.extlink || {};=0A= =0A= Drupal.extlink.attach =3D function (context, settings) {=0A= if (!settings.hasOwnProperty('extlink')) {=0A= return;=0A= }=0A= =0A= // Strip the host name down, removing ports, subdomains, or www.=0A= var pattern =3D = /^(([^\/:]+?\.)*)([^\.:]{4,})((\.[a-z]{1,4})*)(:[0-9]{1,5})?$/;=0A= var host =3D window.location.host.replace(pattern, '$3$4');=0A= var subdomain =3D window.location.host.replace(pattern, '$1');=0A= =0A= // Determine what subdomains are considered internal.=0A= var subdomains;=0A= if (settings.extlink.extSubdomains) {=0A= subdomains =3D "([^/]*\\.)?";=0A= }=0A= else if (subdomain =3D=3D 'www.' || subdomain =3D=3D '') {=0A= subdomains =3D "(www\\.)?";=0A= }=0A= else {=0A= subdomains =3D subdomain.replace(".", "\\.");=0A= }=0A= =0A= // Build regular expressions that define an internal link.=0A= var internal_link =3D new RegExp("^https?://" + subdomains + host, = "i");=0A= =0A= // Extra internal link matching.=0A= var extInclude =3D false;=0A= if (settings.extlink.extInclude) {=0A= extInclude =3D new RegExp(settings.extlink.extInclude.replace(/\\/, = '\\'), "i");=0A= }=0A= =0A= // Extra external link matching.=0A= var extExclude =3D false;=0A= if (settings.extlink.extExclude) {=0A= extExclude =3D new RegExp(settings.extlink.extExclude.replace(/\\/, = '\\'), "i");=0A= }=0A= =0A= // Extra external link CSS selector exclusion.=0A= var extCssExclude =3D false;=0A= if (settings.extlink.extCssExclude) {=0A= extCssExclude =3D settings.extlink.extCssExclude;=0A= }=0A= =0A= // Extra external link CSS selector explicit.=0A= var extCssExplicit =3D false;=0A= if (settings.extlink.extCssExplicit) {=0A= extCssExplicit =3D settings.extlink.extCssExplicit;=0A= }=0A= =0A= // Find all links which are NOT internal and begin with http as opposed=0A= // to ftp://, javascript:, etc. other kinds of links.=0A= // When operating on the 'this' variable, the host has been appended to=0A= // all links by the browser, even local ones.=0A= // In jQuery 1.1 and higher, we'd use a filter method here, but it is = not=0A= // available in jQuery 1.0 (Drupal 5 default).=0A= var external_links =3D new Array();=0A= var mailto_links =3D new Array();=0A= $("a:not(." + settings.extlink.extClass + ", ." + = settings.extlink.mailtoClass + "), area:not(." + = settings.extlink.extClass + ", ." + settings.extlink.mailtoClass + ")", = context).each(function(el) {=0A= try {=0A= var url =3D this.href.toLowerCase();=0A= if (url.indexOf('http') =3D=3D 0=0A= && ((!url.match(internal_link) && !(extExclude && = url.match(extExclude))) || (extInclude && url.match(extInclude)))=0A= && !(extCssExclude && $(this).parents(extCssExclude).length > 0)=0A= && !(extCssExplicit && $(this).parents(extCssExplicit).length < = 1)) {=0A= external_links.push(this);=0A= }=0A= // Do not include area tags with begin with mailto: (this prohibits=0A= // icons from being added to image-maps).=0A= else if (this.tagName !=3D 'AREA' =0A= && url.indexOf('mailto:') =3D=3D 0 =0A= && !(extCssExclude && $(this).parents(extCssExclude).length > 0)=0A= && !(extCssExplicit && $(this).parents(extCssExplicit).length < = 1)) {=0A= mailto_links.push(this);=0A= }=0A= }=0A= // IE7 throws errors often when dealing with irregular links, such = as:=0A= // <a href=3D"node/10"></a> Empty tags.=0A= // <a href=3D"http://user:pass@example.com">example</a> User:pass = syntax.=0A= catch (error) {=0A= return false;=0A= }=0A= });=0A= =0A= if (settings.extlink.extClass) {=0A= Drupal.extlink.applyClassAndSpan(external_links, = settings.extlink.extClass);=0A= }=0A= =0A= if (settings.extlink.mailtoClass) {=0A= Drupal.extlink.applyClassAndSpan(mailto_links, = settings.extlink.mailtoClass);=0A= }=0A= =0A= if (settings.extlink.extTarget) {=0A= // Apply the target attribute to all links.=0A= $(external_links).attr('target', settings.extlink.extTarget);=0A= }=0A= =0A= Drupal.extlink =3D Drupal.extlink || {};=0A= =0A= // Set up default click function for the external links popup. This = should be=0A= // overridden by modules wanting to alter the popup.=0A= Drupal.extlink.popupClickHandler =3D Drupal.extlink.popupClickHandler = || function() {=0A= if (settings.extlink.extAlert) {=0A= return confirm(settings.extlink.extAlertText);=0A= }=0A= }=0A= =0A= $(external_links).click(function(e) {=0A= return Drupal.extlink.popupClickHandler(e);=0A= });=0A= };=0A= =0A= /**=0A= * Apply a class and a trailing <span> to all links not containing = images.=0A= *=0A= * @param links=0A= * An array of DOM elements representing the links.=0A= * @param class_name=0A= * The class to apply to the links.=0A= */=0A= Drupal.extlink.applyClassAndSpan =3D function (links, class_name) {=0A= var $links_to_process;=0A= if (Drupal.settings.extlink.extImgClass){=0A= $links_to_process =3D $(links);=0A= }=0A= else {=0A= var links_with_images =3D $(links).find('img').parents('a');=0A= $links_to_process =3D $(links).not(links_with_images);=0A= }=0A= $links_to_process.addClass(class_name);=0A= var i;=0A= var length =3D $links_to_process.length;=0A= for (i =3D 0; i < length; i++) {=0A= var $link =3D $($links_to_process[i]);=0A= if ($link.css('display') =3D=3D 'inline' || $link.css('display') = =3D=3D 'inline-block') {=0A= if (class_name =3D=3D Drupal.settings.extlink.mailtoClass) {=0A= $link.append('<span class=3D"' + class_name + '"><span = class=3D"element-invisible"> ' + Drupal.settings.extlink.mailtoLabel + = '</span></span>');=0A= }=0A= else {=0A= $link.append('<span class=3D"' + class_name + '"><span = class=3D"element-invisible"> ' + Drupal.settings.extlink.extLabel + = '</span></span>');=0A= }=0A= }=0A= }=0A= };=0A= =0A= Drupal.behaviors.extlink =3D Drupal.behaviors.extlink || {};=0A= Drupal.behaviors.extlink.attach =3D function (context, settings) {=0A= // Backwards compatibility, for the benefit of modules overriding = extlink=0A= // functionality by defining an "extlinkAttach" global function.=0A= if (typeof extlinkAttach =3D=3D=3D 'function') {=0A= extlinkAttach(context);=0A= }=0A= else {=0A= Drupal.extlink.attach(context, settings);=0A= }=0A= };=0A= =0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/zh-hant_Dtwk8lwXOjJhFMjfL2UWkd9bDgWgRtC_J6jZADtGnq0.js Drupal.locale =3D { 'pluralFormula': function ($n) { return = Number(($n>1)); }, 'strings': {"":{"An AJAX HTTP error = occurred.":"\u767c\u751f\u4e00\u500b AJAX HTTP \u932f\u8aa4\u3002","HTTP = Result Code: !status":"HTTP \u7d50\u679c\u78bc\uff1a!status","An AJAX = HTTP request terminated = abnormally.":"\u6709\u500b\u4e0d\u6b63\u5e38\u7d50\u675f\u7684 AJAX HTTP = \u8cc7\u6e90\u8acb\u6c42","Debugging information = follows.":"\u9644\u4e0a\u5075\u932f\u8cc7\u8a0a\u3002","Path: = !uri":"\u8def\u5f91\uff1a!uri","StatusText: = !statusText":"\u72c0\u614b\u6587\u5b57\uff1a!statusText","ResponseText: = !responseText":"\u56de\u61c9\u6587\u5b57\uff1a!responseText","ReadyState:= !readyState":"ReadyState: = !readyState","Loading":"\u8f09\u5165\u4e2d","(active = tab)":"(\u4f5c\u7528\u4e2d\u9801\u7c64)","Hide":"\u96b1\u85cf","Show":"\u= 986f\u793a","Show shortcuts":"\u986f\u793a\u6377\u5f91","Hide = shortcuts":"\u96b1\u85cf\u6377\u5f91","@title dialog":"@title = \u5c0d\u8a71\u65b9\u584a","Configure":"\u8a2d\u7f6e","Hide = summary":"\u96b1\u85cf\u6458\u8981","Edit = summary":"\u7de8\u8f2f\u6458\u8981","Not in = menu":"\u4e0d\u5b58\u5728\u9078\u55ae\u4e2d","New = revision":"\u5efa\u7acb\u4fee\u8a02\u7248\u672c","No = revision":"\u6c92\u6709\u4fee\u8a02\u7248\u672c","By @name on = @date":"\u7531 @name \u65bc @date \u767c\u8868","By = @name":"\u4f9d\u540d\u7a31","Not published":"\u672a\u767c\u8868","Alias: = @alias":"\u5225\u540d\uff1a@alias","No = alias":"\u6c92\u6709\u8def\u5f91\u5225\u540d","@number comments per = page":"\u6bcf\u9801\u56de\u61c9\u6578\u91cf @number\u500b","Autocomplete = popup":"\u81ea\u52d5\u5b8c\u6210\u5feb\u986f","Searching for = matches...":"\u6b63\u5728\u67e5\u627e\u5339\u914d\u9805...","Edit":"\u7de= 8\u8f2f","Requires a = title":"\u9700\u8981\u586b\u5beb\u6a19\u984c","Don\u0027t display post = information":"\u4e0d\u8981\u986f\u793a\u6587\u7ae0\u7684\u5f35\u8cbc\u8cc= 7\u8a0a","Not restricted":"\u672a\u53d7\u9650\u5236","Restricted to = certain pages":"\u53d7\u9650\u65bc\u7279\u5b9a\u9801\u9762","Not = customizable":"\u7121\u6cd5\u81ea\u8a02","The changes to these blocks = will not be saved until the \u003Cem\u003ESave blocks\u003C\/em\u003E = button is = clicked.":"\u9019\u4e9b\u5340\u584a\u7684\u8b8a\u66f4\u4e0d\u6703\u88ab\u= 5132\u5b58\u8d77\u4f86\uff0c\u9664\u975e\u60a8\u6309\u4e0b\u003Cem\u003E\= u5132\u5b58\u5340\u584a\u003C\/em\u003E \u7684\u6309\u9215\u3002","The = block cannot be placed in this = region.":"\u7121\u6cd5\u628a\u5340\u584a\u653e\u5230\u9019\u500b\u5340\u5= 7df\u3002","Please = wait...":"\u8acb\u7a0d\u7b49...","Enabled":"\u555f\u7528","Disabled":"\u5= 05c\u7528","Re-order rows by numerical weight instead of = dragging.":"\u900f\u904e\u6578\u5b57\u6b0a\u91cd\u65b9\u5f0f\u4f86\u9032\= u884c\u91cd\u65b0\u6392\u5e8f\u3002","Show row = weights":"\u986f\u793a\u5217\u6b04\u6b0a\u91cd","Hide row = weights":"\u96b1\u85cf\u5217\u6b04\u6b0a\u91cd","Drag to = re-order":"\u6293\u53d6\u9805\u76ee\u9032\u884c\u91cd\u65b0\u6392\u5217",= "Changes made in this table will not be saved until the form is = submitted.":"\u5728\u9001\u51fa\u9019\u500b\u8868\u55ae\u4e4b\u524d\uff0c= \u9019\u500b\u8868\u683c\u4e2d\u7684\u8b8a\u66f4\u4e0d\u6703\u88ab\u5132\= u5b58\u3002","Select all rows in this = table":"\u9078\u53d6\u8868\u683c\u4e2d\u7684\u6240\u6709\u5217","Deselect= all rows in this = table":"\u53d6\u6d88\u9078\u53d6\u8868\u683c\u4e2d\u7684\u6240\u6709\u521= 7","Home":"\u9996\u9801","None":"\u7121","all":"\u5168\u90e8\u986f\u793a"= ,"none":"\u7121","Previous":"\u524d\u9805","Next":"\u4e0b\u4e00\u9801","D= efault":"\u9810\u8a2d","Close":"\u95dc\u9589","Remove":"\u79fb\u9664","Ad= d":"\u65b0\u589e","Done":"\u5b8c\u6210","Value":"\u6578\u503c","Published= ":"\u5df2\u767c\u8868","Other":"\u5176\u4ed6","Select":"\u9078\u64c7","Su= nday":"\u661f\u671f\u65e5","Monday":"\u661f\u671f\u4e00","Tuesday":"\u661= f\u671f\u4e8c","Wednesday":"\u661f\u671f\u4e09","Thursday":"\u661f\u671f\= u56db","Friday":"\u661f\u671f\u4e94","Saturday":"\u661f\u671f\u516d","Upl= oad":"\u4e0a\u8f09","OK":"\u78ba\u5b9a","This field is = required.":"\u6b64\u6b04\u4f4d\u662f\u5fc5\u9700\u7684\u3002","Prev":"\u4= e0a\u4e00\u9801","Mon":"\u9031\u4e00","Tue":"\u4e8c","Wed":"\u4e09","Thu"= :"\u56db","Fri":"\u9031\u4e94","Sat":"\u9031\u516d","Sun":"\u5468\u65e5",= "January":"\u4e00\u6708","February":"\u4e8c\u6708","March":"\u4e09\u6708"= ,"April":"\u56db\u6708","May":"5 = \u6708","June":"\u516d\u6708","July":"\u4e03\u6708","August":"\u516b\u670= 8","September":"\u4e5d\u6708","October":"\u5341\u6708","November":"\u5341= \u4e00\u6708","December":"\u5341\u4e8c\u6708","Key":"Key","Today":"\u4eca= \u5929","Jan":"1 \u6708","Feb":"2 \u6708","Apr":"4 \u6708","Jun":"6 = \u6708","Jul":"7 \u6708","Aug":"8 \u6708","Sep":"9 \u6708","Oct":"10 = \u6708","Nov":"11 \u6708","Dec":"12 = \u6708","Su":"\u65e5","Mo":"\u4e00","Tu":"\u4e8c","We":"\u4e09","Th":"\u5= 6db","Fr":"\u4e94","Sa":"\u516d","mm\/dd\/yy":"\u6708\u6708\/\u65e5\u65e5= \/\u5e74\u5e74","Only files with the following extensions are allowed: = %files-allowed.":"\u50c5\u5141\u8a31\u4e0b\u5217\u526f\u6a94\u540d\uff1a%= files-allowed\u3002","Flag translations as = outdated":"\u6a19\u8a18\u7ffb\u8b6f\u70ba\u904e\u6642\u7684","This = permission is inherited from the authenticated user = role.":"\u6b64\u6b0a\u9650\u7e7c\u627f\u81ea\u8a3b\u518a\u4f7f\u7528\u800= 5\u89d2\u8272\u3002","Customize = dashboard":"\u81ea\u8a02\u5100\u8868\u677f","Collapse":"\u647a\u758a","Th= e selected file %filename cannot be uploaded. Only files with the = following extensions are allowed: = %extensions.":"\u9078\u64c7\u7684\u6a94\u6848%filename\u7121\u6cd5\u4e0a\= u8f09\u3002\u53ea\u6709\u4ee5\u4e0b\u985e\u578b\u7684\u6a94\u6848\u88ab\u= 5141\u8a31\uff1a%extensions\u3002","Translatable":"\u53ef\u7ffb\u8b6f","L= og messages":"\u65e5\u8a8c\u8a0a\u606f","Please select a = file.":"\u65b0\u9078\u64c7\u4e00\u500b\u6a94\u6848","You are not allowed = to operate on more than %num = files.":"\u4f60\u4e0d\u88ab\u5141\u8a31\u64cd\u4f5c\u8d85\u904e %num = \u500b\u6a94\u6848\u3002","Please specify dimensions within the allowed = range that is from 1x1 to = @dimensions.":"\u8acb\u6307\u5b9a\u5c3a\u5bf8\u5728\u88ab\u5141\u8a31\u76= 84\u7bc4\u570d\uff0c\u5f9e 1x1 \u5230 @dimensions \u3002","%filename is = not an image.":"%filename = \u4e0d\u662f\u4e00\u500b\u5716\u6a94\u3002","File browsing is disabled = in directory %dir.":"\u5728\u76ee\u9304 %dir = \u4e2d\u6a94\u6848\u700f\u89bd\u88ab\u505c\u7528\u3002","Do you want to = refresh the current = directory?":"\u4f60\u60f3\u8981\u91cd\u65b0\u6574\u7406\u76ee\u524d\u7684= \u76ee\u9304\uff1f","Delete selected = files?":"\u522a\u9664\u9078\u5b9a\u7684\u6a94\u6848\uff1f","Please = select a = thumbnail.":"\u8acb\u9078\u64c7\u4e00\u500b\u7e2e\u5716\u3002","You must = select at least %num files.":"\u4f60\u5fc5\u9808\u9078\u64c7\u81f3\u5c11 = %num \u500b\u6a94\u6848\u3002","You can not perform this = operation.":"\u4f60\u4e0d\u80fd\u57f7\u884c\u9019\u9805\u64cd\u4f5c\u3002= ","Insert file":"\u63d2\u5165\u6a94\u6848","Change = view":"\u8b8a\u66f4\u6aa2\u8996","Directory":"\u76ee\u9304","Subdirectory= %dir already exists.":"\u5b50\u76ee\u9304 %dir = \u5df2\u7d93\u5b58\u5728\u3002","Subdirectory %dir does not = exist.":"\u5b50\u76ee\u9304 %dir \u4e0d\u5b58\u5728\u3002","Show = description":"\u986f\u793a\u63cf\u8ff0","Hide = description":"\u96b1\u85cf\u63cf\u8ff0","Add = file":"\u65b0\u589e\u6587\u4ef6","Automatic = alias":"\u81ea\u52d5\u5225\u540d","Mar":"3 \u6708","Remove = group":"\u522a\u9664\u7fa4\u7d44","Apply (all = displays)":"\u5957\u7528\uff08\u6240\u6709\u986f\u793a\uff09","Apply = (this = display)":"\u5957\u7528\uff08\u9019\u500b\u986f\u793a\uff09","Revert to = default":"\u6062\u5fa9\u5230\u9810\u8a2d\u503c","Select = All":"\u9078\u64c7\u5168\u90e8","Select all":"\u5168\u9078","Needs to be = updated":"\u9700\u8981\u66f4\u65b0","Does not need to be = updated":"\u4e0d\u9700\u8981\u66f4\u65b0","@label":"@label","Extend":"\u6= 4f4\u5c55"}} }; ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_007.js /*!=0A= Colorbox 1.6.0=0A= license: MIT=0A= http://www.jacklmoore.com/colorbox=0A= */=0A= (function(t,e,i){function n(i,n,o){var r=3De.createElement(i);return = n&&(r.id=3DZ+n),o&&(r.style.cssText=3Do),t(r)}function o(){return = i.innerHeight?i.innerHeight:t(i).height()}function = r(e,i){i!=3D=3DObject(i)&&(i=3D{}),this.cache=3D{},this.el=3De,this.value= =3Dfunction(e){var n;return void = 0=3D=3D=3Dthis.cache[e]&&(n=3Dt(this.el).attr("data-cbox-"+e),void = 0!=3D=3Dn?this.cache[e]=3Dn:void 0!=3D=3Di[e]?this.cache[e]=3Di[e]:void = 0!=3D=3DX[e]&&(this.cache[e]=3DX[e])),this.cache[e]},this.get=3Dfunction(= e){var i=3Dthis.value(e);return = t.isFunction(i)?i.call(this.el,this):i}}function h(t){var = e=3DW.length,i=3D(A+t)%e;return 0>i?e+i:i}function a(t,e){return = Math.round((/%/.test(t)?("x"=3D=3D=3De?E.width():o())/100:1)*parseInt(t,1= 0))}function s(t,e){return = t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return = t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.= get("retinaSuffix")):e}function d(t){"contains"in = y[0]&&!y[0].contains(t.target)&&t.target!=3D=3Dv[0]&&(t.stopPropagation()= ,y.focus())}function = c(t){c.str!=3D=3Dt&&(y.add(v).removeClass(c.str).addClass(t),c.str=3Dt)}f= unction = g(e){A=3D0,e&&e!=3D=3D!1&&"nofollow"!=3D=3De?(W=3Dt("."+te).filter(functi= on(){var i=3Dt.data(this,Y),n=3Dnew r(this,i);return = n.get("rel")=3D=3D=3De}),A=3DW.index(_.el),-1=3D=3D=3DA&&(W=3DW.add(_.el)= ,A=3DW.length-1)):W=3Dt(_.el)}function = u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var = o;if(!G){if(o=3Dt(i).data(Y),_=3Dnew = r(i,o),g(_.get("rel")),!$){$=3Dq=3D!0,c(_.get("className")),y.css({visibi= lity:"hidden",display:"block",opacity:""}),I=3Dn(se,"LoadedContent","widt= h:0; height:0; overflow:hidden; = visibility:hidden"),b.css({width:"",height:""}).append(I),j=3DT.height()+= k.height()+b.outerHeight(!0)-b.height(),D=3DC.width()+H.width()+b.outerWi= dth(!0)-b.width(),N=3DI.outerHeight(!0),z=3DI.outerWidth(!0);var = h=3Da(_.get("initialWidth"),"x"),s=3Da(_.get("initialHeight"),"y"),l=3D_.= get("maxWidth"),f=3D_.get("maxHeight");_.w=3D(l!=3D=3D!1?Math.min(h,a(l,"= x")):h)-z-D,_.h=3D(f!=3D=3D!1?Math.min(s,a(f,"y")):s)-N-j,I.css({width:""= ,height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(S).hide(),y.focus(= ),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!= 0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("ret= urnFocus")&&ae.one(re,function(){t(_.el).focus()})}var = p=3DparseFloat(_.get("opacity"));v.css({opacity:p=3D=3D=3Dp?p:"",cursor:_= .get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("cl= oseButton")?B.html(_.get("close")).appendTo(b):B.appendTo("<div/>"),w()}}= function = p(){y||(V=3D!1,E=3Dt(i),y=3Dn(se).attr({id:Y,"class":t.support.opacity=3D= =3D=3D!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=3Dn(se,"Overlay= ").hide(),M=3Dt([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),x=3D= n(se,"Wrapper"),b=3Dn(se,"Content").append(S=3Dn(se,"Title"),F=3Dn(se,"Cu= rrent"),P=3Dt('<button = type=3D"button"/>').attr({id:Z+"Previous"}),K=3Dt('<button = type=3D"button"/>').attr({id:Z+"Next"}),R=3Dn("button","Slideshow"),M),B=3D= t('<button = type=3D"button"/>').attr({id:Z+"Close"}),x.append(n(se).append(n(se,"TopL= eft"),T=3Dn(se,"TopCenter"),n(se,"TopRight")),n(se,!1,"clear:left").appen= d(C=3Dn(se,"MiddleLeft"),b,H=3Dn(se,"MiddleRight")),n(se,!1,"clear:left")= .append(n(se,"BottomLeft"),k=3Dn(se,"BottomCenter"),n(se,"BottomRight")))= .find("div div").css({"float":"left"}),L=3Dn(se,!1,"position:absolute; = width:9999px; visibility:hidden; display:none; = max-width:none;"),O=3DK.add(P).add(F).add(R)),e.body&&!y.parent().length&= &t(e.body).append(v,y.append(x,L))}function m(){function = i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDef= ault(),f(this))}return = y?(V||(V=3D!0,K.click(function(){J.next()}),P.click(function(){J.prev()})= ,B.click(function(){J.close()}),v.click(function(){_.get("overlayClose")&= &J.close()}),t(e).bind("keydown."+Z,function(t){var = e=3Dt.keyCode;$&&_.get("escKey")&&27=3D=3D=3De&&(t.preventDefault(),J.clo= se()),$&&_.get("arrowKey")&&W[1]&&!t.altKey&&(37=3D=3D=3De?(t.preventDefa= ult(),P.click()):39=3D=3D=3De&&(t.preventDefault(),K.click()))}),t.isFunc= tion(t.fn.on)?t(e).on("click."+Z,"."+te,i):t("."+te).live("click."+Z,i)),= !0):!1}function w(){var = e,o,r,h=3DJ.prep,d=3D++le;if(q=3D!0,U=3D!1,u(he),u(ie),_.get("onLoad"),_.= h=3D_.get("height")?a(_.get("height"),"y")-N-j:_.get("innerHeight")&&a(_.= get("innerHeight"),"y"),_.w=3D_.get("width")?a(_.get("width"),"x")-z-D:_.= get("innerWidth")&&a(_.get("innerWidth"),"x"),_.mw=3D_.w,_.mh=3D_.h,_.get= ("maxWidth")&&(_.mw=3Da(_.get("maxWidth"),"x")-z-D,_.mw=3D_.w&&_.w<_.mw?_= .w:_.mw),_.get("maxHeight")&&(_.mh=3Da(_.get("maxHeight"),"y")-N-j,_.mh=3D= _.h&&_.h<_.mh?_.h:_.mh),e=3D_.get("href"),Q=3DsetTimeout(function(){M.sho= w()},100),_.get("inline")){var = c=3Dt(e);r=3Dt("<div>").hide().insertBefore(c),ae.one(he,function(){r.rep= laceWith(c)}),h(c)}else _.get("iframe")?h(" = "):_.get("html")?h(_.get("html")):s(_,e)?(e=3Dl(_,e),U=3D_.get("createImg= "),t(U).addClass(Z+"Photo").bind("error",function(){h(n(se,"Error").html(= _.get("imgError")))}).one("load",function(){d=3D=3D=3Dle&&setTimeout(func= tion(){var = t;_.get("retinaImage")&&i.devicePixelRatio>1&&(U.height=3DU.height/i.devi= cePixelRatio,U.width=3DU.width/i.devicePixelRatio),_.get("scalePhotos")&&= (o=3Dfunction(){U.height-=3DU.height*t,U.width-=3DU.width*t},_.mw&&U.widt= h>_.mw&&(t=3D(U.width-_.mw)/U.width,o()),_.mh&&U.height>_.mh&&(t=3D(U.hei= ght-_.mh)/U.height,o())),_.h&&(U.style.marginTop=3DMath.max(_.mh-U.height= ,0)/2+"px"),W[1]&&(_.get("loop")||W[A+1])&&(U.style.cursor=3D"pointer",U.= onclick=3Dfunction(){J.next()}),U.style.width=3DU.width+"px",U.style.heig= ht=3DU.height+"px",h(U)},1)}),U.src=3De):e&&L.load(e,_.get("data"),functi= on(e,i){d=3D=3D=3Dle&&h("error"=3D=3D=3Di?n(se,"Error").html(_.get("xhrEr= ror")):t(this).contents())})}var = v,y,x,b,T,C,H,k,W,E,I,L,M,S,F,R,K,P,B,O,_,j,D,N,z,A,U,$,q,G,Q,J,V,X=3D{ht= ml:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut= :300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,init= ialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,o= pacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!= 0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void = 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1= ,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start = slideshow",slideshowStop:"stop = slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?)= .*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image = {current} of = {total}",previous:"previous",next:"next",close:"close",xhrError:"This = content failed to load.",imgError:"This image failed to = load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCl= eanup:!1,onClosed:!1,rel:function(){return = this.rel},href:function(){return = t(this).attr("href")},title:function(){return = this.title},createImg:function(){var e=3Dnew = Image,i=3Dt(this).data("cbox-img-attrs");return"object"=3D=3Dtypeof = i&&t.each(i,function(t,i){e[t]=3Di}),e},createIframe:function(){var = i=3De.createElement("iframe"),n=3Dt(this).data("cbox-iframe-attrs");retur= n"object"=3D=3Dtypeof = n&&t.each(n,function(t,e){i[t]=3De}),"frameBorder"in = i&&(i.frameBorder=3D0),"allowTransparency"in = i&&(i.allowTransparency=3D"true"),i.name=3D(new = Date).getTime(),i.allowFullScreen=3D!0,i}},Y=3D"colorbox",Z=3D"cbox",te=3D= Z+"Element",ee=3DZ+"_open",ie=3DZ+"_load",ne=3DZ+"_complete",oe=3DZ+"_cle= anup",re=3DZ+"_closed",he=3DZ+"_purge",ae=3Dt("<a/>"),se=3D"div",le=3D0,d= e=3D{},ce=3Dfunction(){function t(){clearTimeout(h)}function = e(){(_.get("loop")||W[A+1])&&(t(),h=3DsetTimeout(J.next,_.get("slideshowS= peed")))}function = i(){R.html(_.get("slideshowStop")).unbind(s).one(s,n),ae.bind(ne,e).bind(= ie,t),y.removeClass(a+"off").addClass(a+"on")}function = n(){t(),ae.unbind(ne,e).unbind(ie,t),R.html(_.get("slideshowStart")).unbi= nd(s).one(s,function(){J.next(),i()}),y.removeClass(a+"on").addClass(a+"o= ff")}function = o(){r=3D!1,R.hide(),t(),ae.unbind(ne,e).unbind(ie,t),y.removeClass(a+"off= "+a+"on")}var r,h,a=3DZ+"Slideshow_",s=3D"click."+Z;return = function(){r?_.get("slideshow")||(ae.unbind(oe,o),o()):_.get("slideshow")= &&W[1]&&(r=3D!0,ae.one(oe,o),_.get("slideshowAuto")?i():n(),R.show())}}()= ;t[Y]||(t(p),J=3Dt.fn[Y]=3Dt[Y]=3Dfunction(e,i){var n,o=3Dthis;return = e=3De||{},t.isFunction(o)&&(o=3Dt("<a/>"),e.open=3D!0),o[0]?(p(),m()&&(i&= &(e.onComplete=3Di),o.each(function(){var = i=3Dt.data(this,Y)||{};t.data(this,Y,t.extend(i,e))}).addClass(te),n=3Dne= w = r(o[0],e),n.get("open")&&f(o[0])),o):o},J.position=3Dfunction(e,i){functi= on = n(){T[0].style.width=3Dk[0].style.width=3Db[0].style.width=3DparseInt(y[0= ].style.width,10)-D+"px",b[0].style.height=3DC[0].style.height=3DH[0].sty= le.height=3DparseInt(y[0].style.height,10)-j+"px"}var = r,h,s,l=3D0,d=3D0,c=3Dy.offset();if(E.unbind("resize."+Z),y.css({top:-9e4= ,left:-9e4}),h=3DE.scrollTop(),s=3DE.scrollLeft(),_.get("fixed")?(c.top-=3D= h,c.left-=3Ds,y.css({position:"fixed"})):(l=3Dh,d=3Ds,y.css({position:"ab= solute"})),d+=3D_.get("right")!=3D=3D!1?Math.max(E.width()-_.w-z-D-a(_.ge= t("right"),"x"),0):_.get("left")!=3D=3D!1?a(_.get("left"),"x"):Math.round= (Math.max(E.width()-_.w-z-D,0)/2),l+=3D_.get("bottom")!=3D=3D!1?Math.max(= o()-_.h-N-j-a(_.get("bottom"),"y"),0):_.get("top")!=3D=3D!1?a(_.get("top"= ),"y"):Math.round(Math.max(o()-_.h-N-j,0)/2),y.css({top:c.top,left:c.left= ,visibility:"visible"}),x[0].style.width=3Dx[0].style.height=3D"9999px",r= =3D{width:_.w+z+D,height:_.h+N+j,top:l,left:d},e){var = g=3D0;t.each(r,function(t){return r[t]!=3D=3Dde[t]?(g=3De,void 0):void = 0}),e=3Dg}de=3Dr,e||y.css(r),y.dequeue().animate(r,{duration:e||0,complet= e:function(){n(),q=3D!1,x[0].style.width=3D_.w+z+D+"px",x[0].style.height= =3D_.h+N+j+"px",_.get("reposition")&&setTimeout(function(){E.bind("resize= ."+Z,J.position)},1),t.isFunction(i)&&i()},step:n})},J.resize=3Dfunction(= t){var = e;$&&(t=3Dt||{},t.width&&(_.w=3Da(t.width,"x")-z-D),t.innerWidth&&(_.w=3D= a(t.innerWidth,"x")),I.css({width:_.w}),t.height&&(_.h=3Da(t.height,"y")-= N-j),t.innerHeight&&(_.h=3Da(t.innerHeight,"y")),t.innerHeight||t.height|= |(e=3DI.scrollTop(),I.css({height:"auto"}),_.h=3DI.height()),I.css({heigh= t:_.h}),e&&I.scrollTop(e),J.position("none"=3D=3D=3D_.get("transition")?0= :_.get("speed")))},J.prep=3Dfunction(i){function o(){return = _.w=3D_.w||I.width(),_.w=3D_.mw&&_.mw<_.w?_.mw:_.w,_.w}function = a(){return = _.h=3D_.h||I.height(),_.h=3D_.mh&&_.mh<_.h?_.mh:_.h,_.h}if($){var = d,g=3D"none"=3D=3D=3D_.get("transition")?0:_.get("speed");I.remove(),I=3D= n(se,"LoadedContent").append(i),I.hide().appendTo(L.show()).css({width:o(= ),overflow:_.get("scrolling")?"auto":"hidden"}).css({height:a()}).prepend= To(b),L.hide(),t(U).css({"float":"none"}),c(_.get("className")),d=3Dfunct= ion(){function = i(){t.support.opacity=3D=3D=3D!1&&y[0].style.removeAttribute("filter")}va= r = n,o,a=3DW.length;$&&(o=3Dfunction(){clearTimeout(Q),M.hide(),u(ne),_.get(= "onComplete")},S.html(_.get("title")).show(),I.show(),a>1?("string"=3D=3D= typeof = _.get("current")&&F.html(_.get("current").replace("{current}",A+1).replac= e("{total}",a)).show(),K[_.get("loop")||a-1>A?"show":"hide"]().html(_.get= ("next")),P[_.get("loop")||A?"show":"hide"]().html(_.get("previous")),ce(= ),_.get("preloading")&&t.each([h(-1),h(1)],function(){var = i,n=3DW[this],o=3Dnew = r(n,t.data(n,Y)),h=3Do.get("href");h&&s(o,h)&&(h=3Dl(o,h),i=3De.createEle= ment("img"),i.src=3Dh)})):O.hide(),_.get("iframe")?(n=3D_.get("createIfra= me"),_.get("scrolling")||(n.scrolling=3D"no"),t(n).attr({src:_.get("href"= ),"class":Z+"Iframe"}).one("load",o).appendTo(I),ae.one(he,function(){n.s= rc=3D"//about:blank"}),_.get("fastIframe")&&t(n).trigger("load")):o(),"fa= de"=3D=3D=3D_.get("transition")?y.fadeTo(g,1,i):i())},"fade"=3D=3D=3D_.ge= t("transition")?y.fadeTo(g,0,function(){J.position(0,d)}):J.position(g,d)= }},J.next=3Dfunction(){!q&&W[1]&&(_.get("loop")||W[A+1])&&(A=3Dh(1),f(W[A= ]))},J.prev=3Dfunction(){!q&&W[1]&&(_.get("loop")||A)&&(A=3Dh(-1),f(W[A])= )},J.close=3Dfunction(){$&&!G&&(G=3D!0,$=3D!1,u(oe),_.get("onCleanup"),E.= unbind("."+Z),v.fadeTo(_.get("fadeOut")||0,0),y.stop().fadeTo(_.get("fade= Out")||0,0,function(){y.hide(),v.hide(),u(he),I.remove(),setTimeout(funct= ion(){G=3D!1,u(re),_.get("onClosed")},1)}))},J.remove=3Dfunction(){y&&(y.= stop(),t[Y].close(),y.stop(!1,!0).remove(),v.remove(),G=3D!1,y=3Dnull,t("= ."+te).removeData(Y).removeClass(te),t(e).unbind("click."+Z).unbind("keyd= own."+Z))},J.element=3Dfunction(){return = t(_.el)},J.settings=3DX)})(jQuery,document,window); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/colorbox.js (function ($) {=0A= =0A= Drupal.behaviors.initColorbox =3D {=0A= attach: function (context, settings) {=0A= if (!$.isFunction($.colorbox)) {=0A= return;=0A= }=0A= =0A= if (settings.colorbox.mobiledetect && window.matchMedia) {=0A= // Disable Colorbox for small screens.=0A= var mq =3D window.matchMedia("(max-device-width: " + = settings.colorbox.mobiledevicewidth + ")");=0A= if (mq.matches) {=0A= return;=0A= }=0A= }=0A= =0A= $('.colorbox', context)=0A= .once('init-colorbox')=0A= .colorbox(settings.colorbox);=0A= =0A= $(context).bind('cbox_complete', function () {=0A= Drupal.attachBehaviors('#cboxLoadedContent');=0A= });=0A= }=0A= };=0A= =0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/colorbox_style.js (function ($) {=0A= =0A= Drupal.behaviors.initColorboxDefaultStyle =3D {=0A= attach: function (context, settings) {=0A= $(context).bind('cbox_complete', function () {=0A= // Only run if there is a title.=0A= if ($('#cboxTitle:empty', context).length =3D=3D false) {=0A= $('#cboxLoadedContent img', context).bind('mouseover', function = () {=0A= $('#cboxTitle', context).slideDown();=0A= });=0A= $('#cboxOverlay', context).bind('mouseover', function () {=0A= $('#cboxTitle', context).slideUp();=0A= });=0A= }=0A= else {=0A= $('#cboxTitle', context).hide();=0A= }=0A= });=0A= }=0A= };=0A= =0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/fancybox.js /**=0A= * @file=0A= * Integration file for fancyBox module.=0A= */=0A= =0A= (function($) {=0A= Drupal.behaviors.fancyBox =3D {=0A= attach: function(context, settings) {=0A= var selectors =3D ['.fancybox'];=0A= =0A= if (typeof settings.fancybox =3D=3D=3D 'undefined') {=0A= settings.fancybox =3D {};=0A= }=0A= =0A= if (typeof settings.fancybox.options =3D=3D=3D 'undefined') {=0A= settings.fancybox.options =3D {};=0A= }=0A= =0A= if (typeof settings.fancybox.callbacks !=3D=3D 'undefined') {=0A= $.each(settings.fancybox.callbacks, function(i, cal) {=0A= settings.fancybox.options[i] =3D window[cal];=0A= });=0A= }=0A= =0A= if (typeof settings.fancybox.helpers !=3D=3D 'undefined') {=0A= settings.fancybox.options.helpers =3D settings.fancybox.helpers;=0A= delete settings.fancybox.helpers;=0A= }=0A= =0A= if (typeof settings.fancybox.selectors !=3D=3D 'undefined') {=0A= selectors =3D selectors.concat(settings.fancybox.selectors);=0A= }=0A= =0A= // Not needed because behaviors are reattached.=0A= settings.fancybox.options.live =3D false;=0A= =0A= $(selectors.join(',')).fancybox(settings.fancybox.options);=0A= }=0A= };=0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_010.js /*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */=0A= (function(r,G,f,v){var = J=3Df("html"),n=3Df(r),p=3Df(G),b=3Df.fancybox=3Dfunction(){b.open.apply(= this,arguments)},I=3Dnavigator.userAgent.match(/msie/i),B=3Dnull,s=3DG.cr= eateTouch!=3D=3Dv,t=3Dfunction(a){return a&&a.hasOwnProperty&&a = instanceof f},q=3Dfunction(a){return = a&&"string"=3D=3D=3Df.type(a)},E=3Dfunction(a){return = q(a)&&0<a.indexOf("%")},l=3Dfunction(a,d){var = e=3DparseInt(a,10)||0;d&&E(a)&&(e*=3Db.getViewport()[d]/100);return = Math.ceil(e)},w=3Dfunction(a,b){return = l(a,b)+"px"};f.extend(b,{version:"2.1.5",defaults:{padding:15,margin:20,=0A= width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9= 999,pixelRatio:1,autoSize:!0,autoHeight:!1,autoWidth:!1,autoResize:!0,aut= oCenter:!s,fitToView:!0,aspectRatio:!1,topRatio:0.5,leftRatio:0.5,scrolli= ng:"auto",wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mou= seWheel:!0,autoPlay:!1,playSpeed:3E3,preload:3,modal:!1,loop:!0,ajax:{dat= aType:"html",headers:{"X-fancyBox":!0}},iframe:{scrolling:"auto",preload:= !0},swf:{wmode:"transparent",allowfullscreen:"true",allowscriptaccess:"al= ways"},=0A= keys:{next:{13:"left",34:"up",39:"left",40:"up"},prev:{8:"right",33:"down= ",37:"right",38:"down"},close:[27],play:[32],toggle:[70]},direction:{next= :"left",prev:"right"},scrollOutside:!0,index:0,type:null,href:null,conten= t:null,title:null,tpl:{wrap:'<div class=3D"fancybox-wrap" = tabIndex=3D"-1"><div class=3D"fancybox-skin"><div = class=3D"fancybox-outer"><div = class=3D"fancybox-inner"></div></div></div></div>',image:'<img = class=3D"fancybox-image" src=3D"{href}" alt=3D"" />',iframe:'<iframe = id=3D"fancybox-frame{rnd}" name=3D"fancybox-frame{rnd}" = class=3D"fancybox-iframe" frameborder=3D"0" vspace=3D"0" hspace=3D"0" = webkitAllowFullScreen mozallowfullscreen allowFullScreen'+=0A= (I?' allowtransparency=3D"true"':"")+"></iframe>",error:'<p = class=3D"fancybox-error">The requested content cannot be = loaded.<br/>Please try again later.</p>',closeBtn:'<a title=3D"Close" = class=3D"fancybox-item fancybox-close" = href=3D"javascript:;"></a>',next:'<a title=3D"Next" = class=3D"fancybox-nav fancybox-next" = href=3D"javascript:;"><span></span></a>',prev:'<a title=3D"Previous" = class=3D"fancybox-nav fancybox-prev" = href=3D"javascript:;"><span></span></a>'},openEffect:"fade",openSpeed:250= ,openEasing:"swing",openOpacity:!0,=0A= openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing"= ,closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250= ,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:= 250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!= 0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,a= fterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop}= ,group:{},opts:{},previous:null,coming:null,current:null,isActive:!1,=0A= isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{t= imer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpe= rs:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d=3D{}),!1!=3D=3Db.c= lose(!0)))return = f.isArray(a)||(a=3Dt(a)?f(a).get():[a]),f.each(a,function(e,c){var = k=3D{},g,h,j,m,l;"object"=3D=3D=3Df.type(c)&&(c.nodeType&&(c=3Df(c)),t(c)= ?(k=3D{href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybo= x-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k,=0A= c.metadata())):k=3Dc);g=3Dd.href||k.href||(q(c)?c:null);h=3Dd.title!=3D=3D= v?d.title:k.title||"";m=3D(j=3Dd.content||k.content)?"html":d.type||k.typ= e;!m&&k.isDom&&(m=3Dc.data("fancybox-type"),m||(m=3D(m=3Dc.prop("class").= match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m=3D"image"= :b.isSWF(g)?m=3D"swf":"#"=3D=3D=3Dg.charAt(0)?m=3D"inline":q(c)&&(m=3D"ht= ml",j=3Dc)),"ajax"=3D=3D=3Dm&&(l=3Dg.split(/\s+/,2),g=3Dl.shift(),l=3Dl.s= hift()));j||("inline"=3D=3D=3Dm?g?j=3Df(q(g)?g.replace(/.*(?=3D#[^\s]+$)/= ,""):g):k.isDom&&(j=3Dc):"html"=3D=3D=3Dm?j=3Dg:!m&&(!g&&=0A= k.isDom)&&(m=3D"inline",j=3Dc));f.extend(k,{href:g,type:m,content:j,title= :h,selector:l});a[e]=3Dk}),b.opts=3Df.extend(!0,{},b.defaults,d),d.keys!=3D= =3Dv&&(b.opts.keys=3Dd.keys?f.extend({},b.defaults.keys,d.keys):!1),b.gro= up=3Da,b._start(b.opts.index)},cancel:function(){var = a=3Db.coming;a&&!1!=3D=3Db.trigger("onCancel")&&(b.hideLoading(),b.ajaxLo= ad&&b.ajaxLoad.abort(),b.ajaxLoad=3Dnull,b.imgPreload&&(b.imgPreload.onlo= ad=3Db.imgPreload.onerror=3Dnull),a.wrap&&a.wrap.stop(!0,!0).trigger("onR= eset").remove(),b.coming=3Dnull,b.current||=0A= b._afterZoomOut(a))},close:function(a){b.cancel();!1!=3D=3Db.trigger("bef= oreClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0=3D=3D=3Da?(f(".f= ancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b= .isOpen=3Db.isOpened=3D!1,b.isClosing=3D!0,f(".fancybox-item, = .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"= ),b.transitions[b.current.closeMethod]())))},play:function(a){var = d=3Dfunction(){clearTimeout(b.player.timer)},e=3Dfunction(){d();b.current= &&b.player.isActive&&(b.player.timer=3D=0A= setTimeout(b.next,b.current.playSpeed))},c=3Dfunction(){d();p.unbind(".pl= ayer");b.player.isActive=3D!1;b.trigger("onPlayEnd")};if(!0=3D=3D=3Da||!b= .player.isActive&&!1!=3D=3Da){if(b.current&&(b.current.loop||b.current.in= dex<b.group.length-1))b.player.isActive=3D!0,p.bind({"onCancel.player = beforeClose.player":c,"onUpdate.player":e,"beforeLoad.player":d}),e(),b.t= rigger("onPlayStart")}else c()},next:function(a){var = d=3Db.current;d&&(q(a)||(a=3Dd.direction.next),b.jumpto(d.index+1,a,"next= "))},prev:function(a){var d=3Db.current;=0A= d&&(q(a)||(a=3Dd.direction.prev),b.jumpto(d.index-1,a,"prev"))},jumpto:fu= nction(a,d,e){var = c=3Db.current;c&&(a=3Dl(a),b.direction=3Dd||c.direction[a>=3Dc.index?"nex= t":"prev"],b.router=3De||"jumpto",c.loop&&(0>a&&(a=3Dc.group.length+a%c.g= roup.length),a%=3Dc.group.length),c.group[a]!=3D=3Dv&&(b.cancel(),b._star= t(a)))},reposition:function(a,d){var = e=3Db.current,c=3De?e.wrap:null,k;c&&(k=3Db._getPosition(d),a&&"scroll"=3D= =3D=3Da.type?(delete = k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=3Df.extend({},e.= dim,k)))},update:function(a){var d=3D=0A= a&&a.type,e=3D!d||"orientationchange"=3D=3D=3Dd;e&&(clearTimeout(B),B=3Dn= ull);b.isOpen&&!B&&(B=3DsetTimeout(function(){var = c=3Db.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"l= oad"=3D=3D=3Dd||"resize"=3D=3D=3Dd&&c.autoResize)&&b._setDimension(),"scr= oll"=3D=3D=3Dd&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=3Dnu= ll)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView=3D"= boolean"=3D=3D=3Df.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("= style").addClass("fancybox-tmp"),b.trigger("onUpdate")),=0A= b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loa= ding").remove()},showLoading:function(){var = a,d;b.hideLoading();a=3Df('<div = id=3D"fancybox-loading"><div></div></div>').click(b.cancel).appendTo("bod= y");p.bind("keydown.loading",function(a){if(27=3D=3D=3D(a.which||a.keyCod= e))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=3Db.getViewport()= ,a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewp= ort:function(){var = a=3Db.current&&b.current.locked||!1,d=3D{x:n.scrollLeft(),=0A= y:n.scrollTop()};a?(d.w=3Da[0].clientWidth,d.h=3Da[0].clientHeight):(d.w=3D= s&&r.innerWidth?r.innerWidth:n.width(),d.h=3Ds&&r.innerHeight?r.innerHeig= ht:n.height());return = d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbi= nd(".fb");n.unbind(".fb")},bindEvents:function(){var = a=3Db.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" = resize.fb")+(a.autoCenter&&!a.locked?" = scroll.fb":""),b.update),(d=3Da.keys)&&p.bind("keydown.fb",function(e){va= r c=3De.which||e.keyCode,k=3De.target||e.srcElement;=0A= if(27=3D=3D=3Dc&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!= e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,functi= on(d,k){if(1<a.group.length&&k[c]!=3D=3Dv)return = b[d](k[c]),e.preventDefault(),!1;if(-1<f.inArray(c,k))return = b[d](),e.preventDefault(),!1})}),f.fn.mousewheel&&a.mouseWheel&&b.wrap.bi= nd("mousewheel.fb",function(d,c,k,g){for(var = h=3Df(d.target||null),j=3D!1;h.length&&!j&&!h.is(".fancybox-skin")&&!h.is= (".fancybox-wrap");)j=3Dh[0]&&!(h[0].style.overflow&&"hidden"=3D=3D=3Dh[0= ].style.overflow)&&=0A= (h[0].clientWidth&&h[0].scrollWidth>h[0].clientWidth||h[0].clientHeight&&= h[0].scrollHeight>h[0].clientHeight),h=3Df(h).parent();if(0!=3D=3Dc&&!j&&= 1<b.group.length&&!a.canShrink){if(0<g||0<k)b.prev(0<g?"down":"left");els= e = if(0>g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:func= tion(a,d){var = e,c=3Dd||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=3Dc[a].apply(c,= Array.prototype.slice.call(arguments,1)));if(!1=3D=3D=3De)return!1;c.help= ers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.he= lpers[d][a]))b.helpers[d][a](f.extend(!0,=0A= {},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){retur= n = q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\= ?|#).*)?$)/i)},isSWF:function(a){return = q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var = d=3D{},e,c;a=3Dl(a);e=3Db.group[a]||null;if(!e)return!1;d=3Df.extend(!0,{= },b.opts,e);e=3Dd.margin;c=3Dd.padding;"number"=3D=3D=3Df.type(e)&&(d.mar= gin=3D[e,e,e,e]);"number"=3D=3D=3Df.type(c)&&(d.padding=3D[c,c,c,c]);d.mo= dal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,=0A= mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(= d.autoWidth=3Dd.autoHeight=3D!0);"auto"=3D=3D=3Dd.width&&(d.autoWidth=3D!= 0);"auto"=3D=3D=3Dd.height&&(d.autoHeight=3D!0);d.group=3Db.group;d.index= =3Da;b.coming=3Dd;if(!1=3D=3D=3Db.trigger("beforeLoad"))b.coming=3Dnull;e= lse{c=3Dd.type;e=3Dd.href;if(!c)return = b.coming=3Dnull,b.current&&b.router&&"jumpto"!=3D=3Db.router?(b.current.i= ndex=3Da,b[b.router](b.direction)):!1;b.isActive=3D!0;if("image"=3D=3D=3D= c||"swf"=3D=3D=3Dc)d.autoHeight=3Dd.autoWidth=3D!1,d.scrolling=3D"visible= ";"image"=3D=3D=3Dc&&(d.aspectRatio=3D=0A= !0);"iframe"=3D=3D=3Dc&&s&&(d.scrolling=3D"scroll");d.wrap=3Df(d.tpl.wrap= ).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" = fancybox-tmp = "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-ski= n",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.= wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("= padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"=3D=3D=3Dc|= |"html"=3D=3D=3Dc){if(!d.content||!d.content.length)return = b._error("content")}else if(!e)return b._error("href");=0A= "image"=3D=3D=3Dc?b._loadImage():"ajax"=3D=3D=3Dc?b._loadAjax():"iframe"=3D= =3D=3Dc?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.co= ming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrol= ling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadIm= age:function(){var a=3Db.imgPreload=3Dnew = Image;a.onload=3Dfunction(){this.onload=3Dthis.onerror=3Dnull;b.coming.wi= dth=3Dthis.width/b.opts.pixelRatio;b.coming.height=3Dthis.height/b.opts.p= ixelRatio;b._afterLoad()};a.onerror=3Dfunction(){this.onload=3D=0A= this.onerror=3Dnull;b._error("image")};a.src=3Db.coming.href;!0!=3D=3Da.c= omplete&&b.showLoading()},_loadAjax:function(){var = a=3Db.coming;b.showLoading();b.ajaxLoad=3Df.ajax(f.extend({},a.ajax,{url:= a.href,error:function(a,e){b.coming&&"abort"!=3D=3De?b._error("ajax",a):b= .hideLoading()},success:function(d,e){"success"=3D=3D=3De&&(a.content=3Dd= ,b._afterLoad())}}))},_loadIframe:function(){var = a=3Db.coming,d=3Df(a.tpl.iframe.replace(/\{rnd\}/g,(new = Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src= ",a.href);=0A= f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().att= r("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.= showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).= bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").= removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=3Dd.append= To(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){v= ar = a=3Db.group,d=3Db.current,e=3Da.length,c=3Dd.preload?Math.min(d.preload,=0A= e-1):0,f,g;for(g=3D1;g<=3Dc;g+=3D1)f=3Da[(d.index+g)%e],"image"=3D=3D=3Df= .type&&f.href&&((new Image).src=3Df.href)},_afterLoad:function(){var = a=3Db.coming,d=3Db.current,e,c,k,g,h;b.hideLoading();if(a&&!1!=3D=3Db.isA= ctive)if(!1=3D=3D=3Db.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("o= nReset").remove(),b.coming=3Dnull;else{d&&(b.trigger("beforeChange",d),d.= wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, = .fancybox-nav").remove());b.unbindEvents();e=3Da.content;c=3Da.type;k=3Da= .scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,=0A= outer:a.outer,inner:a.inner,current:a,previous:d});g=3Da.href;switch(c){c= ase "inline":case "ajax":case = "html":a.selector?e=3Df("<div>").html(e).find(a.selector):t(e)&&(e.data("= fancybox-placeholder")||e.data("fancybox-placeholder",f('<div = class=3D"fancybox-placeholder"></div>').insertAfter(e).hide()),e=3De.show= ().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hi= de().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholde= r",!1)}));break;case "image":e=3Da.tpl.image.replace("{href}",=0A= g);break;case "swf":e=3D'<object id=3D"fancybox-swf" = classid=3D"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=3D"100%" = height=3D"100%"><param name=3D"movie" = value=3D"'+g+'"></param>',h=3D"",f.each(a.swf,function(a,b){e+=3D'<param = name=3D"'+a+'" value=3D"'+b+'"></param>';h+=3D" = "+a+'=3D"'+b+'"'}),e+=3D'<embed src=3D"'+g+'" = type=3D"application/x-shockwave-flash" width=3D"100%" = height=3D"100%"'+h+"></embed></object>"}(!t(e)||!e.parent().is(a.inner))&= &a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"=3D= =3D=3Dk?"scroll":=0A= "no"=3D=3D=3Dk?"hidden":k);b._setDimension();b.reposition();b.isOpen=3D!1= ;b.coming=3Dnull;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transiti= ons[d.prevMethod]()}else = f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.tr= ansitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_s= etDimension:function(){var = a=3Db.getViewport(),d=3D0,e=3D!1,c=3D!1,e=3Db.wrap,k=3Db.skin,g=3Db.inner= ,h=3Db.current,c=3Dh.width,j=3Dh.height,m=3Dh.minWidth,u=3Dh.minHeight,n=3D= h.maxWidth,p=3Dh.maxHeight,s=3Dh.scrolling,q=3Dh.scrollOutside?=0A= h.scrollbarWidth:0,x=3Dh.margin,y=3Dl(x[1]+x[3]),r=3Dl(x[0]+x[2]),v,z,t,C= ,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fanc= ybox-tmp");x=3Dl(k.outerWidth(!0)-k.width());v=3Dl(k.outerHeight(!0)-k.he= ight());z=3Dy+x;t=3Dr+v;C=3DE(c)?(a.w-z)*l(c)/100:c;A=3DE(j)?(a.h-t)*l(j)= /100:j;if("iframe"=3D=3D=3Dh.type){if(H=3Dh.content,h.autoHeight&&1=3D=3D= =3DH.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).= height(9999),F=3DH.contents().find("body"),q&&F.css("overflow-x","hidden"= ),A=3DF.outerHeight(!0))}catch(G){}}else if(h.autoWidth||=0A= h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHei= ght||g.height(A),h.autoWidth&&(C=3Dg.width()),h.autoHeight&&(A=3Dg.height= ()),g.removeClass("fancybox-tmp");c=3Dl(C);j=3Dl(A);D=3DC/A;m=3Dl(E(m)?l(= m,"w")-z:m);n=3Dl(E(n)?l(n,"w")-z:n);u=3Dl(E(u)?l(u,"h")-t:u);p=3Dl(E(p)?= l(p,"h")-t:p);F=3Dn;B=3Dp;h.fitToView&&(n=3DMath.min(a.w-z,n),p=3DMath.mi= n(a.h-t,p));z=3Da.w-y;r=3Da.h-r;h.aspectRatio?(c>n&&(c=3Dn,j=3Dl(c/D)),j>= p&&(j=3Dp,c=3Dl(j*D)),c<m&&(c=3Dm,j=3Dl(c/D)),j<u&&(j=3Du,c=3Dl(j*D))):(c= =3DMath.max(m,Math.min(c,n)),h.autoHeight&&=0A= "iframe"!=3D=3Dh.type&&(g.width(c),j=3Dg.height()),j=3DMath.max(u,Math.mi= n(j,p)));if(h.fitToView)if(g.width(c).height(j),e.width(c+x),a=3De.width(= ),y=3De.height(),h.aspectRatio)for(;(a>z||y>r)&&(c>m&&j>u)&&!(19<d++);)j=3D= Math.max(u,Math.min(p,j-10)),c=3Dl(j*D),c<m&&(c=3Dm,j=3Dl(c/D)),c>n&&(c=3D= n,j=3Dl(c/D)),g.width(c).height(j),e.width(c+x),a=3De.width(),y=3De.heigh= t();else = c=3DMath.max(m,Math.min(c,c-(a-z))),j=3DMath.max(u,Math.min(j,j-(y-r)));q= &&("auto"=3D=3D=3Ds&&j<A&&c+x+q<z)&&(c+=3Dq);g.width(c).height(j);e.width= (c+x);a=3De.width();=0A= y=3De.height();e=3D(a>z||y>r)&&c>m&&j>u;c=3Dh.aspectRatio?c<F&&j<B&&c<C&&= j<A:(c<F||j<B)&&(c<C||j<A);f.extend(h,{dim:{width:w(a),height:w(y)},origW= idth:C,origHeight:A,canShrink:e,canExpand:c,wPadding:x,hPadding:v,wrapSpa= ce:y-k.outerHeight(!0),skinSpace:k.height()-j});!H&&(h.autoHeight&&j>u&&j= <p&&!c)&&g.height("auto")},_getPosition:function(a){var = d=3Db.current,e=3Db.getViewport(),c=3Dd.margin,f=3Db.wrap.width()+c[1]+c[= 3],g=3Db.wrap.height()+c[0]+c[2],c=3D{position:"absolute",top:c[0],left:c= [3]};d.autoCenter&&d.fixed&&=0A= !a&&g<=3De.h&&f<=3De.w?c.position=3D"fixed":d.locked||(c.top+=3De.y,c.lef= t+=3De.x);c.top=3Dw(Math.max(c.top,c.top+(e.h-g)*d.topRatio));c.left=3Dw(= Math.max(c.left,c.left+(e.w-f)*d.leftRatio));return = c},_afterZoomIn:function(){var = a=3Db.current;a&&(b.isOpen=3Db.isOpened=3D!0,b.wrap.css("overflow","visib= le").addClass("fancybox-opened"),b.update(),(a.closeClick||a.nextClick&&1= <b.group.length)&&b.inner.css("cursor","pointer").bind("click.fb",functio= n(d){!f(d.target).is("a")&&!f(d.target).parent().is("a")&&(d.preventDefau= lt(),=0A= b[a.closeClick?"close":"next"]())}),a.closeBtn&&f(a.tpl.closeBtn).appendT= o(b.skin).bind("click.fb",function(a){a.preventDefault();b.close()}),a.ar= rows&&1<b.group.length&&((a.loop||0<a.index)&&f(a.tpl.prev).appendTo(b.ou= ter).bind("click.fb",b.prev),(a.loop||a.index<b.group.length-1)&&f(a.tpl.= next).appendTo(b.outer).bind("click.fb",b.next)),b.trigger("afterShow"),!= a.loop&&a.index=3D=3D=3Da.group.length-1?b.play(!1):b.opts.autoPlay&&!b.p= layer.isActive&&(b.opts.autoPlay=3D!1,b.play()))},_afterZoomOut:function(= a){a=3D=0A= a||b.current;f(".fancybox-wrap").trigger("onReset").remove();f.extend(b,{= group:{},opts:{},router:!1,current:null,isActive:!1,isOpened:!1,isOpen:!1= ,isClosing:!1,wrap:null,skin:null,outer:null,inner:null});b.trigger("afte= rClose",a)}});b.transitions=3D{getOrigPosition:function(){var = a=3Db.current,d=3Da.element,e=3Da.orig,c=3D{},f=3D50,g=3D50,h=3Da.hPaddin= g,j=3Da.wPadding,m=3Db.getViewport();!e&&(a.isDom&&d.is(":visible"))&&(e=3D= d.find("img:first"),e.length||(e=3Dd));t(e)?(c=3De.offset(),e.is("img")&&= (f=3De.outerWidth(),g=3De.outerHeight())):=0A= (c.top=3Dm.y+(m.h-g)*a.topRatio,c.left=3Dm.x+(m.w-f)*a.leftRatio);if("fix= ed"=3D=3D=3Db.wrap.css("position")||a.locked)c.top-=3Dm.y,c.left-=3Dm.x;r= eturn = c=3D{top:w(c.top-h*a.topRatio),left:w(c.left-j*a.leftRatio),width:w(f+j),= height:w(g+h)}},step:function(a,d){var e,c,f=3Dd.prop;c=3Db.current;var = g=3Dc.wrapSpace,h=3Dc.skinSpace;if("width"=3D=3D=3Df||"height"=3D=3D=3Df)= e=3Dd.end=3D=3D=3Dd.start?1:(a-d.start)/(d.end-d.start),b.isClosing&&(e=3D= 1-e),c=3D"width"=3D=3D=3Df?c.wPadding:c.hPadding,c=3Da-c,b.skin[f](l("wid= th"=3D=3D=3Df?c:c-g*e)),b.inner[f](l("width"=3D=3D=3D=0A= f?c:c-g*e-h*e))},zoomIn:function(){var = a=3Db.current,d=3Da.pos,e=3Da.openEffect,c=3D"elastic"=3D=3D=3De,k=3Df.ex= tend({opacity:1},d);delete = k.position;c?(d=3Dthis.getOrigPosition(),a.openOpacity&&(d.opacity=3D0.1)= ):"fade"=3D=3D=3De&&(d.opacity=3D0.1);b.wrap.css(d).animate(k,{duration:"= none"=3D=3D=3De?0:a.openSpeed,easing:a.openEasing,step:c?this.step:null,c= omplete:b._afterZoomIn})},zoomOut:function(){var = a=3Db.current,d=3Da.closeEffect,e=3D"elastic"=3D=3D=3Dd,c=3D{opacity:0.1}= ;e&&(c=3Dthis.getOrigPosition(),a.closeOpacity&&(c.opacity=3D0.1));b.wrap= .animate(c,=0A= {duration:"none"=3D=3D=3Dd?0:a.closeSpeed,easing:a.closeEasing,step:e?thi= s.step:null,complete:b._afterZoomOut})},changeIn:function(){var = a=3Db.current,d=3Da.nextEffect,e=3Da.pos,c=3D{opacity:1},f=3Db.direction,= g;e.opacity=3D0.1;"elastic"=3D=3D=3Dd&&(g=3D"down"=3D=3D=3Df||"up"=3D=3D=3D= f?"top":"left","down"=3D=3D=3Df||"right"=3D=3D=3Df?(e[g]=3Dw(l(e[g])-200)= ,c[g]=3D"+=3D200px"):(e[g]=3Dw(l(e[g])+200),c[g]=3D"-=3D200px"));"none"=3D= =3D=3Dd?b._afterZoomIn():b.wrap.css(e).animate(c,{duration:a.nextSpeed,ea= sing:a.nextEasing,complete:b._afterZoomIn})},changeOut:function(){var a=3D=0A= b.previous,d=3Da.prevEffect,e=3D{opacity:0.1},c=3Db.direction;"elastic"=3D= =3D=3Dd&&(e["down"=3D=3D=3Dc||"up"=3D=3D=3Dc?"top":"left"]=3D("up"=3D=3D=3D= c||"left"=3D=3D=3Dc?"-":"+")+"=3D200px");a.wrap.animate(e,{duration:"none= "=3D=3D=3Dd?0:a.prevSpeed,easing:a.prevEasing,complete:function(){f(this)= .trigger("onReset").remove()}})}};b.helpers.overlay=3D{defaults:{closeCli= ck:!0,speedOut:200,showEarly:!0,css:{},locked:!s,fixed:!0},overlay:null,f= ixed:!1,el:f("html"),create:function(a){a=3Df.extend({},this.defaults,a);= this.overlay&&this.close();this.overlay=3D=0A= f('<div = class=3D"fancybox-overlay"></div>').appendTo(b.coming?b.coming.parent:a.p= arent);this.fixed=3D!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass(= "fancybox-overlay-fixed"),this.fixed=3D!0)},open:function(a){var = d=3Dthis;a=3Df.extend({},this.defaults,a);this.overlay?this.overlay.unbin= d(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.= bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeCl= ick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClas= s("fancybox-overlay"))return b.isActive?=0A= b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function()= {var = a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fa= ncybox-margin").removeClass("fancybox-margin"),a=3Dn.scrollTop(),b=3Dn.sc= rollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft= (b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,f= ixed:!1})},update:function(){var = a=3D"100%",b;this.overlay.width(a).height("100%");I?(b=3DMath.max(G.docum= entElement.offsetWidth,G.body.offsetWidth),=0A= p.width()>b&&(a=3Dp.width())):p.width()>n.width()&&(a=3Dp.width());this.o= verlay.width(a).height(p.height())},onReady:function(a,b){var = e=3Dthis.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.l= ocked&&(this.fixed&&b.fixed)&&(e||(this.margin=3Dp.height()>n.height()?f(= "html").css("margin-right").replace("px",""):!1),b.locked=3Dthis.overlay.= append(b.wrap),b.fixed=3D!1);!0=3D=3D=3Da.showEarly&&this.beforeShow.appl= y(this,arguments)},beforeShow:function(a,b){var = e,c;b.locked&&(!1!=3D=3Dthis.margin&&(f("*").filter(function(){return"fix= ed"=3D=3D=3D=0A= f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).= hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass(= "fancybox-margin")),e=3Dn.scrollTop(),c=3Dn.scrollLeft(),this.el.addClass= ("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:fu= nction(){this.fixed||this.update()},afterClose:function(a){this.overlay&&= !b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.= helpers.title=3D{defaults:{type:"float",position:"bottom"},beforeShow:fun= ction(a){var d=3D=0A= b.current,e=3Dd.title,c=3Da.type;f.isFunction(e)&&(e=3De.call(d.element,d= ));if(q(e)&&""!=3D=3Df.trim(e)){d=3Df('<div class=3D"fancybox-title = fancybox-title-'+c+'-wrap">'+e+"</div>");switch(c){case = "inside":c=3Db.skin;break;case "outside":c=3Db.wrap;break;case = "over":c=3Db.inner;break;default:c=3Db.skin,d.appendTo("body"),I&&d.width= (d.width()),d.wrapInner('<span = class=3D"child"></span>'),b.current.margin[2]+=3DMath.abs(l(d.css("margin= -bottom")))}d["top"=3D=3D=3Da.position?"prependTo":"appendTo"](c)}}};f.fn= .fancybox=3Dfunction(a){var d,=0A= e=3Df(this),c=3Dthis.selector||"",k=3Dfunction(g){var = h=3Df(this).blur(),j=3Dd,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.meta= Key)&&!h.is(".fancybox-wrap")&&(k=3Da.groupAttr||"data-fancybox-group",l=3D= h.attr(k),l||(k=3D"rel",l=3Dh.get(0)[k]),l&&(""!=3D=3Dl&&"nofollow"!=3D=3D= l)&&(h=3Dc.length?f(c):e,h=3Dh.filter("["+k+'=3D"'+l+'"]'),j=3Dh.index(th= is)),a.index=3Dj,!1!=3D=3Db.open(h,a)&&g.preventDefault())};a=3Da||{};d=3D= a.index||0;!c||!1=3D=3D=3Da.live?e.unbind("click.fb-start").bind("click.f= b-start",k):p.undelegate(c,"click.fb-start").delegate(c+=0A= ":not('.fancybox-item, = .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=3D= 1]").trigger("click");return this};p.ready(function(){var = a,d;f.scrollbarWidth=3D=3D=3Dv&&(f.scrollbarWidth=3Dfunction(){var = a=3Df('<div = style=3D"width:50px;height:50px;overflow:auto"><div/></div>').appendTo("b= ody"),b=3Da.children(),b=3Db.innerWidth()-b.height(99).innerWidth();a.rem= ove();return = b});if(f.support.fixedPosition=3D=3D=3Dv){a=3Df.support;d=3Df('<div = style=3D"position:fixed;top:20px;"></div>').appendTo("body");var = e=3D20=3D=3D=3D=0A= d[0].offsetTop||15=3D=3D=3Dd[0].offsetTop;d.remove();a.fixedPosition=3De}= f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fi= xedPosition,parent:f("body")});a=3Df(r).width();J.addClass("fancybox-lock= -test");d=3Df(r).width();J.removeClass("fancybox-lock-test");f("<style = type=3D'text/css'>.fancybox-margin{margin-right:"+(d-a)+"px;}</style>").a= ppendTo("head")})})(window,document,jQuery); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_005.js /*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)=0A= * Licensed under the MIT License (LICENSE.txt).=0A= *=0A= * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some = pointers.=0A= * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug = fix.=0A= * Thanks to: Seamus Leahy for adding deltaX and deltaY=0A= *=0A= * Version: 3.0.6=0A= * =0A= * Requires: 1.2.2+=0A= */=0A= (function(d){function e(a){var = b=3Da||window.event,c=3D[].slice.call(arguments,1),f=3D0,e=3D0,g=3D0,a=3D= d.event.fix(b);a.type=3D"mousewheel";b.wheelDelta&&(f=3Db.wheelDelta/120)= ;b.detail&&(f=3D-b.detail/3);g=3Df;b.axis!=3D=3Dvoid = 0&&b.axis=3D=3D=3Db.HORIZONTAL_AXIS&&(g=3D0,e=3D-1*f);b.wheelDeltaY!=3D=3D= void 0&&(g=3Db.wheelDeltaY/120);b.wheelDeltaX!=3D=3Dvoid = 0&&(e=3D-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch|= |d.event.handle).apply(this,c)}var = c=3D["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var = h=3Dc.length;h;)d.event.fixHooks[c[--h]]=3D=0A= d.event.mouseHooks;d.event.special.mousewheel=3D{setup:function(){if(this= .addEventListener)for(var = a=3Dc.length;a;)this.addEventListener(c[--a],e,false);else = this.onmousewheel=3De},teardown:function(){if(this.removeEventListener)fo= r(var a=3Dc.length;a;)this.removeEventListener(c[--a],e,false);else = this.onmousewheel=3Dnull}};d.fn.extend({mousewheel:function(a){return = a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:func= tion(a){return this.unbind("mousewheel",a)}})})(jQuery); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/lightbox.js /* $Id: lightbox.js,v 1.5.2.6.2.136 2010/09/24 08:39:40 snpower Exp $ */=0A= =0A= /**=0A= * jQuery Lightbox=0A= * @author=0A= * Stella Power, <http://drupal.org/user/66894>=0A= *=0A= * Based on Lightbox v2.03.3 by Lokesh Dhakar=0A= * <http://www.huddletogether.com/projects/lightbox2/>=0A= * Also partially based on the jQuery Lightbox by Warren Krewenki=0A= * <http://warren.mesozen.com>=0A= *=0A= * Permission has been granted to Mark Ashmead & other Drupal Lightbox2 = module=0A= * maintainers to distribute this file via Drupal.org=0A= * Under GPL license.=0A= *=0A= * Slideshow, iframe and video functionality added by Stella Power.=0A= */=0A= =0A= var Lightbox;=0A= (function($) {=0A= Lightbox =3D {=0A= auto_modal : false,=0A= overlayOpacity : 0.8, // Controls transparency of shadow overlay.=0A= overlayColor : '000', // Controls colour of shadow overlay.=0A= disableCloseClick : true,=0A= // Controls the order of the lightbox resizing animation sequence.=0A= resizeSequence: 0, // 0: simultaneous, 1: width then height, 2: height = then width.=0A= resizeSpeed: 'normal', // Controls the speed of the lightbox resizing = animation.=0A= fadeInSpeed: 'normal', // Controls the speed of the image appearance.=0A= slideDownSpeed: 'slow', // Controls the speed of the image details = appearance.=0A= minWidth: 240,=0A= borderSize : 10,=0A= boxColor : 'fff',=0A= fontColor : '000',=0A= topPosition : '',=0A= infoHeight: 20,=0A= alternative_layout : false,=0A= imageArray : [],=0A= imageNum : null,=0A= total : 0,=0A= activeImage : null,=0A= inprogress : false,=0A= disableResize : false,=0A= disableZoom : false,=0A= isZoomedIn : false,=0A= rtl : false,=0A= loopItems : false,=0A= keysClose : ['c', 'x', 27],=0A= keysPrevious : ['p', 37],=0A= keysNext : ['n', 39],=0A= keysZoom : ['z'],=0A= keysPlayPause : [32],=0A= =0A= // Slideshow options.=0A= slideInterval : 5000, // In milliseconds.=0A= showPlayPause : true,=0A= autoStart : true,=0A= autoExit : true,=0A= pauseOnNextClick : false, // True to pause the slideshow when the = "Next" button is clicked.=0A= pauseOnPrevClick : true, // True to pause the slideshow when the = "Prev" button is clicked.=0A= slideIdArray : [],=0A= slideIdCount : 0,=0A= isSlideshow : false,=0A= isPaused : false,=0A= loopSlides : false,=0A= =0A= // Iframe options.=0A= isLightframe : false,=0A= iframe_width : 600,=0A= iframe_height : 400,=0A= iframe_border : 1,=0A= =0A= // Video and modal options.=0A= enableVideo : false,=0A= flvPlayer : '/flvplayer.swf',=0A= flvFlashvars : '',=0A= isModal : false,=0A= isVideo : false,=0A= videoId : false,=0A= modalWidth : 400,=0A= modalHeight : 400,=0A= modalHTML : null,=0A= =0A= =0A= // initialize()=0A= // Constructor runs on completion of the DOM loading.=0A= // The function inserts html at the bottom of the page which is used=0A= // to display the shadow overlay and the image container.=0A= initialize: function() {=0A= =0A= var s =3D Drupal.settings.lightbox2;=0A= Lightbox.overlayOpacity =3D s.overlay_opacity;=0A= Lightbox.overlayColor =3D s.overlay_color;=0A= Lightbox.disableCloseClick =3D s.disable_close_click;=0A= Lightbox.resizeSequence =3D s.resize_sequence;=0A= Lightbox.resizeSpeed =3D s.resize_speed;=0A= Lightbox.fadeInSpeed =3D s.fade_in_speed;=0A= Lightbox.slideDownSpeed =3D s.slide_down_speed;=0A= Lightbox.borderSize =3D s.border_size;=0A= Lightbox.boxColor =3D s.box_color;=0A= Lightbox.fontColor =3D s.font_color;=0A= Lightbox.topPosition =3D s.top_position;=0A= Lightbox.rtl =3D s.rtl;=0A= Lightbox.loopItems =3D s.loop_items;=0A= Lightbox.keysClose =3D s.keys_close.split(" ");=0A= Lightbox.keysPrevious =3D s.keys_previous.split(" ");=0A= Lightbox.keysNext =3D s.keys_next.split(" ");=0A= Lightbox.keysZoom =3D s.keys_zoom.split(" ");=0A= Lightbox.keysPlayPause =3D s.keys_play_pause.split(" ");=0A= Lightbox.disableResize =3D s.disable_resize;=0A= Lightbox.disableZoom =3D s.disable_zoom;=0A= Lightbox.slideInterval =3D s.slideshow_interval;=0A= Lightbox.showPlayPause =3D s.show_play_pause;=0A= Lightbox.showCaption =3D s.show_caption;=0A= Lightbox.autoStart =3D s.slideshow_automatic_start;=0A= Lightbox.autoExit =3D s.slideshow_automatic_exit;=0A= Lightbox.pauseOnNextClick =3D s.pause_on_next_click;=0A= Lightbox.pauseOnPrevClick =3D s.pause_on_previous_click;=0A= Lightbox.loopSlides =3D s.loop_slides;=0A= Lightbox.alternative_layout =3D s.use_alt_layout;=0A= Lightbox.iframe_width =3D s.iframe_width;=0A= Lightbox.iframe_height =3D s.iframe_height;=0A= Lightbox.iframe_border =3D s.iframe_border;=0A= Lightbox.enableVideo =3D s.enable_video;=0A= if (s.enable_video) {=0A= Lightbox.flvPlayer =3D s.flvPlayer;=0A= Lightbox.flvFlashvars =3D s.flvFlashvars;=0A= }=0A= =0A= // Make the lightbox divs.=0A= var layout_class =3D (s.use_alt_layout ? 'lightbox2-alt-layout' : = 'lightbox2-orig-layout');=0A= var output =3D '<div id=3D"lightbox2-overlay" style=3D"display: = none;"></div>\=0A= <div id=3D"lightbox" style=3D"display: none;" class=3D"' + = layout_class + '">\=0A= <div id=3D"outerImageContainer"></div>\=0A= <div id=3D"imageDataContainer" class=3D"clearfix">\=0A= <div id=3D"imageData"></div>\=0A= </div>\=0A= </div>';=0A= var loading =3D '<div id=3D"loading"><a href=3D"#" = id=3D"loadingLink"></a></div>';=0A= var modal =3D '<div id=3D"modalContainer" style=3D"display: = none;"></div>';=0A= var frame =3D '<div id=3D"frameContainer" style=3D"display: = none;"></div>';=0A= var imageContainer =3D '<div id=3D"imageContainer" style=3D"display: = none;"></div>';=0A= var details =3D '<div id=3D"imageDetails"></div>';=0A= var bottomNav =3D '<div id=3D"bottomNav"></div>';=0A= var image =3D '<img id=3D"lightboxImage" alt=3D"" />';=0A= var hoverNav =3D '<div id=3D"hoverNav"><a id=3D"prevLink" = href=3D"#"></a><a id=3D"nextLink" href=3D"#"></a></div>';=0A= var frameNav =3D '<div id=3D"frameHoverNav"><a id=3D"framePrevLink" = href=3D"#"></a><a id=3D"frameNextLink" href=3D"#"></a></div>';=0A= var hoverNav =3D '<div id=3D"hoverNav"><a id=3D"prevLink" title=3D"' = + Drupal.t('Previous') + '" href=3D"#"></a><a id=3D"nextLink" title=3D"' = + Drupal.t('Next') + '" href=3D"#"></a></div>';=0A= var frameNav =3D '<div id=3D"frameHoverNav"><a id=3D"framePrevLink" = title=3D"' + Drupal.t('Previous') + '" href=3D"#"></a><a = id=3D"frameNextLink" title=3D"' + Drupal.t('Next') + '" = href=3D"#"></a></div>';=0A= var caption =3D '<span id=3D"caption"></span>';=0A= var numberDisplay =3D '<span id=3D"numberDisplay"></span>';=0A= var close =3D '<a id=3D"bottomNavClose" title=3D"' + = Drupal.t('Close') + '" href=3D"#"></a>';=0A= var zoom =3D '<a id=3D"bottomNavZoom" href=3D"#" title=3D"' + = Drupal.t('Zoom')+'"></a>';=0A= var zoomOut =3D '<a id=3D"bottomNavZoomOut" href=3D"#" title=3D"' + = Drupal.t('Zoom out')+'"></a>';=0A= var pause =3D '<a id=3D"lightshowPause" title=3D"' + Drupal.t('Pause = Slideshow') + '" href=3D"#" style=3D"display: none;"></a>';=0A= var play =3D '<a id=3D"lightshowPlay" title=3D"' + Drupal.t('Play = Slideshow') + '" href=3D"#" style=3D"display: none;"></a>';=0A= =0A= $("body").append(output);=0A= $('#outerImageContainer').append(modal + frame + imageContainer + = loading);=0A= if (!s.use_alt_layout) {=0A= $('#imageContainer').append(image + hoverNav);=0A= $('#imageData').append(details + bottomNav);=0A= $('#imageDetails').append(caption + numberDisplay);=0A= $('#bottomNav').append(frameNav + close + zoom + zoomOut + pause + = play);=0A= }=0A= else {=0A= $('#outerImageContainer').append(bottomNav);=0A= $('#imageContainer').append(image);=0A= $('#bottomNav').append(close + zoom + zoomOut);=0A= $('#imageData').append(hoverNav + details);=0A= $('#imageDetails').append(caption + numberDisplay + pause + play);=0A= }=0A= =0A= // Setup onclick handlers.=0A= if (Lightbox.disableCloseClick) {=0A= $('#lightbox2-overlay').click(function() { Lightbox.end(); return = false; } ).hide();=0A= }=0A= $('#loadingLink, #bottomNavClose').click(function() { = Lightbox.end('forceClose'); return false; } );=0A= $('#prevLink, #framePrevLink').click(function() { = Lightbox.changeData(Lightbox.activeImage - 1); return false; } );=0A= $('#nextLink, #frameNextLink').click(function() { = Lightbox.changeData(Lightbox.activeImage + 1); return false; } );=0A= $('#bottomNavZoom').click(function() { = Lightbox.changeData(Lightbox.activeImage, true); return false; } );=0A= $('#bottomNavZoomOut').click(function() { = Lightbox.changeData(Lightbox.activeImage, false); return false; } );=0A= $('#lightshowPause').click(function() { = Lightbox.togglePlayPause("lightshowPause", "lightshowPlay"); return = false; } );=0A= $('#lightshowPlay').click(function() { = Lightbox.togglePlayPause("lightshowPlay", "lightshowPause"); return = false; } );=0A= =0A= // Fix positioning.=0A= $('#prevLink, #nextLink, #framePrevLink, #frameNextLink').css({ = 'paddingTop': Lightbox.borderSize + 'px'});=0A= $('#imageContainer, #frameContainer, #modalContainer').css({ = 'padding': Lightbox.borderSize + 'px'});=0A= $('#outerImageContainer, #imageDataContainer, = #bottomNavClose').css({'backgroundColor': '#' + Lightbox.boxColor, = 'color': '#'+Lightbox.fontColor});=0A= if (Lightbox.alternative_layout) {=0A= $('#bottomNavZoom, #bottomNavZoomOut').css({'bottom': = Lightbox.borderSize + 'px', 'right': Lightbox.borderSize + 'px'});=0A= }=0A= else if (Lightbox.rtl =3D=3D 1 && $.browser.msie) {=0A= $('#bottomNavZoom, #bottomNavZoomOut').css({'left': '0px'});=0A= }=0A= =0A= // Force navigation links to always be displayed=0A= if (s.force_show_nav) {=0A= $('#prevLink, #nextLink').addClass("force_show_nav");=0A= }=0A= =0A= },=0A= =0A= // initList()=0A= // Loops through anchor tags looking for 'lightbox', 'lightshow' and=0A= // 'lightframe', etc, references and applies onclick events to = appropriate=0A= // links. You can rerun after dynamically adding images w/ajax.=0A= initList : function(context) {=0A= =0A= if (context =3D=3D undefined || context =3D=3D null) {=0A= context =3D document;=0A= }=0A= =0A= // Attach lightbox to any links with rel 'lightbox', 'lightshow' or=0A= // 'lightframe', etc.=0A= $("a[rel^=3D'lightbox']:not(.lightbox-processed), = area[rel^=3D'lightbox']:not(.lightbox-processed)", = context).addClass('lightbox-processed').click(function(e) {=0A= if (Lightbox.disableCloseClick) {=0A= $('#lightbox').unbind('click');=0A= $('#lightbox').click(function() { Lightbox.end('forceClose'); } = );=0A= }=0A= Lightbox.start(this, false, false, false, false);=0A= if (e.preventDefault) { e.preventDefault(); }=0A= return false;=0A= });=0A= $("a[rel^=3D'lightshow']:not(.lightbox-processed), = area[rel^=3D'lightshow']:not(.lightbox-processed)", = context).addClass('lightbox-processed').click(function(e) {=0A= if (Lightbox.disableCloseClick) {=0A= $('#lightbox').unbind('click');=0A= $('#lightbox').click(function() { Lightbox.end('forceClose'); } = );=0A= }=0A= Lightbox.start(this, true, false, false, false);=0A= if (e.preventDefault) { e.preventDefault(); }=0A= return false;=0A= });=0A= $("a[rel^=3D'lightframe']:not(.lightbox-processed), = area[rel^=3D'lightframe']:not(.lightbox-processed)", = context).addClass('lightbox-processed').click(function(e) {=0A= if (Lightbox.disableCloseClick) {=0A= $('#lightbox').unbind('click');=0A= $('#lightbox').click(function() { Lightbox.end('forceClose'); } = );=0A= }=0A= Lightbox.start(this, false, true, false, false);=0A= if (e.preventDefault) { e.preventDefault(); }=0A= return false;=0A= });=0A= if (Lightbox.enableVideo) {=0A= $("a[rel^=3D'lightvideo']:not(.lightbox-processed), = area[rel^=3D'lightvideo']:not(.lightbox-processed)", = context).addClass('lightbox-processed').click(function(e) {=0A= if (Lightbox.disableCloseClick) {=0A= $('#lightbox').unbind('click');=0A= $('#lightbox').click(function() { Lightbox.end('forceClose'); = } );=0A= }=0A= Lightbox.start(this, false, false, true, false);=0A= if (e.preventDefault) { e.preventDefault(); }=0A= return false;=0A= });=0A= }=0A= $("a[rel^=3D'lightmodal']:not(.lightbox-processed), = area[rel^=3D'lightmodal']:not(.lightbox-processed)", = context).addClass('lightbox-processed').click(function(e) {=0A= $('#lightbox').unbind('click');=0A= // Add classes from the link to the lightbox div - don't include = lightbox-processed=0A= $('#lightbox').addClass($(this).attr('class'));=0A= $('#lightbox').removeClass('lightbox-processed');=0A= Lightbox.start(this, false, false, false, true);=0A= if (e.preventDefault) { e.preventDefault(); }=0A= return false;=0A= });=0A= $("#lightboxAutoModal:not(.lightbox-processed)", = context).addClass('lightbox-processed').click(function(e) {=0A= Lightbox.auto_modal =3D true;=0A= $('#lightbox').unbind('click');=0A= Lightbox.start(this, false, false, false, true);=0A= if (e.preventDefault) { e.preventDefault(); }=0A= return false;=0A= });=0A= },=0A= =0A= // start()=0A= // Display overlay and lightbox. If image is part of a set, add = siblings to=0A= // imageArray.=0A= start: function(imageLink, slideshow, lightframe, lightvideo, = lightmodal) {=0A= =0A= Lightbox.isPaused =3D !Lightbox.autoStart;=0A= =0A= // Replaces hideSelectBoxes() and hideFlash() calls in original = lightbox2.=0A= Lightbox.toggleSelectsFlash('hide');=0A= =0A= // Stretch overlay to fill page and fade in.=0A= var arrayPageSize =3D Lightbox.getPageSize();=0A= $("#lightbox2-overlay").hide().css({=0A= 'width': '100%',=0A= 'zIndex': '10090',=0A= 'height': arrayPageSize[1] + 'px',=0A= 'backgroundColor' : '#' + Lightbox.overlayColor=0A= });=0A= // Detect OS X FF2 opacity + flash issue.=0A= if (lightvideo && this.detectMacFF2()) {=0A= $("#lightbox2-overlay").removeClass("overlay_default");=0A= $("#lightbox2-overlay").addClass("overlay_macff2");=0A= $("#lightbox2-overlay").css({'opacity' : null});=0A= }=0A= else {=0A= $("#lightbox2-overlay").removeClass("overlay_macff2");=0A= $("#lightbox2-overlay").addClass("overlay_default");=0A= $("#lightbox2-overlay").css({'opacity' : Lightbox.overlayOpacity});=0A= }=0A= $("#lightbox2-overlay").fadeIn(Lightbox.fadeInSpeed);=0A= =0A= =0A= Lightbox.isSlideshow =3D slideshow;=0A= Lightbox.isLightframe =3D lightframe;=0A= Lightbox.isVideo =3D lightvideo;=0A= Lightbox.isModal =3D lightmodal;=0A= Lightbox.imageArray =3D [];=0A= Lightbox.imageNum =3D 0;=0A= =0A= var anchors =3D $(imageLink.tagName);=0A= var anchor =3D null;=0A= var rel_parts =3D Lightbox.parseRel(imageLink);=0A= var rel =3D rel_parts["rel"];=0A= var rel_group =3D rel_parts["group"];=0A= var title =3D (rel_parts["title"] ? rel_parts["title"] : = imageLink.title);=0A= var rel_style =3D null;=0A= var i =3D 0;=0A= =0A= if (rel_parts["flashvars"]) {=0A= Lightbox.flvFlashvars =3D Lightbox.flvFlashvars + '&' + = rel_parts["flashvars"];=0A= }=0A= =0A= // Set the title for image alternative text.=0A= var alt =3D imageLink.title;=0A= if (!alt) {=0A= var img =3D $(imageLink).find("img");=0A= if (img && $(img).attr("alt")) {=0A= alt =3D $(img).attr("alt");=0A= }=0A= else {=0A= alt =3D title;=0A= }=0A= }=0A= =0A= if ($(imageLink).attr('id') =3D=3D 'lightboxAutoModal') {=0A= rel_style =3D rel_parts["style"];=0A= Lightbox.imageArray.push(['#lightboxAutoModal > *', title, alt, = rel_style, 1]);=0A= }=0A= else {=0A= // Handle lightbox images with no grouping.=0A= if ((rel =3D=3D 'lightbox' || rel =3D=3D 'lightshow') && = !rel_group) {=0A= Lightbox.imageArray.push([imageLink.href, title, alt]);=0A= }=0A= =0A= // Handle other items with no grouping.=0A= else if (!rel_group) {=0A= rel_style =3D rel_parts["style"];=0A= Lightbox.imageArray.push([imageLink.href, title, alt, = rel_style]);=0A= }=0A= =0A= // Handle grouped items.=0A= else {=0A= =0A= // Loop through anchors and add them to imageArray.=0A= for (i =3D 0; i < anchors.length; i++) {=0A= anchor =3D anchors[i];=0A= if (anchor.href && typeof(anchor.href) =3D=3D "string" && = $(anchor).attr('rel')) {=0A= var rel_data =3D Lightbox.parseRel(anchor);=0A= var anchor_title =3D (rel_data["title"] ? rel_data["title"] = : anchor.title);=0A= img_alt =3D anchor.title;=0A= if (!img_alt) {=0A= var anchor_img =3D $(anchor).find("img");=0A= if (anchor_img && $(anchor_img).attr("alt")) {=0A= img_alt =3D $(anchor_img).attr("alt");=0A= }=0A= else {=0A= img_alt =3D title;=0A= }=0A= }=0A= if (rel_data["rel"] =3D=3D rel) {=0A= if (rel_data["group"] =3D=3D rel_group) {=0A= if (Lightbox.isLightframe || Lightbox.isModal || = Lightbox.isVideo) {=0A= rel_style =3D rel_data["style"];=0A= }=0A= Lightbox.imageArray.push([anchor.href, anchor_title, = img_alt, rel_style]);=0A= }=0A= }=0A= }=0A= }=0A= =0A= // Remove duplicates.=0A= for (i =3D 0; i < Lightbox.imageArray.length; i++) {=0A= for (j =3D Lightbox.imageArray.length-1; j > i; j--) {=0A= if (Lightbox.imageArray[i][0] =3D=3D = Lightbox.imageArray[j][0]) {=0A= Lightbox.imageArray.splice(j,1);=0A= }=0A= }=0A= }=0A= while (Lightbox.imageArray[Lightbox.imageNum][0] !=3D = imageLink.href) {=0A= Lightbox.imageNum++;=0A= }=0A= }=0A= }=0A= =0A= if (Lightbox.isSlideshow && Lightbox.showPlayPause && = Lightbox.isPaused) {=0A= $('#lightshowPlay').show();=0A= $('#lightshowPause').hide();=0A= }=0A= =0A= // Calculate top and left offset for the lightbox.=0A= var arrayPageScroll =3D Lightbox.getPageScroll();=0A= var lightboxTop =3D arrayPageScroll[1] + (Lightbox.topPosition = =3D=3D '' ? (arrayPageSize[3] / 10) : Lightbox.topPosition) * 1;=0A= var lightboxLeft =3D arrayPageScroll[0];=0A= $('#frameContainer, #modalContainer, #lightboxImage').hide();=0A= $('#hoverNav, #prevLink, #nextLink, #frameHoverNav, #framePrevLink, = #frameNextLink').hide();=0A= $('#imageDataContainer, #numberDisplay, #bottomNavZoom, = #bottomNavZoomOut').hide();=0A= $('#outerImageContainer').css({'width': '250px', 'height': '250px'});=0A= $('#lightbox').css({=0A= 'zIndex': '10500',=0A= 'top': lightboxTop + 'px',=0A= 'left': lightboxLeft + 'px'=0A= }).show();=0A= =0A= Lightbox.total =3D Lightbox.imageArray.length;=0A= Lightbox.changeData(Lightbox.imageNum);=0A= },=0A= =0A= // changeData()=0A= // Hide most elements and preload image in preparation for resizing = image=0A= // container.=0A= changeData: function(imageNum, zoomIn) {=0A= =0A= if (Lightbox.inprogress =3D=3D=3D false) {=0A= if (Lightbox.total > 1 && ((Lightbox.isSlideshow && = Lightbox.loopSlides) || (!Lightbox.isSlideshow && Lightbox.loopItems))) {=0A= if (imageNum >=3D Lightbox.total) imageNum =3D 0;=0A= if (imageNum < 0) imageNum =3D Lightbox.total - 1;=0A= }=0A= =0A= if (Lightbox.isSlideshow) {=0A= for (var i =3D 0; i < Lightbox.slideIdCount; i++) {=0A= window.clearTimeout(Lightbox.slideIdArray[i]);=0A= }=0A= }=0A= Lightbox.inprogress =3D true;=0A= Lightbox.activeImage =3D imageNum;=0A= =0A= if (Lightbox.disableResize && !Lightbox.isSlideshow) {=0A= zoomIn =3D true;=0A= }=0A= //Lightbox.isZoomedIn =3D zoomIn;=0A= Lightbox.isZoomedIn =3D zoomIn;=0A= =0A= =0A= =0A= // Hide elements during transition.=0A= $('#loading').css({'zIndex': '10500'}).show();=0A= if (!Lightbox.alternative_layout) {=0A= $('#imageContainer').hide();=0A= }=0A= $('#frameContainer, #modalContainer, #lightboxImage').hide();=0A= $('#hoverNav, #prevLink, #nextLink, #frameHoverNav, = #framePrevLink, #frameNextLink').hide();=0A= $('#imageDataContainer, #numberDisplay, #bottomNavZoom, = #bottomNavZoomOut').hide();=0A= =0A= // Preload image content, but not iframe pages.=0A= if (!Lightbox.isLightframe && !Lightbox.isVideo && = !Lightbox.isModal) {=0A= $("#lightbox = #imageDataContainer").removeClass('lightbox2-alt-layout-data');=0A= imgPreloader =3D new Image();=0A= imgPreloader.onerror =3D function() { = Lightbox.imgNodeLoadingError(this); };=0A= =0A= imgPreloader.onload =3D function() {=0A= var photo =3D document.getElementById('lightboxImage');=0A= photo.src =3D Lightbox.imageArray[Lightbox.activeImage][0];=0A= photo.alt =3D Lightbox.imageArray[Lightbox.activeImage][2];=0A= =0A= var imageWidth =3D imgPreloader.width;=0A= var imageHeight =3D imgPreloader.height;=0A= =0A= // Resize code.=0A= var arrayPageSize =3D Lightbox.getPageSize();=0A= var targ =3D { w:arrayPageSize[2] - (Lightbox.borderSize * 2), = h:arrayPageSize[3] - (Lightbox.borderSize * 6) - (Lightbox.infoHeight * = 4) - (arrayPageSize[3] / 10) };=0A= var orig =3D { w:imgPreloader.width, h:imgPreloader.height };=0A= =0A= // Image is very large, so show a smaller version of the = larger image=0A= // with zoom button.=0A= if (zoomIn !=3D=3D true) {=0A= var ratio =3D 1.0; // Shrink image with the same aspect.=0A= $('#bottomNavZoomOut, #bottomNavZoom').hide();=0A= if ((orig.w >=3D targ.w || orig.h >=3D targ.h) && orig.h && = orig.w) {=0A= ratio =3D ((targ.w / orig.w) < (targ.h / orig.h)) ? targ.w = / orig.w : targ.h / orig.h;=0A= if (!Lightbox.disableZoom && !Lightbox.isSlideshow) {=0A= $('#bottomNavZoom').css({'zIndex': '10500'}).show();=0A= }=0A= }=0A= =0A= imageWidth =3D Math.floor(orig.w * ratio);=0A= imageHeight =3D Math.floor(orig.h * ratio);=0A= }=0A= =0A= else {=0A= $('#bottomNavZoom').hide();=0A= // Only display zoom out button if the image is zoomed in = already.=0A= if ((orig.w >=3D targ.w || orig.h >=3D targ.h) && orig.h && = orig.w) {=0A= // Only display zoom out button if not a slideshow and if = the=0A= // buttons aren't disabled.=0A= if (!Lightbox.disableResize && Lightbox.isSlideshow = =3D=3D=3D false && !Lightbox.disableZoom) {=0A= $('#bottomNavZoomOut').css({'zIndex': '10500'}).show();=0A= }=0A= }=0A= }=0A= =0A= photo.style.width =3D (imageWidth) + 'px';=0A= photo.style.height =3D (imageHeight) + 'px';=0A= Lightbox.resizeContainer(imageWidth, imageHeight);=0A= =0A= // Clear onLoad, IE behaves irratically with animated gifs = otherwise.=0A= imgPreloader.onload =3D function() {};=0A= };=0A= =0A= imgPreloader.src =3D = Lightbox.imageArray[Lightbox.activeImage][0];=0A= imgPreloader.alt =3D = Lightbox.imageArray[Lightbox.activeImage][2];=0A= }=0A= =0A= // Set up frame size, etc.=0A= else if (Lightbox.isLightframe) {=0A= $("#lightbox = #imageDataContainer").addClass('lightbox2-alt-layout-data');=0A= var src =3D Lightbox.imageArray[Lightbox.activeImage][0];=0A= $('#frameContainer').html('<iframe id=3D"lightboxFrame" = style=3D"display: none;" src=3D"'+src+'"></iframe>');=0A= =0A= // Enable swf support in Gecko browsers.=0A= if ($.browser.mozilla && src.indexOf('.swf') !=3D -1) {=0A= setTimeout(function () {=0A= document.getElementById("lightboxFrame").src =3D = Lightbox.imageArray[Lightbox.activeImage][0];=0A= }, 1000);=0A= }=0A= =0A= if (!Lightbox.iframe_border) {=0A= $('#lightboxFrame').css({'border': 'none'});=0A= $('#lightboxFrame').attr('frameborder', '0');=0A= }=0A= var iframe =3D document.getElementById('lightboxFrame');=0A= var iframeStyles =3D = Lightbox.imageArray[Lightbox.activeImage][3];=0A= iframe =3D Lightbox.setStyles(iframe, iframeStyles);=0A= Lightbox.resizeContainer(parseInt(iframe.width, 10), = parseInt(iframe.height, 10));=0A= }=0A= else if (Lightbox.isVideo || Lightbox.isModal) {=0A= $("#lightbox = #imageDataContainer").addClass('lightbox2-alt-layout-data');=0A= var container =3D document.getElementById('modalContainer');=0A= var modalStyles =3D Lightbox.imageArray[Lightbox.activeImage][3];=0A= container =3D Lightbox.setStyles(container, modalStyles);=0A= if (Lightbox.isVideo) {=0A= Lightbox.modalHeight =3D parseInt(container.height, 10) - 10;=0A= Lightbox.modalWidth =3D parseInt(container.width, 10) - 10;=0A= = Lightvideo.startVideo(Lightbox.imageArray[Lightbox.activeImage][0]);=0A= }=0A= Lightbox.resizeContainer(parseInt(container.width, 10), = parseInt(container.height, 10));=0A= }=0A= }=0A= },=0A= =0A= // imgNodeLoadingError()=0A= imgNodeLoadingError: function(image) {=0A= var s =3D Drupal.settings.lightbox2;=0A= var original_image =3D Lightbox.imageArray[Lightbox.activeImage][0];=0A= if (s.display_image_size !=3D=3D "") {=0A= original_image =3D original_image.replace(new = RegExp("."+s.display_image_size), "");=0A= }=0A= Lightbox.imageArray[Lightbox.activeImage][0] =3D original_image;=0A= image.onerror =3D function() { Lightbox.imgLoadingError(image); };=0A= image.src =3D original_image;=0A= },=0A= =0A= // imgLoadingError()=0A= imgLoadingError: function(image) {=0A= var s =3D Drupal.settings.lightbox2;=0A= Lightbox.imageArray[Lightbox.activeImage][0] =3D s.default_image;=0A= image.src =3D s.default_image;=0A= },=0A= =0A= // resizeContainer()=0A= resizeContainer: function(imgWidth, imgHeight) {=0A= =0A= imgWidth =3D (imgWidth < Lightbox.minWidth ? Lightbox.minWidth : = imgWidth);=0A= =0A= this.widthCurrent =3D $('#outerImageContainer').width();=0A= this.heightCurrent =3D $('#outerImageContainer').height();=0A= =0A= var widthNew =3D (imgWidth + (Lightbox.borderSize * 2));=0A= var heightNew =3D (imgHeight + (Lightbox.borderSize * 2));=0A= =0A= // Scalars based on change from old to new.=0A= this.xScale =3D ( widthNew / this.widthCurrent) * 100;=0A= this.yScale =3D ( heightNew / this.heightCurrent) * 100;=0A= =0A= // Calculate size difference between new and old image, and resize if=0A= // necessary.=0A= wDiff =3D this.widthCurrent - widthNew;=0A= hDiff =3D this.heightCurrent - heightNew;=0A= =0A= $('#modalContainer').css({'width': imgWidth, 'height': imgHeight});=0A= // Detect animation sequence.=0A= if (Lightbox.resizeSequence) {=0A= var animate1 =3D {width: widthNew};=0A= var animate2 =3D {height: heightNew};=0A= if (Lightbox.resizeSequence =3D=3D 2) {=0A= animate1 =3D {height: heightNew};=0A= animate2 =3D {width: widthNew};=0A= }=0A= $('#outerImageContainer').animate(animate1, = Lightbox.resizeSpeed).animate(animate2, Lightbox.resizeSpeed, 'linear', = function() { Lightbox.showData(); });=0A= }=0A= // Simultaneous.=0A= else {=0A= $('#outerImageContainer').animate({'width': widthNew, 'height': = heightNew}, Lightbox.resizeSpeed, 'linear', function() { = Lightbox.showData(); });=0A= }=0A= =0A= // If new and old image are same size and no scaling transition is = necessary=0A= // do a quick pause to prevent image flicker.=0A= if ((hDiff =3D=3D=3D 0) && (wDiff =3D=3D=3D 0)) {=0A= if ($.browser.msie) {=0A= Lightbox.pause(250);=0A= }=0A= else {=0A= Lightbox.pause(100);=0A= }=0A= }=0A= =0A= var s =3D Drupal.settings.lightbox2;=0A= if (!s.use_alt_layout) {=0A= $('#prevLink, #nextLink').css({'height': imgHeight + 'px'});=0A= }=0A= $('#imageDataContainer').css({'width': widthNew + 'px'});=0A= },=0A= =0A= // showData()=0A= // Display image and begin preloading neighbors.=0A= showData: function() {=0A= $('#loading').hide();=0A= =0A= if (Lightbox.isLightframe || Lightbox.isVideo || Lightbox.isModal) {=0A= Lightbox.updateDetails();=0A= if (Lightbox.isLightframe) {=0A= $('#frameContainer').show();=0A= if ($.browser.safari || Lightbox.fadeInSpeed =3D=3D=3D 0) {=0A= $('#lightboxFrame').css({'zIndex': '10500'}).show();=0A= }=0A= else {=0A= $('#lightboxFrame').css({'zIndex': = '10500'}).fadeIn(Lightbox.fadeInSpeed);=0A= }=0A= }=0A= else {=0A= if (Lightbox.isVideo) {=0A= = $("#modalContainer").html(Lightbox.modalHTML).click(function(){return = false;}).css('zIndex', '10500').show();=0A= }=0A= else {=0A= var src =3D = unescape(Lightbox.imageArray[Lightbox.activeImage][0]);=0A= if (Lightbox.imageArray[Lightbox.activeImage][4]) {=0A= $(src).appendTo("#modalContainer");=0A= $('#modalContainer').css({'zIndex': '10500'}).show();=0A= }=0A= else {=0A= // Use a callback to show the new image, otherwise you get = flicker.=0A= $("#modalContainer").hide().load(src, function () = {$('#modalContainer').css({'zIndex': '10500'}).show();});=0A= }=0A= $('#modalContainer').unbind('click');=0A= }=0A= // This might be needed in the Lightframe section above.=0A= //$('#modalContainer').css({'zIndex': '10500'}).show();=0A= }=0A= }=0A= =0A= // Handle display of image content.=0A= else {=0A= $('#imageContainer').show();=0A= if ($.browser.safari || Lightbox.fadeInSpeed =3D=3D=3D 0) {=0A= $('#lightboxImage').css({'zIndex': '10500'}).show();=0A= }=0A= else {=0A= $('#lightboxImage').css({'zIndex': = '10500'}).fadeIn(Lightbox.fadeInSpeed);=0A= }=0A= Lightbox.updateDetails();=0A= this.preloadNeighborImages();=0A= }=0A= Lightbox.inprogress =3D false;=0A= =0A= // Slideshow specific stuff.=0A= if (Lightbox.isSlideshow) {=0A= if (!Lightbox.loopSlides && Lightbox.activeImage =3D=3D = (Lightbox.total - 1)) {=0A= if (Lightbox.autoExit) {=0A= Lightbox.slideIdArray[Lightbox.slideIdCount++] =3D = setTimeout(function () {Lightbox.end('slideshow');}, = Lightbox.slideInterval);=0A= }=0A= }=0A= else {=0A= if (!Lightbox.isPaused && Lightbox.total > 1) {=0A= Lightbox.slideIdArray[Lightbox.slideIdCount++] =3D = setTimeout(function () {Lightbox.changeData(Lightbox.activeImage + 1);}, = Lightbox.slideInterval);=0A= }=0A= }=0A= if (Lightbox.showPlayPause && Lightbox.total > 1 && = !Lightbox.isPaused) {=0A= $('#lightshowPause').show();=0A= $('#lightshowPlay').hide();=0A= }=0A= else if (Lightbox.showPlayPause && Lightbox.total > 1) {=0A= $('#lightshowPause').hide();=0A= $('#lightshowPlay').show();=0A= }=0A= }=0A= =0A= // Adjust the page overlay size.=0A= var arrayPageSize =3D Lightbox.getPageSize();=0A= var arrayPageScroll =3D Lightbox.getPageScroll();=0A= var pageHeight =3D arrayPageSize[1];=0A= if (Lightbox.isZoomedIn && arrayPageSize[1] > arrayPageSize[3]) {=0A= var lightboxTop =3D (Lightbox.topPosition =3D=3D '' ? = (arrayPageSize[3] / 10) : Lightbox.topPosition) * 1;=0A= pageHeight =3D pageHeight + arrayPageScroll[1] + lightboxTop;=0A= }=0A= $('#lightbox2-overlay').css({'height': pageHeight + 'px', 'width': = arrayPageSize[0] + 'px'});=0A= =0A= // Gecko browsers (e.g. Firefox, SeaMonkey, etc) don't handle pdfs as=0A= // expected.=0A= if ($.browser.mozilla) {=0A= if (Lightbox.imageArray[Lightbox.activeImage][0].indexOf(".pdf") = !=3D -1) {=0A= setTimeout(function () {=0A= document.getElementById("lightboxFrame").src =3D = Lightbox.imageArray[Lightbox.activeImage][0];=0A= }, 1000);=0A= }=0A= }=0A= },=0A= =0A= // updateDetails()=0A= // Display caption, image number, and bottom nav.=0A= updateDetails: function() {=0A= =0A= $("#imageDataContainer").hide();=0A= =0A= var s =3D Drupal.settings.lightbox2;=0A= =0A= if (s.show_caption) {=0A= var caption =3D = Lightbox.filterXSS(Lightbox.imageArray[Lightbox.activeImage][1]);=0A= if (!caption) caption =3D '';=0A= //caption +=3D '<br><a = href=3D"javascript:Lightbox.end(\'forceClose\'); " = >'+Drupal.t('Close')+'<a> ' ;=0A= //sandy=0A= //caption +=3D '<br>'+Drupal.t('press any key to close') ;=0A= $('#caption').html(caption).css({'zIndex': '10500'}).show();=0A= $('#caption a').attr('target', '_blank');=0A= }=0A= =0A= // If image is part of set display 'Image x of x'.=0A= var numberDisplay =3D null;=0A= if (s.image_count && Lightbox.total > 1) {=0A= var currentImage =3D Lightbox.activeImage + 1;=0A= if (!Lightbox.isLightframe && !Lightbox.isModal && = !Lightbox.isVideo) {=0A= numberDisplay =3D s.image_count.replace(/\!current/, = currentImage).replace(/\!total/, Lightbox.total);=0A= }=0A= else if (Lightbox.isVideo) {=0A= numberDisplay =3D s.video_count.replace(/\!current/, = currentImage).replace(/\!total/, Lightbox.total);=0A= }=0A= else {=0A= numberDisplay =3D s.page_count.replace(/\!current/, = currentImage).replace(/\!total/, Lightbox.total);=0A= }=0A= $('#numberDisplay').html(numberDisplay).css({'zIndex': = '10500'}).show();=0A= }=0A= else {=0A= $('#numberDisplay').hide();=0A= }=0A= =0A= $("#imageDataContainer").hide().slideDown(Lightbox.slideDownSpeed, = function() {=0A= $("#bottomNav").show();=0A= });=0A= if (Lightbox.rtl =3D=3D 1) {=0A= $("#bottomNav").css({'float': 'left'});=0A= }=0A= Lightbox.updateNav();=0A= },=0A= =0A= // updateNav()=0A= // Display appropriate previous and next hover navigation.=0A= updateNav: function() {=0A= =0A= $('#hoverNav').css({'zIndex': '10500'}).show();=0A= var prevLink =3D '#prevLink';=0A= var nextLink =3D '#nextLink';=0A= =0A= // Slideshow is separated as we need to show play / pause button.=0A= if (Lightbox.isSlideshow) {=0A= if ((Lightbox.total > 1 && Lightbox.loopSlides) || = Lightbox.activeImage !=3D=3D 0) {=0A= $(prevLink).css({'zIndex': '10500'}).show().click(function() {=0A= if (Lightbox.pauseOnPrevClick) {=0A= Lightbox.togglePlayPause("lightshowPause", "lightshowPlay");=0A= }=0A= Lightbox.changeData(Lightbox.activeImage - 1); return false;=0A= });=0A= }=0A= else {=0A= $(prevLink).hide();=0A= }=0A= =0A= // If not last image in set, display next image button.=0A= if ((Lightbox.total > 1 && Lightbox.loopSlides) || = Lightbox.activeImage !=3D (Lightbox.total - 1)) {=0A= $(nextLink).css({'zIndex': '10500'}).show().click(function() {=0A= if (Lightbox.pauseOnNextClick) {=0A= Lightbox.togglePlayPause("lightshowPause", "lightshowPlay");=0A= }=0A= Lightbox.changeData(Lightbox.activeImage + 1); return false;=0A= });=0A= }=0A= // Safari browsers need to have hide() called again.=0A= else {=0A= $(nextLink).hide();=0A= }=0A= }=0A= =0A= // All other types of content.=0A= else {=0A= =0A= if ((Lightbox.isLightframe || Lightbox.isModal || = Lightbox.isVideo) && !Lightbox.alternative_layout) {=0A= $('#frameHoverNav').css({'zIndex': '10500'}).show();=0A= $('#hoverNav').css({'zIndex': '10500'}).hide();=0A= prevLink =3D '#framePrevLink';=0A= nextLink =3D '#frameNextLink';=0A= }=0A= =0A= // If not first image in set, display prev image button.=0A= if ((Lightbox.total > 1 && Lightbox.loopItems) || = Lightbox.activeImage !=3D=3D 0) {=0A= // Unbind any other click handlers, otherwise this adds a new = click handler=0A= // each time the arrow is clicked.=0A= $(prevLink).css({'zIndex': = '10500'}).show().unbind().click(function() {=0A= Lightbox.changeData(Lightbox.activeImage - 1); return false;=0A= });=0A= }=0A= // Safari browsers need to have hide() called again.=0A= else {=0A= $(prevLink).hide();=0A= }=0A= =0A= // If not last image in set, display next image button.=0A= if ((Lightbox.total > 1 && Lightbox.loopItems) || = Lightbox.activeImage !=3D (Lightbox.total - 1)) {=0A= // Unbind any other click handlers, otherwise this adds a new = click handler=0A= // each time the arrow is clicked.=0A= $(nextLink).css({'zIndex': = '10500'}).show().unbind().click(function() {=0A= Lightbox.changeData(Lightbox.activeImage + 1); return false;=0A= });=0A= }=0A= // Safari browsers need to have hide() called again.=0A= else {=0A= $(nextLink).hide();=0A= }=0A= }=0A= =0A= // Don't enable keyboard shortcuts so forms will work.=0A= if (!Lightbox.isModal) {=0A= this.enableKeyboardNav();=0A= }=0A= },=0A= =0A= =0A= // enableKeyboardNav()=0A= enableKeyboardNav: function() {=0A= $(document).bind("keydown", this.keyboardAction);=0A= },=0A= =0A= // disableKeyboardNav()=0A= disableKeyboardNav: function() {=0A= $(document).unbind("keydown", this.keyboardAction);=0A= },=0A= =0A= // keyboardAction()=0A= keyboardAction: function(e) {=0A= if (e =3D=3D=3D null) { // IE.=0A= keycode =3D event.keyCode;=0A= escapeKey =3D 27;=0A= }=0A= else { // Mozilla.=0A= keycode =3D e.keyCode;=0A= escapeKey =3D e.DOM_VK_ESCAPE;=0A= }=0A= =0A= key =3D String.fromCharCode(keycode).toLowerCase();=0A= =0A= // Close lightbox.=0A= if (Lightbox.checkKey(Lightbox.keysClose, key, keycode)) {=0A= Lightbox.end('forceClose');=0A= }=0A= // Display previous image (p, <-).=0A= else if (Lightbox.checkKey(Lightbox.keysPrevious, key, keycode)) {=0A= if ((Lightbox.total > 1 && ((Lightbox.isSlideshow && = Lightbox.loopSlides) || (!Lightbox.isSlideshow && Lightbox.loopItems))) = || Lightbox.activeImage !=3D=3D 0) {=0A= Lightbox.changeData(Lightbox.activeImage - 1);=0A= }=0A= =0A= }=0A= // Display next image (n, ->).=0A= else if (Lightbox.checkKey(Lightbox.keysNext, key, keycode)) {=0A= if ((Lightbox.total > 1 && ((Lightbox.isSlideshow && = Lightbox.loopSlides) || (!Lightbox.isSlideshow && Lightbox.loopItems))) = || Lightbox.activeImage !=3D (Lightbox.total - 1)) {=0A= Lightbox.changeData(Lightbox.activeImage + 1);=0A= }=0A= }=0A= // Zoom in.=0A= else if (Lightbox.checkKey(Lightbox.keysZoom, key, keycode) && = !Lightbox.disableResize && !Lightbox.disableZoom && = !Lightbox.isSlideshow && !Lightbox.isLightframe) {=0A= if (Lightbox.isZoomedIn) {=0A= Lightbox.changeData(Lightbox.activeImage, false);=0A= }=0A= else if (!Lightbox.isZoomedIn) {=0A= Lightbox.changeData(Lightbox.activeImage, true);=0A= }=0A= return false;=0A= }=0A= // Toggle play / pause (space).=0A= else if (Lightbox.checkKey(Lightbox.keysPlayPause, key, keycode) && = Lightbox.isSlideshow) {=0A= =0A= if (Lightbox.isPaused) {=0A= Lightbox.togglePlayPause("lightshowPlay", "lightshowPause");=0A= }=0A= else {=0A= Lightbox.togglePlayPause("lightshowPause", "lightshowPlay");=0A= }=0A= return false;=0A= }=0A= },=0A= =0A= preloadNeighborImages: function() {=0A= =0A= if ((Lightbox.total - 1) > Lightbox.activeImage) {=0A= preloadNextImage =3D new Image();=0A= preloadNextImage.src =3D Lightbox.imageArray[Lightbox.activeImage = + 1][0];=0A= }=0A= if (Lightbox.activeImage > 0) {=0A= preloadPrevImage =3D new Image();=0A= preloadPrevImage.src =3D Lightbox.imageArray[Lightbox.activeImage = - 1][0];=0A= }=0A= =0A= },=0A= =0A= end: function(caller) {=0A= var closeClick =3D (caller =3D=3D 'slideshow' ? false : true);=0A= if (Lightbox.isSlideshow && Lightbox.isPaused && !closeClick) {=0A= return;=0A= }=0A= // To prevent double clicks on navigation links.=0A= if (Lightbox.inprogress =3D=3D=3D true && caller !=3D 'forceClose') {=0A= return;=0A= }=0A= Lightbox.disableKeyboardNav();=0A= $('#lightbox').hide();=0A= $("#lightbox2-overlay").fadeOut();=0A= Lightbox.isPaused =3D true;=0A= Lightbox.inprogress =3D false;=0A= // Replaces calls to showSelectBoxes() and showFlash() in original=0A= // lightbox2.=0A= Lightbox.toggleSelectsFlash('visible');=0A= if (Lightbox.isSlideshow) {=0A= for (var i =3D 0; i < Lightbox.slideIdCount; i++) {=0A= window.clearTimeout(Lightbox.slideIdArray[i]);=0A= }=0A= $('#lightshowPause, #lightshowPlay').hide();=0A= }=0A= else if (Lightbox.isLightframe) {=0A= $('#frameContainer').empty().hide();=0A= }=0A= else if (Lightbox.isVideo || Lightbox.isModal) {=0A= if (!Lightbox.auto_modal) {=0A= $('#modalContainer').hide().html("");=0A= }=0A= Lightbox.auto_modal =3D false;=0A= }=0A= },=0A= =0A= =0A= // getPageScroll()=0A= // Returns array with x,y page scroll values.=0A= // Core code from - quirksmode.com.=0A= getPageScroll : function() {=0A= =0A= var xScroll, yScroll;=0A= =0A= if (self.pageYOffset || self.pageXOffset) {=0A= yScroll =3D self.pageYOffset;=0A= xScroll =3D self.pageXOffset;=0A= }=0A= else if (document.documentElement && = (document.documentElement.scrollTop || = document.documentElement.scrollLeft)) { // Explorer 6 Strict.=0A= yScroll =3D document.documentElement.scrollTop;=0A= xScroll =3D document.documentElement.scrollLeft;=0A= }=0A= else if (document.body) {// All other Explorers.=0A= yScroll =3D document.body.scrollTop;=0A= xScroll =3D document.body.scrollLeft;=0A= }=0A= =0A= arrayPageScroll =3D [xScroll,yScroll];=0A= return arrayPageScroll;=0A= },=0A= =0A= // getPageSize()=0A= // Returns array with page width, height and window width, height.=0A= // Core code from - quirksmode.com.=0A= // Edit for Firefox by pHaez.=0A= =0A= getPageSize : function() {=0A= =0A= var xScroll, yScroll;=0A= =0A= if (window.innerHeight && window.scrollMaxY) {=0A= xScroll =3D window.innerWidth + window.scrollMaxX;=0A= yScroll =3D window.innerHeight + window.scrollMaxY;=0A= }=0A= else if (document.body.scrollHeight > document.body.offsetHeight) { = // All but Explorer Mac.=0A= xScroll =3D document.body.scrollWidth;=0A= yScroll =3D document.body.scrollHeight;=0A= }=0A= else { // Explorer Mac...would also work in Explorer 6 Strict, = Mozilla and Safari.=0A= xScroll =3D document.body.offsetWidth;=0A= yScroll =3D document.body.offsetHeight;=0A= }=0A= =0A= var windowWidth, windowHeight;=0A= =0A= if (self.innerHeight) { // All except Explorer.=0A= if (document.documentElement.clientWidth) {=0A= windowWidth =3D document.documentElement.clientWidth;=0A= }=0A= else {=0A= windowWidth =3D self.innerWidth;=0A= }=0A= windowHeight =3D self.innerHeight;=0A= }=0A= else if (document.documentElement && = document.documentElement.clientHeight) { // Explorer 6 Strict Mode.=0A= windowWidth =3D document.documentElement.clientWidth;=0A= windowHeight =3D document.documentElement.clientHeight;=0A= }=0A= else if (document.body) { // Other Explorers.=0A= windowWidth =3D document.body.clientWidth;=0A= windowHeight =3D document.body.clientHeight;=0A= }=0A= // For small pages with total height less than height of the = viewport.=0A= if (yScroll < windowHeight) {=0A= pageHeight =3D windowHeight;=0A= }=0A= else {=0A= pageHeight =3D yScroll;=0A= }=0A= // For small pages with total width less than width of the viewport.=0A= if (xScroll < windowWidth) {=0A= pageWidth =3D xScroll;=0A= }=0A= else {=0A= pageWidth =3D windowWidth;=0A= }=0A= arrayPageSize =3D new = Array(pageWidth,pageHeight,windowWidth,windowHeight);=0A= return arrayPageSize;=0A= },=0A= =0A= =0A= // pause(numberMillis)=0A= pause : function(ms) {=0A= var date =3D new Date();=0A= var curDate =3D null;=0A= do { curDate =3D new Date(); }=0A= while (curDate - date < ms);=0A= },=0A= =0A= =0A= // toggleSelectsFlash()=0A= // Hide / unhide select lists and flash objects as they appear above = the=0A= // lightbox in some browsers.=0A= toggleSelectsFlash: function (state) {=0A= if (state =3D=3D 'visible') {=0A= $("select.lightbox_hidden, embed.lightbox_hidden, = object.lightbox_hidden").show();=0A= }=0A= else if (state =3D=3D 'hide') {=0A= $("select:visible, embed:visible, = object:visible").not('#lightboxAutoModal select, #lightboxAutoModal = embed, #lightboxAutoModal object').addClass("lightbox_hidden");=0A= $("select.lightbox_hidden, embed.lightbox_hidden, = object.lightbox_hidden").hide();=0A= }=0A= },=0A= =0A= =0A= // parseRel()=0A= parseRel: function (link) {=0A= var parts =3D [];=0A= parts["rel"] =3D parts["title"] =3D parts["group"] =3D = parts["style"] =3D parts["flashvars"] =3D null;=0A= if (!$(link).attr('rel')) return parts;=0A= parts["rel"] =3D $(link).attr('rel').match(/\w+/)[0];=0A= =0A= if ($(link).attr('rel').match(/\[(.*)\]/)) {=0A= var info =3D $(link).attr('rel').match(/\[(.*?)\]/)[1].split('|');=0A= parts["group"] =3D info[0];=0A= parts["style"] =3D info[1];=0A= if (parts["style"] !=3D undefined && = parts["style"].match(/flashvars:\s?(.*?);/)) {=0A= parts["flashvars"] =3D = parts["style"].match(/flashvars:\s?(.*?);/)[1];=0A= }=0A= }=0A= if ($(link).attr('rel').match(/\[.*\]\[(.*)\]/)) {=0A= parts["title"] =3D $(link).attr('rel').match(/\[.*\]\[(.*)\]/)[1];=0A= }=0A= return parts;=0A= },=0A= =0A= // setStyles()=0A= setStyles: function(item, styles) {=0A= item.width =3D Lightbox.iframe_width;=0A= item.height =3D Lightbox.iframe_height;=0A= item.scrolling =3D "auto";=0A= =0A= if (!styles) return item;=0A= var stylesArray =3D styles.split(';');=0A= for (var i =3D 0; i< stylesArray.length; i++) {=0A= if (stylesArray[i].indexOf('width:') >=3D 0) {=0A= var w =3D stylesArray[i].replace('width:', '');=0A= item.width =3D jQuery.trim(w);=0A= }=0A= else if (stylesArray[i].indexOf('height:') >=3D 0) {=0A= var h =3D stylesArray[i].replace('height:', '');=0A= item.height =3D jQuery.trim(h);=0A= }=0A= else if (stylesArray[i].indexOf('scrolling:') >=3D 0) {=0A= var scrolling =3D stylesArray[i].replace('scrolling:', '');=0A= item.scrolling =3D jQuery.trim(scrolling);=0A= }=0A= else if (stylesArray[i].indexOf('overflow:') >=3D 0) {=0A= var overflow =3D stylesArray[i].replace('overflow:', '');=0A= item.overflow =3D jQuery.trim(overflow);=0A= }=0A= }=0A= return item;=0A= },=0A= =0A= =0A= // togglePlayPause()=0A= // Hide the pause / play button as appropriate. If pausing the = slideshow also=0A= // clear the timers, otherwise move onto the next image.=0A= togglePlayPause: function(hideId, showId) {=0A= if (Lightbox.isSlideshow && hideId =3D=3D "lightshowPause") {=0A= for (var i =3D 0; i < Lightbox.slideIdCount; i++) {=0A= window.clearTimeout(Lightbox.slideIdArray[i]);=0A= }=0A= }=0A= $('#' + hideId).hide();=0A= $('#' + showId).show();=0A= =0A= if (hideId =3D=3D "lightshowPlay") {=0A= Lightbox.isPaused =3D false;=0A= if (!Lightbox.loopSlides && Lightbox.activeImage =3D=3D = (Lightbox.total - 1)) {=0A= Lightbox.end();=0A= }=0A= else if (Lightbox.total > 1) {=0A= Lightbox.changeData(Lightbox.activeImage + 1);=0A= }=0A= }=0A= else {=0A= Lightbox.isPaused =3D true;=0A= }=0A= },=0A= =0A= triggerLightbox: function (rel_type, rel_group) {=0A= if (rel_type.length) {=0A= if (rel_group && rel_group.length) {=0A= $("a[rel^=3D'" + rel_type +"\[" + rel_group + "\]'], = area[rel^=3D'" + rel_type +"\[" + rel_group + = "\]']").eq(0).trigger("click");=0A= }=0A= else {=0A= $("a[rel^=3D'" + rel_type +"'], area[rel^=3D'" + rel_type = +"']").eq(0).trigger("click");=0A= }=0A= }=0A= },=0A= =0A= detectMacFF2: function() {=0A= var ua =3D navigator.userAgent.toLowerCase();=0A= if (/firefox[\/\s](\d+\.\d+)/.test(ua)) {=0A= var ffversion =3D new Number(RegExp.$1);=0A= if (ffversion < 3 && ua.indexOf('mac') !=3D -1) {=0A= return true;=0A= }=0A= }=0A= return false;=0A= },=0A= =0A= checkKey: function(keys, key, code) {=0A= return (jQuery.inArray(key, keys) !=3D -1 || = jQuery.inArray(String(code), keys) !=3D -1);=0A= },=0A= =0A= filterXSS: function(str, allowed_tags) {=0A= var output =3D "";=0A= $.ajax({=0A= url: Drupal.settings.basePath + 'system/lightbox2/filter-xss',=0A= data: {=0A= 'string' : str,=0A= 'allowed_tags' : allowed_tags=0A= },=0A= type: "POST",=0A= async: false,=0A= dataType: "json",=0A= success: function(data) {=0A= output =3D data;=0A= }=0A= });=0A= return output;=0A= }=0A= =0A= };=0A= =0A= // Initialize the lightbox.=0A= Drupal.behaviors.initLightbox =3D {=0A= attach: function(context) {=0A= =0A= $('body:not(.lightbox-processed)', = context).addClass('lightbox-processed').each(function() {=0A= Lightbox.initialize();=0A= return false; // Break the each loop.=0A= });=0A= =0A= // Attach lightbox to any links with lightbox rels.=0A= Lightbox.initList(context);=0A= $('#lightboxAutoModal', context).triggerHandler('click');=0A= }=0A= };=0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_003.js /**=0A= * Cookie plugin=0A= *=0A= * Copyright (c) 2006 Klaus Hartl (stilbuero.de)=0A= * Dual licensed under the MIT and GPL licenses:=0A= * http://www.opensource.org/licenses/mit-license.php=0A= * http://www.gnu.org/licenses/gpl.html=0A= *=0A= */=0A= jQuery.cookie=3Dfunction(name,value,options){if(typeof = value!=3D'undefined'){options=3Doptions||{};if(value=3D=3D=3Dnull){value=3D= '';options.expires=3D-1;}=0A= var expires=3D'';if(options.expires&&(typeof = options.expires=3D=3D'number'||options.expires.toUTCString)){var = date;if(typeof options.expires=3D=3D'number'){date=3Dnew = Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else= {date=3Doptions.expires;}=0A= expires=3D'; expires=3D'+date.toUTCString();}=0A= var path=3Doptions.path?'; path=3D'+(options.path):'';var = domain=3Doptions.domain?'; domain=3D'+(options.domain):'';var = secure=3Doptions.secure?'; = secure':'';document.cookie=3D[name,'=3D',encodeURIComponent(value),expire= s,path,domain,secure].join('');}else{var = cookieValue=3Dnull;if(document.cookie&&document.cookie!=3D''){var = cookies=3Ddocument.cookie.split(';');for(var = i=3D0;i<cookies.length;i++){var = cookie=3DjQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)=3D=3D= (name+'=3D')){cookieValue=3DdecodeURIComponent(cookie.substring(name.leng= th+1));break;}}}=0A= return cookieValue;}}; ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/pollanon.js (function($){Drupal.behaviors.pollanonHandleVoteView=3D{attach:function(a= ){if(typeof = PollAnon=3D=3D'undefined'||!PollAnon.nid){return}cookieName=3D'pa-'+PollA= non.nid;$('form.pollanon').fadeIn('fast');if(false && = $.cookie(cookieName)){$hiddenResults=3D$('.pollanon-poll-results.hidden')= ;if($hiddenResults.length>0){$poll_form=3D$('form.pollanon = .vote-form');$('.form-radios, = .form-submit',$poll_form).hide();$hiddenResults.hide();$hiddenResults.rem= oveClass('hidden');$hiddenResults.fadeIn('fast')}}else{ua=3Dnavigator.use= rAgent;uaI=3DMath.floor(ua.length/2);pollanonKey=3Dua?ua.substring(uaI,ua= I+2)+ua.length:'';pollanonKey+=3D'-'+new = Date().getTime();$.cookie('pa-submit',pollanonKey,{path:'/'});$('form.pol= lanon = input[name=3D"pollanonkey"]',a).attr('value',pollanonKey)}msg=3D$.cookie(= 'pa-messages');if(msg){msg=3Dunescape(msg.replace(/\+/g," = "));$('form.pollanon').before('<div class=3D"messages = status">'+msg+'</div>');$.cookie('pa-messages',null,{path:'/'})}}}})(jQue= ry); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/text-resize.js /**=0A= * @file=0A= * This file controls accessibility functions on the theme layer.=0A= * Based on: = http://www.acfonline.org.au/sites/all/themes/acf/js/acf.accessibility.js=0A= */=0A= =0A= (function ($) {=0A= =0A= /*=0A= * @function govAccessibilityTextSize=0A= * Controls the text resizer=0A= */ =0A= Drupal.behaviors.govAccessibilityTextSize =3D {=0A= attach: function (context, settings) {=0A= =0A= $('#resize-buttons .font-largest a').click(function() {=0A= $('#main-wrapper > #main').removeClass('large-fonts');=0A= $('#main-wrapper > #main').addClass('largest-fonts');=0A= $('.font-normal a').removeClass('focus');=0A= $('.font-large a').removeClass('focus');=0A= =0A= $('#main-menu').removeClass('large-fonts');=0A= $('#main-menu').addClass('largest-fonts');=0A= =0A= $('#front_block2').removeClass('large-fonts');=0A= $('#front_block2').addClass('largest-fonts');=0A= =0A= $('#front_block_wrapper').removeClass('large-fonts');=0A= $('#front_block_wrapper').addClass('largest-fonts');=0A= =0A= $('#footer-wrapper').removeClass('large-fonts');=0A= $('#footer-wrapper').addClass('largest-fonts');=0A= =0A= $('select').removeClass('large-fonts');=0A= $('select').addClass('largest-fonts');=0A= =0A= =0A= =0A= $(this).removeClass('focus').addClass('focus');=0A= $.cookie("fontsize", "3", { expires: 7, path: '/' });=0A= $('.resize').css('font-size','200%');=0A= =0A= return false;=0A= });=0A= =0A= $('#resize-buttons .font-large a').click(function() {=0A= $('#main-wrapper > #main').removeClass('largest-fonts');=0A= $('#main-wrapper > #main').removeClass('large-fonts');=0A= $('#main-wrapper > #main').addClass('large-fonts');=0A= =0A= $('#main-menu').removeClass('largest-fonts');=0A= $('#main-menu').removeClass('large-fonts');=0A= $('#main-menu').addClass('large-fonts');=0A= =0A= $('#front_block2').removeClass('largest-fonts');=0A= $('#front_block2').removeClass('large-fonts');=0A= $('#front_block2').addClass('large-fonts');=0A= =0A= $('#front_block_wrapper').removeClass('largest-fonts');=0A= $('#front_block_wrapper').addClass('large-fonts');=0A= =0A= $('#footer-wrapper').removeClass('largest-fonts');=0A= $('#footer-wrapper').addClass('large-fonts');=0A= =0A= $('select').removeClass('largest-fonts');=0A= $('select').addClass('large-fonts');=0A= =0A= =0A= $('.font-normal a').removeClass('focus');=0A= $('.font-largest a').removeClass('focus');=0A= $(this).removeClass('focus').addClass('focus');=0A= $.cookie("fontsize", "2", { expires: 7, path: '/' });=0A= $('.resize').css('font-size','150%');=0A= =0A= =0A= return false;=0A= });=0A= =0A= $('#resize-buttons .font-normal a').click(function() {=0A= $('#main-wrapper > #main').removeClass('large-fonts');=0A= $('#main-wrapper > #main').removeClass('largest-fonts');=0A= $('#main-menu').removeClass('largest-fonts');=0A= $('#main-menu').removeClass('large-fonts');=0A= $('#front_block2').removeClass('largest-fonts');=0A= $('#front_block2').removeClass('large-fonts');=0A= $('#front_block_wrapper').removeClass('largest-fonts');=0A= $('#front_block_wrapper').removeClass('large-fonts');=0A= $('#footer-wrapper').removeClass('largest-fonts');=0A= $('#footer-wrapper').removeClass('large-fonts');=0A= $('select').removeClass('largest-fonts');=0A= $('select').removeClass('large-fonts');=0A= $('.font-large a').removeClass('focus');=0A= $('.font-largest a').removeClass('focus');=0A= $(this).removeClass('focus').addClass('focus');=0A= $.cookie("fontsize", "1", { expires: 7, path: '/' });=0A= $('.resize').css('font-size','100%'); =0A= =0A= return false;=0A= });=0A= =0A= var fs =3D $.cookie("fontsize");=0A= =0A= if(fs > 0)=0A= {=0A= if(fs=3D=3D"1")=0A= {=0A= $('#resize-buttons .font-normal a').trigger('click');=0A= } =0A= if(fs=3D=3D"2")=0A= {=0A= $('#resize-buttons .font-large a').trigger('click');=0A= }=0A= if(fs=3D=3D"3")=0A= {=0A= $('#resize-buttons .font-largest a').trigger('click');=0A= }=0A= } else{=0A= $('#resize-buttons .font-normal a').trigger('click');=0A= }=0A= =0A= }=0A= };=0A= =0A= }(jQuery));=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/language_switcher.js /** * @file * This file controls accessibility functions on the theme layer. * Based on: = http://www.acfonline.org.au/sites/all/themes/acf/js/acf.accessibility.js */ var http_check =3D getHTTPObject(); function getHTTPObject(){=20 //Create a boolean variable to check for a valid Internet Explorer = instance. var xmlhttp =3D false; //Check if we are using IE. try { //If the Javascript version is greater than 5. xmlhttp =3D new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { //If not, then use the older active x object. try { //If we are using Internet Explorer. xmlhttp =3D new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { //Else we must be using a non-IE browser. xmlhttp =3D false; } } //If we are using a non-IE browser, create a javascript instance of the = object. if (!xmlhttp && typeof XMLHttpRequest !=3D 'undefined') { xmlhttp =3D new XMLHttpRequest(); } =20 return xmlhttp; } function check_file(path_of_file,toLang)=20 { var path_of_file2=3Dpath_of_file; if(path_of_file2.indexOf("?")!=3D-1) { var checkQ=3D-1; checkQ=3Dpath_of_file2.indexOf("?"); path_of_file2=3Dpath_of_file2.substring(0,checkQ); } else if(path_of_file2.indexOf("#")!=3D-1) { var checkQ=3D-1; checkQ=3Dpath_of_file2.indexOf("#"); path_of_file2=3Dpath_of_file2.substring(0,checkQ); }=20 =09 //check 400 so slow (config later) //location.href =3D path_of_file2; =09 =09 http_check.open("Get",path_of_file2,true); =09 http_check.onreadystatechange =3D handleHttpResponse_check; =09 http_check.send(null); =09 function handleHttpResponse_check() { if(http_check.readyState =3D=3D 4){ if (http_check.status =3D=3D 200) { location.href =3D path_of_file; }else if (http_check.status =3D=3D 404) { if(toLang=3D=3D"ws_chi"){ = //window.alert("=E9=80=99=E9=A0=81=E6=B2=92=E6=9C=89=E4=B8=AD=E6=96=87=E7= =89=88=E3=80=82"); location.href =3D window.location.protocol+'//'+location.host+ '/' = + 'ws_chi/nothisversion.html'; }else if(toLang=3D=3D"ws_gb"){ = //window.alert("=E8=BF=99=E9=A1=B5=E6=B2=A1=E6=9C=89=E4=B8=AD=E6=96=87=E7= =89=88=E3=80=82"); location.href =3D window.location.protocol+'//'+location.host+ '/' = + 'ws_gb/nothisversion.html' }else if(toLang=3D=3D"ws_en"){ //window.alert("This webpage does not have English version."); location.href =3D window.location.protocol+'//'+location.host+ '/' = + 'ws_en/nothisversion.html' } } } } } function changeVer(lang) { var langKey =3D ["chi", "sc", "eng"]; var langs =3D ["ws_chi", "ws_gb", "ws_en"]; var fromLang =3D ''; var toLang =3D ''; var href =3D location.href; //init current lang (config later) fromLang =3D langs[2]; =09 //for front page if(href=3D=3D(window.location.protocol+'//'+location.host+ '/') ){ href =3D location.href + fromLang; }=09 =09 for(counter =3D 0; counter < langKey.length; counter++){ if(href.search('/'+langs[counter] )!=3D -1){ fromLang =3D langs[counter]; } } for(counter =3D 0; counter < langKey.length; counter++){ if(langKey[counter]=3D=3Dlang){ toLang =3D langs[counter]; } } =09 check_file(href.replace('/'+fromLang , '/'+toLang ),toLang); =09 } (function ($) { =20 /* * @function languageSwitcher * Controls the language switch */=20 Drupal.behaviors.languageSwitcher =3D { attach: function (context, settings) { =20 $('#language-buttons a').click(function() { change2 =3D $(this).attr('class'); lang =3D 'en'; if ( change2=3D=3D 'changeVerEng') { lang =3D 'eng'; lang_pref =3D 'ws_en'; } else if ( change2=3D=3D 'changeVerChi') { lang =3D 'chi'; lang_pref =3D 'ws_chi'; } else { lang =3D 'sc'; lang_pref =3D 'ws_gb'; } if (output_valid_shopping_guide(lang_pref)) { changeVer(lang); } }); =20 //hacking for shopping-guide function valid_types_shopping_guide_views(lang) { return = (settings.kanhan_custom_valid_types_shopping_guide_views[lang]); } =09 function output_valid_shopping_guide(to_lang) { if ( location.href.indexOf('shopping-guide') >0 ) { lang =3D {'ws_en':'en', 'ws_chi':'zh-hant', 'ws_gb':'zh-hans' } href =3D location.href; category =3D href.replace(/.*?type\=3D(.*)?&*.*/g, '$1'); valid_type =3D valid_types_shopping_guide_views(lang[to_lang]); =09 if (to_lang =3D=3D 'ws_en') { href =3D href.replace('/category=3D.*/', ''); } =09 if ( valid_type.indexOf("") =3D=3D-1) { href =3D href.replace(/\/ws_.*?\//, '/'+ to_lang +'/'); if (to_lang =3D=3D 'ws_en') { href =3D href.replace(/\?.*/g, ''); } location.href =3D href; return false; } } return true; } =09 =09 /* $('#language-buttons a').click(function() { if ( location.href.indexOf('/shopping-guide') > 0 ) { var lang_pref =3D []; lang_pref['changeVerEng'] =3D 'ws_en'; lang_pref['changeVerChi'] =3D 'ws_chi'; lang_pref['changeVerSc'] =3D 'ws_gb'; var lang =3D[]; lang['changeVerEng'] =3D 'en'; lang['changeVerChi'] =3D 'zh-hant'; lang['changeVerSc'] =3D 'zh-hans'; =09 to_lang_pref =3D lang_pref[$(this).attr('class')]; to_lang =3D lang[$(this).attr('class')]; category =3D location.href.replace(/.*?type\=3D(.*)?&*.* /g, '$1'); valid_type =3D valid_types_shopping_guide_views(to_lang); if ( valid_type.indexOf("") =3D=3D-1) { href =3D location.href.replace(/\/ws_.*?\//, '/'+to_lang_pref+'/'); if (to_lang =3D=3D 'en') { href =3D href.replace(/\?.* /g, ''); } location.href =3D href; } } }) */ } }; }(jQuery)); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/base.js /**=0A= * @file=0A= * Some basic behaviors and utility functions for Views.=0A= */=0A= (function ($) {=0A= =0A= Drupal.Views =3D {};=0A= =0A= /**=0A= * jQuery UI tabs, Views integration component=0A= */=0A= Drupal.behaviors.viewsTabs =3D {=0A= attach: function (context) {=0A= if ($.viewsUi && $.viewsUi.tabs) {=0A= $('#views-tabset').once('views-processed').viewsTabs({=0A= selectedClass: 'active'=0A= });=0A= }=0A= =0A= = $('a.views-remove-link').once('views-processed').click(function(event) {=0A= var id =3D $(this).attr('id').replace('views-remove-link-', '');=0A= $('#views-row-' + id).hide();=0A= $('#views-removed-' + id).attr('checked', true);=0A= event.preventDefault();=0A= });=0A= /**=0A= * Here is to handle display deletion=0A= * (checking in the hidden checkbox and hiding out the row)=0A= */=0A= $('a.display-remove-link')=0A= .addClass('display-processed')=0A= .click(function() {=0A= var id =3D $(this).attr('id').replace('display-remove-link-', '');=0A= $('#display-row-' + id).hide();=0A= $('#display-removed-' + id).attr('checked', true);=0A= return false;=0A= });=0A= }=0A= };=0A= =0A= /**=0A= * Helper function to parse a querystring.=0A= */=0A= Drupal.Views.parseQueryString =3D function (query) {=0A= var args =3D {};=0A= var pos =3D query.indexOf('?');=0A= if (pos !=3D -1) {=0A= query =3D query.substring(pos + 1);=0A= }=0A= var pairs =3D query.split('&');=0A= for(var i in pairs) {=0A= if (typeof(pairs[i]) =3D=3D 'string') {=0A= var pair =3D pairs[i].split('=3D');=0A= // Ignore the 'q' path argument, if present.=0A= if (pair[0] !=3D 'q' && pair[1]) {=0A= args[decodeURIComponent(pair[0].replace(/\+/g, ' '))] =3D = decodeURIComponent(pair[1].replace(/\+/g, ' '));=0A= }=0A= }=0A= }=0A= return args;=0A= };=0A= =0A= /**=0A= * Helper function to return a view's arguments based on a path.=0A= */=0A= Drupal.Views.parseViewArgs =3D function (href, viewPath) {=0A= var returnObj =3D {};=0A= var path =3D Drupal.Views.getPath(href);=0A= // Ensure we have a correct path.=0A= if (viewPath && path.substring(0, viewPath.length + 1) =3D=3D viewPath = + '/') {=0A= var args =3D decodeURIComponent(path.substring(viewPath.length + 1, = path.length));=0A= returnObj.view_args =3D args;=0A= returnObj.view_path =3D path;=0A= }=0A= return returnObj;=0A= };=0A= =0A= /**=0A= * Strip off the protocol plus domain from an href.=0A= */=0A= Drupal.Views.pathPortion =3D function (href) {=0A= // Remove e.g. http://example.com if present.=0A= var protocol =3D window.location.protocol;=0A= if (href.substring(0, protocol.length) =3D=3D protocol) {=0A= // 2 is the length of the '//' that normally follows the protocol=0A= href =3D href.substring(href.indexOf('/', protocol.length + 2));=0A= }=0A= return href;=0A= };=0A= =0A= /**=0A= * Return the Drupal path portion of an href.=0A= */=0A= Drupal.Views.getPath =3D function (href) {=0A= href =3D Drupal.Views.pathPortion(href);=0A= href =3D href.substring(Drupal.settings.basePath.length, href.length);=0A= // 3 is the length of the '?q=3D' added to the url without clean urls.=0A= if (href.substring(0, 3) =3D=3D '?q=3D') {=0A= href =3D href.substring(3, href.length);=0A= }=0A= var chars =3D ['#', '?', '&'];=0A= for (i in chars) {=0A= if (href.indexOf(chars[i]) > -1) {=0A= href =3D href.substr(0, href.indexOf(chars[i]));=0A= }=0A= }=0A= return href;=0A= };=0A= =0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/_progress.js (function ($) {=0A= =0A= /**=0A= * A progressbar object. Initialized with the given id. Must be inserted = into=0A= * the DOM afterwards through progressBar.element.=0A= *=0A= * method is the function which will perform the HTTP request to get the=0A= * progress bar state. Either "GET" or "POST".=0A= *=0A= * e.g. pb =3D new progressBar('myProgressBar');=0A= * some_element.appendChild(pb.element);=0A= */=0A= Drupal.progressBar =3D function (id, updateCallback, method, = errorCallback) {=0A= var pb =3D this;=0A= this.id =3D id;=0A= this.method =3D method || 'GET';=0A= this.updateCallback =3D updateCallback;=0A= this.errorCallback =3D errorCallback;=0A= =0A= // The WAI-ARIA setting aria-live=3D"polite" will announce changes = after users=0A= // have completed their current activity and not interrupt the screen = reader.=0A= this.element =3D $('<div class=3D"progress-wrapper" = aria-live=3D"polite"></div>');=0A= this.element.html('<div id =3D"' + id + '" class=3D"progress = progress-striped active">' +=0A= '<div class=3D"progress-bar" role=3D"progressbar" = aria-valuemin=3D"0" aria-valuemax=3D"100" aria-valuenow=3D"0">' +=0A= '<div class=3D"percentage sr-only"></div>' +=0A= '</div></div>' +=0A= '</div><div class=3D"percentage pull-right"></div>' +=0A= '<div class=3D"message"> </div>');=0A= };=0A= =0A= /**=0A= * Set the percentage and status message for the progressbar.=0A= */=0A= Drupal.progressBar.prototype.setProgress =3D function (percentage, = message) {=0A= if (percentage >=3D 0 && percentage <=3D 100) {=0A= $('div.progress-bar', this.element).css('width', percentage + '%');=0A= $('div.progress-bar', this.element).attr('aria-valuenow', = percentage);=0A= $('div.percentage', this.element).html(percentage + '%');=0A= }=0A= $('div.message', this.element).html(message);=0A= if (this.updateCallback) {=0A= this.updateCallback(percentage, message, this);=0A= }=0A= };=0A= =0A= /**=0A= * Start monitoring progress via Ajax.=0A= */=0A= Drupal.progressBar.prototype.startMonitoring =3D function (uri, delay) {=0A= this.delay =3D delay;=0A= this.uri =3D uri;=0A= this.sendPing();=0A= };=0A= =0A= /**=0A= * Stop monitoring progress via Ajax.=0A= */=0A= Drupal.progressBar.prototype.stopMonitoring =3D function () {=0A= clearTimeout(this.timer);=0A= // This allows monitoring to be stopped from within the callback.=0A= this.uri =3D null;=0A= };=0A= =0A= /**=0A= * Request progress data from server.=0A= */=0A= Drupal.progressBar.prototype.sendPing =3D function () {=0A= if (this.timer) {=0A= clearTimeout(this.timer);=0A= }=0A= if (this.uri) {=0A= var pb =3D this;=0A= // When doing a post request, you need non-null data. Otherwise a=0A= // HTTP 411 or HTTP 406 (with Apache mod_security) error may result.=0A= $.ajax({=0A= type: this.method,=0A= url: this.uri,=0A= data: '',=0A= dataType: 'json',=0A= success: function (progress) {=0A= // Display errors.=0A= if (progress.status =3D=3D 0) {=0A= pb.displayError(progress.data);=0A= return;=0A= }=0A= // Update display.=0A= pb.setProgress(progress.percentage, progress.message);=0A= // Schedule next timer.=0A= pb.timer =3D setTimeout(function () { pb.sendPing(); }, = pb.delay);=0A= },=0A= error: function (xmlhttp) {=0A= pb.displayError(Drupal.ajaxError(xmlhttp, pb.uri));=0A= }=0A= });=0A= }=0A= };=0A= =0A= /**=0A= * Display errors on the page.=0A= */=0A= Drupal.progressBar.prototype.displayError =3D function (string) {=0A= var error =3D $('<div class=3D"alert alert-block alert-error"><a = class=3D"close" data-dismiss=3D"alert" href=3D"#">×</a><h4>Error = message</h4></div>').append(string);=0A= $(this.element).before(error).hide();=0A= =0A= if (this.errorCallback) {=0A= this.errorCallback(this);=0A= }=0A= };=0A= =0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/ajax_view_002.js /**=0A= * @file=0A= * Handles AJAX fetching of views, including filter submission and = response.=0A= */=0A= (function ($) {=0A= =0A= /**=0A= * Attaches the AJAX behavior to Views exposed filter forms and key View = links.=0A= */=0A= Drupal.behaviors.ViewsAjaxView =3D {};=0A= Drupal.behaviors.ViewsAjaxView.attach =3D function() {=0A= if (Drupal.settings && Drupal.settings.views && = Drupal.settings.views.ajaxViews) {=0A= $.each(Drupal.settings.views.ajaxViews, function(i, settings) {=0A= Drupal.views.instances[i] =3D new Drupal.views.ajaxView(settings);=0A= });=0A= }=0A= };=0A= =0A= Drupal.views =3D {};=0A= Drupal.views.instances =3D {};=0A= =0A= /**=0A= * Javascript object for a certain view.=0A= */=0A= Drupal.views.ajaxView =3D function(settings) {=0A= var selector =3D '.view-dom-id-' + settings.view_dom_id;=0A= this.$view =3D $(selector);=0A= =0A= // Retrieve the path to use for views' ajax.=0A= var ajax_path =3D Drupal.settings.views.ajax_path;=0A= =0A= // If there are multiple views this might've ended up showing up = multiple times.=0A= if (ajax_path.constructor.toString().indexOf("Array") !=3D -1) {=0A= ajax_path =3D ajax_path[0];=0A= }=0A= =0A= // Check if there are any GET parameters to send to views.=0A= var queryString =3D window.location.search || '';=0A= if (queryString !=3D=3D '') {=0A= // Remove the question mark and Drupal path component if any.=0A= var queryString =3D = queryString.slice(1).replace(/q=3D[^&]+&?|&?render=3D[^&]+/, '');=0A= if (queryString !=3D=3D '') {=0A= // If there is a '?' in ajax_path, clean url are on and & should = be used to add parameters.=0A= queryString =3D ((/\?/.test(ajax_path)) ? '&' : '?') + queryString;=0A= }=0A= }=0A= =0A= this.element_settings =3D {=0A= url: ajax_path + queryString,=0A= submit: settings,=0A= setClick: true,=0A= event: 'click',=0A= selector: selector,=0A= progress: { type: 'throbber' }=0A= };=0A= =0A= this.settings =3D settings;=0A= =0A= // Add the ajax to exposed forms.=0A= this.$exposed_form =3D = this.$view.children('.view-filters').children('form');=0A= this.$exposed_form.once(jQuery.proxy(this.attachExposedFormAjax, = this));=0A= =0A= // Add the ajax to pagers.=0A= this.$view=0A= // Don't attach to nested views. Doing so would attach multiple = behaviors=0A= // to a given element.=0A= .filter(jQuery.proxy(this.filterNestedViews, this))=0A= .once(jQuery.proxy(this.attachPagerAjax, this));=0A= =0A= // Add a trigger to update this view specifically. In order to trigger = a=0A= // refresh use the following code.=0A= //=0A= // @code=0A= // jQuery('.view-name').trigger('RefreshView');=0A= // @endcode=0A= // Add a trigger to update this view specifically.=0A= var self_settings =3D this.element_settings;=0A= self_settings.event =3D 'RefreshView';=0A= this.refreshViewAjax =3D new Drupal.ajax(this.selector, this.$view, = self_settings);=0A= };=0A= =0A= Drupal.views.ajaxView.prototype.attachExposedFormAjax =3D function() {=0A= var button =3D $('input[type=3Dsubmit], button[type=3Dsubmit], = input[type=3Dimage]', this.$exposed_form);=0A= button =3D button[0];=0A= =0A= this.exposedFormAjax =3D new Drupal.ajax($(button).attr('id'), button, = this.element_settings);=0A= };=0A= =0A= Drupal.views.ajaxView.prototype.filterNestedViews=3D function() {=0A= // If there is at least one parent with a view class, this view=0A= // is nested (e.g., an attachment). Bail.=0A= return !this.$view.parents('.view').size();=0A= };=0A= =0A= /**=0A= * Attach the ajax behavior to each link.=0A= */=0A= Drupal.views.ajaxView.prototype.attachPagerAjax =3D function() {=0A= this.$view.find('ul.pager > li > a, th.views-field a, .attachment = .views-summary a')=0A= .each(jQuery.proxy(this.attachPagerLinkAjax, this));=0A= };=0A= =0A= /**=0A= * Attach the ajax behavior to a singe link.=0A= */=0A= Drupal.views.ajaxView.prototype.attachPagerLinkAjax =3D function(id, = link) {=0A= var $link =3D $(link);=0A= var viewData =3D {};=0A= var href =3D $link.attr('href');=0A= // Construct an object using the settings defaults and then overriding=0A= // with data specific to the link.=0A= $.extend(=0A= viewData,=0A= this.settings,=0A= Drupal.Views.parseQueryString(href),=0A= // Extract argument data from the URL.=0A= Drupal.Views.parseViewArgs(href, this.settings.view_base_path)=0A= );=0A= =0A= // For anchor tags, these will go to the target of the anchor rather=0A= // than the usual location.=0A= $.extend(viewData, Drupal.Views.parseViewArgs(href, = this.settings.view_base_path));=0A= =0A= this.element_settings.submit =3D viewData;=0A= this.pagerAjax =3D new Drupal.ajax(false, $link, = this.element_settings);=0A= };=0A= =0A= Drupal.ajax.prototype.commands.viewsScrollTop =3D function (ajax, = response, status) {=0A= // Scroll to the top of the view. This will allow users=0A= // to browse newly loaded content after e.g. clicking a pager=0A= // link.=0A= var offset =3D $(response.selector).offset();=0A= // We can't guarantee that the scrollable object should be=0A= // the body, as the view could be embedded in something=0A= // more complex such as a modal popup. Recurse up the DOM=0A= // and scroll the first element that has a non-zero top.=0A= var scrollTarget =3D response.selector;=0A= while ($(scrollTarget).scrollTop() =3D=3D 0 && = $(scrollTarget).parent()) {=0A= scrollTarget =3D $(scrollTarget).parent();=0A= }=0A= // Only scroll upward=0A= if (offset.top - 10 < $(scrollTarget).scrollTop()) {=0A= $(scrollTarget).animate({scrollTop: (offset.top - 10)}, 500);=0A= }=0A= };=0A= =0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/better_exposed_filters.js /**=0A= * @file better_exposed_filters.js=0A= *=0A= * Provides some client-side functionality for the Better Exposed = Filters module=0A= */=0A= (function ($) {=0A= Drupal.behaviors.betterExposedFilters =3D {=0A= attach: function(context) {=0A= // Add highlight class to checked checkboxes for better theming=0A= $('.bef-tree input[type=3Dcheckbox], .bef-checkboxes = input[type=3Dcheckbox]')=0A= // Highlight newly selected checkboxes=0A= .change(function() {=0A= _bef_highlight(this, context);=0A= })=0A= .filter(':checked').closest('.form-item', = context).addClass('highlight')=0A= ;=0A= }=0A= };=0A= =0A= Drupal.behaviors.betterExposedFiltersSelectAllNone =3D {=0A= attach: function(context) {=0A= =0A= /*=0A= * Add Select all/none links to specified checkboxes=0A= */=0A= var selected =3D = $('.form-checkboxes.bef-select-all-none:not(.bef-processed)');=0A= if (selected.length) {=0A= var selAll =3D Drupal.t('Select All');=0A= var selNone =3D Drupal.t('Select None');=0A= =0A= // Set up a prototype link and event handlers=0A= var link =3D $('<a class=3D"bef-toggle" href=3D"#">'+ selAll = +'</a>')=0A= link.click(function(event) {=0A= // Don't actually follow the link...=0A= event.preventDefault();=0A= event.stopPropagation();=0A= =0A= if (selAll =3D=3D $(this).text()) {=0A= // Select all the checkboxes=0A= $(this)=0A= .html(selNone)=0A= .siblings('.bef-checkboxes, .bef-tree')=0A= .find('.form-item input:checkbox').each(function() {=0A= $(this).attr('checked', true);=0A= _bef_highlight(this, context);=0A= })=0A= .end()=0A= =0A= // attr() doesn't trigger a change event, so we do it = ourselves. But just on=0A= // one checkbox otherwise we have many spinning cursors=0A= .find('input[type=3Dcheckbox]:first').change()=0A= ;=0A= }=0A= else {=0A= // Unselect all the checkboxes=0A= $(this)=0A= .html(selAll)=0A= .siblings('.bef-checkboxes, .bef-tree')=0A= .find('.form-item input:checkbox').each(function() {=0A= $(this).attr('checked', false);=0A= _bef_highlight(this, context);=0A= })=0A= .end()=0A= =0A= // attr() doesn't trigger a change event, so we do it = ourselves. But just on=0A= // one checkbox otherwise we have many spinning cursors=0A= .find('input[type=3Dcheckbox]:first').change()=0A= ;=0A= }=0A= });=0A= =0A= // Add link to the page for each set of checkboxes.=0A= selected=0A= .addClass('bef-processed')=0A= .each(function(index) {=0A= // Clone the link prototype and insert into the DOM=0A= var newLink =3D link.clone(true);=0A= =0A= newLink.insertBefore($('.bef-checkboxes, .bef-tree', this));=0A= =0A= // If all checkboxes are already checked by default then = switch to Select None=0A= if ($('input:checkbox:checked', this).length =3D=3D = $('input:checkbox', this).length) {=0A= newLink.click();=0A= }=0A= })=0A= ;=0A= }=0A= =0A= // Check for and initialize datepickers=0A= var befSettings =3D Drupal.settings.better_exposed_filters;=0A= if (befSettings && befSettings.datepicker && = befSettings.datepicker_options && $.fn.datepicker) {=0A= var opt =3D befSettings.datepicker_options.dateformat ? = {dateFormat: befSettings.datepicker_options.dateformat} : {};=0A= $('.bef-datepicker').datepicker(opt);=0A= }=0A= =0A= } // attach: function() {=0A= }; // Drupal.behaviors.better_exposed_filters =3D {=0A= =0A= Drupal.behaviors.betterExposedFiltersAllNoneNested =3D {=0A= attach:function (context, settings) {=0A= $('.form-checkboxes.bef-select-all-none-nested = li').has('ul').once('bef-all-none-nested', function () {=0A= $(this)=0A= // To respect term depth, check/uncheck child term checkboxes.=0A= .find('input.form-checkboxes:first')=0A= .click(function() {=0A= $(this).parents('li:first').find('ul = input.form-checkboxes').attr('checked', $(this).attr('checked'));=0A= })=0A= .end()=0A= // When a child term is checked or unchecked, set the parent = term's=0A= // status.=0A= .find('ul input.form-checkboxes')=0A= .click(function() {=0A= var checked =3D $(this).attr('checked');=0A= // Determine the number of unchecked sibling checkboxes.=0A= var ct =3D = $(this).parents('ul:first').find('input.form-checkboxes:not(:checked)').s= ize();=0A= // If the child term is unchecked, uncheck the parent.=0A= // If all sibling terms are checked, check the parent.=0A= if (!checked || !ct) {=0A= = $(this).parents('li:first').parents('li:first').find('input.form-checkbox= es:first').attr('checked', checked);=0A= }=0A= });=0A= });=0A= }=0A= }=0A= =0A= Drupal.behaviors.better_exposed_filters_slider =3D {=0A= attach: function(context, settings) {=0A= var befSettings =3D settings.better_exposed_filters;=0A= if (befSettings && befSettings.slider && = befSettings.slider_options) {=0A= $.each(befSettings.slider_options, function(i, sliderOptions) {=0A= // Only make one slider per filter.=0A= $("#" + sliderOptions.viewId + " #edit-" + sliderOptions.id + = "-wrapper").once('slider-filter', function() {=0A= var $input =3D $(this).find('input[type=3Dtext]');=0A= =0A= // This is a "between" or "not between" filter with two = values.=0A= if ($input.length =3D=3D 2) {=0A= var $min =3D $input.parent().find('input#edit-' + = sliderOptions.id + '-min'),=0A= $max =3D $input.parent().find('input#edit-' + = sliderOptions.id + '-max'),=0A= default_min,=0A= default_max;=0A= =0A= if (!$min.length || !$max.length) {=0A= return;=0A= }=0A= =0A= // Get the default values.=0A= // We use slider min & max if there are no defaults.=0A= default_min =3D parseFloat(($min.val() =3D=3D '') ? = sliderOptions.min : $min.val(), 10);=0A= default_max =3D parseFloat(($max.val() =3D=3D '') ? = sliderOptions.max : $max.val(), 10);=0A= // Set the element value in case we are using the slider = min & max.=0A= $min.val(default_min);=0A= $max.val(default_max);=0A= =0A= $min.parents('div.views-widget').after(=0A= $('<div class=3D"bef-slider"></div>').slider({=0A= range: true,=0A= min: parseFloat(sliderOptions.min, 10),=0A= max: parseFloat(sliderOptions.max, 10),=0A= step: parseFloat(sliderOptions.step, 10),=0A= animate: sliderOptions.animate ? sliderOptions.animate = : false,=0A= orientation: sliderOptions.orientation,=0A= values: [default_min, default_max],=0A= // Update the textfields as the sliders are moved=0A= slide: function (event, ui) {=0A= $min.val(ui.values[0]);=0A= $max.val(ui.values[1]);=0A= },=0A= // This fires when the value is set programmatically = or the=0A= // stop event fires.=0A= // This takes care of the case that a user enters a = value=0A= // into the text field that is not a valid step of the = slider.=0A= // In that case the slider will go to the nearest step = and=0A= // this change event will update the text area.=0A= change: function (event, ui) {=0A= $min.val(ui.values[0]);=0A= $max.val(ui.values[1]);=0A= },=0A= // Attach stop listeners.=0A= stop: function(event, ui) {=0A= // Click the auto submit button.=0A= = $(this).parents('form').find('.ctools-auto-submit-click').click();=0A= }=0A= })=0A= );=0A= =0A= // Update the slider when the fields are updated.=0A= $min.blur(function() {=0A= befUpdateSlider($(this), 0, sliderOptions);=0A= });=0A= $max.blur(function() {=0A= befUpdateSlider($(this), 1, sliderOptions);=0A= });=0A= }=0A= // This is single value filter.=0A= else if ($input.length =3D=3D 1) {=0A= if ($input.attr('id') !=3D 'edit-' + sliderOptions.id) {=0A= return;=0A= }=0A= =0A= // Get the default value. We use slider min if there is no = default.=0A= var default_value =3D parseFloat(($input.val() =3D=3D '') = ? sliderOptions.min : $input.val(), 10);=0A= // Set the element value in case we are using the slider = min.=0A= $input.val(default_value);=0A= =0A= $input.parents('div.views-widget').after(=0A= $('<div class=3D"bef-slider"></div>').slider({=0A= min: parseFloat(sliderOptions.min, 10),=0A= max: parseFloat(sliderOptions.max, 10),=0A= step: parseFloat(sliderOptions.step, 10),=0A= animate: sliderOptions.animate ? sliderOptions.animate = : false,=0A= orientation: sliderOptions.orientation,=0A= value: default_value,=0A= // Update the textfields as the sliders are moved.=0A= slide: function (event, ui) {=0A= $input.val(ui.value);=0A= },=0A= // This fires when the value is set programmatically = or the=0A= // stop event fires.=0A= // This takes care of the case that a user enters a = value=0A= // into the text field that is not a valid step of the = slider.=0A= // In that case the slider will go to the nearest step = and=0A= // this change event will update the text area.=0A= change: function (event, ui) {=0A= $input.val(ui.value);=0A= },=0A= // Attach stop listeners.=0A= stop: function(event, ui) {=0A= // Click the auto submit button.=0A= = $(this).parents('form').find('.ctools-auto-submit-click').click();=0A= }=0A= })=0A= );=0A= =0A= // Update the slider when the field is updated.=0A= $input.blur(function() {=0A= befUpdateSlider($(this), null, sliderOptions);=0A= });=0A= }=0A= else {=0A= return;=0A= }=0A= })=0A= });=0A= }=0A= }=0A= };=0A= =0A= // This is only needed to provide ajax functionality=0A= Drupal.behaviors.better_exposed_filters_select_as_links =3D {=0A= attach: function(context, settings) {=0A= =0A= $('.bef-select-as-links', context).once(function() {=0A= var $element =3D $(this);=0A= =0A= // Check if ajax submission is enabled. If it's not enabled then = we=0A= // don't need to attach our custom submission handling, because = the=0A= // links are already properly built.=0A= =0A= // First check if any ajax views are contained in the current = page.=0A= if (typeof settings.views =3D=3D 'undefined' || typeof = settings.views.ajaxViews =3D=3D 'undefined') {=0A= return;=0A= }=0A= =0A= // Now check that the view for which the current filter block is = used,=0A= // is part of the configured ajax views.=0A= var $uses_ajax =3D false;=0A= $.each(settings.views.ajaxViews, function(i, item) {=0A= var $view_name =3D item.view_name.replace(/_/g, '-');=0A= var $view_display_id =3D item.view_display_id.replace(/_/g, = '-');=0A= var $id =3D 'views-exposed-form-' + $view_name + '-' + = $view_display_id;=0A= var $form_id =3D $element.parents('form').attr('id');=0A= if ($form_id =3D=3D $id) {=0A= $uses_ajax =3D true;=0A= return;=0A= }=0A= });=0A= =0A= // If no ajax is used for form submission, we quit here.=0A= if (!$uses_ajax) {=0A= return;=0A= }=0A= =0A= // Attach selection toggle and form submit on click to each link.=0A= $(this).find('a').click(function(event) {=0A= var $wrapper =3D $(this).parents('.bef-select-as-links');=0A= var $options =3D $wrapper.find('select option');=0A= // We have to prevent the page load triggered by the links.=0A= event.preventDefault();=0A= event.stopPropagation();=0A= // Un select old select value.=0A= $wrapper.find('select option').removeAttr('selected');=0A= =0A= // Set the corresponding option inside the select element as = selected.=0A= var link_text =3D $(this).text();=0A= $selected =3D $options.filter(function() {=0A= return $(this).text() =3D=3D link_text;=0A= });=0A= $selected.attr('selected', 'selected');=0A= $wrapper.find('.bef-new-value').val($selected.val());=0A= $wrapper.find('a').removeClass('active');=0A= $(this).addClass('active');=0A= // Submit the form.=0A= $wrapper.parents('form').find('.views-submit-button = *[type=3Dsubmit]').click();=0A= });=0A= });=0A= }=0A= };=0A= =0A= Drupal.behaviors.betterExposedFiltersRequiredFilter =3D {=0A= attach: function(context, settings) {=0A= // Required checkboxes should re-check all inputs if a user = un-checks=0A= // them all.=0A= $('.bef-select-as-checkboxes', = context).once('bef-required-filter').ajaxComplete(function (e, xhr, s) {=0A= var $element =3D $(this);=0A= =0A= if (typeof settings.views =3D=3D 'undefined' || typeof = settings.views.ajaxViews =3D=3D 'undefined') {=0A= return;=0A= }=0A= =0A= // Now check that the view for which the current filter block is = used,=0A= // is part of the configured ajax views.=0A= var $view_name;=0A= var $view_display_id;=0A= var $uses_ajax =3D false;=0A= $.each(settings.views.ajaxViews, function(i, item) {=0A= $view_name =3D item.view_name;=0A= $view_display_id =3D item.view_display_id;=0A= var $id =3D 'views-exposed-form-' + $view_name.replace(/_/g, = '-') + '-' + $view_display_id.replace(/_/g, '-');=0A= var $form_id =3D $element.parents('form').attr('id');=0A= if ($form_id =3D=3D $id) {=0A= $uses_ajax =3D true;=0A= return;=0A= }=0A= });=0A= =0A= var $filter_name =3D $('input', this).attr('name').slice(0, -2);=0A= if = (Drupal.settings.better_exposed_filters.views[$view_name].displays[$view_= display_id].filters[$filter_name].required && $('input:checked', = this).length =3D=3D 0) {=0A= $('input', this).prop('checked', true);=0A= }=0A= });=0A= }=0A= }=0A= =0A= /*=0A= * Helper functions=0A= */=0A= =0A= /**=0A= * Adds/Removes the highlight class from the form-item div as = appropriate=0A= */=0A= function _bef_highlight(elem, context) {=0A= $elem =3D $(elem, context);=0A= $elem.attr('checked')=0A= ? $elem.closest('.form-item', context).addClass('highlight')=0A= : $elem.closest('.form-item', context).removeClass('highlight');=0A= }=0A= =0A= /**=0A= * Update a slider when a related input element is changed.=0A= *=0A= * We don't need to check whether the new value is valid based on = slider min,=0A= * max, and step because the slider will do that automatically and = then we=0A= * update the textfield on the slider's change event.=0A= *=0A= * We still have to make sure that the min & max values of a range = slider=0A= * don't pass each other though, however once this jQuery UI bug is = fixed we=0A= * won't have to. - http://bugs.jqueryui.com/ticket/3762=0A= *=0A= * @param $el=0A= * A jQuery object of the updated element.=0A= * @param valIndex=0A= * The index of the value for a range slider or null for a non-range = slider.=0A= * @param sliderOptions=0A= * The options for the current slider.=0A= */=0A= function befUpdateSlider($el, valIndex, sliderOptions) {=0A= var val =3D parseFloat($el.val(), 10),=0A= currentMin =3D = $el.parents('div.views-widget').next('.bef-slider').slider('values', 0),=0A= currentMax =3D = $el.parents('div.views-widget').next('.bef-slider').slider('values', 1);=0A= // If we have a range slider.=0A= if (valIndex !=3D null) {=0A= // Make sure the min is not more than the current max value.=0A= if (valIndex =3D=3D 0 && val > currentMax) {=0A= val =3D currentMax;=0A= }=0A= // Make sure the max is not more than the current max value.=0A= if (valIndex =3D=3D 1 && val < currentMin) {=0A= val =3D currentMin;=0A= }=0A= // If the number is invalid, go back to the last value.=0A= if (isNaN(val)) {=0A= val =3D = $el.parents('div.views-widget').next('.bef-slider').slider('values', = valIndex);=0A= }=0A= }=0A= else {=0A= // If the number is invalid, go back to the last value.=0A= if (isNaN(val)) {=0A= val =3D = $el.parents('div.views-widget').next('.bef-slider').slider('value');=0A= }=0A= }=0A= // Make sure we are a number again.=0A= val =3D parseFloat(val, 10);=0A= // Set the slider to the new value.=0A= // The slider's change event will then update the textfield again so = that=0A= // they both have the same value.=0A= if (valIndex !=3D null) {=0A= = $el.parents('div.views-widget').next('.bef-slider').slider('values', = valIndex, val);=0A= }=0A= else {=0A= = $el.parents('div.views-widget').next('.bef-slider').slider('value', val);=0A= }=0A= }=0A= =0A= }) (jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/auto-submit.js (function($){=0A= /**=0A= * To make a form auto submit, all you have to do is 3 things:=0A= *=0A= * ctools_add_js('auto-submit');=0A= *=0A= * On gadgets you want to auto-submit when changed, add the = ctools-auto-submit=0A= * class. With FAPI, add:=0A= * @code=0A= * '#attributes' =3D> array('class' =3D> array('ctools-auto-submit')),=0A= * @endcode=0A= *=0A= * If you want to have auto-submit for every form element,=0A= * add the ctools-auto-submit-full-form to the form. With FAPI, add:=0A= * @code=0A= * '#attributes' =3D> array('class' =3D> = array('ctools-auto-submit-full-form')),=0A= * @endcode=0A= *=0A= * If you want to exclude a field from the ctool-auto-submit-full-form = auto submission,=0A= * add the class ctools-auto-submit-exclude to the form element. With = FAPI, add:=0A= * @code=0A= * '#attributes' =3D> array('class' =3D> = array('ctools-auto-submit-exclude')),=0A= * @endcode=0A= *=0A= * Finally, you have to identify which button you want clicked for = autosubmit.=0A= * The behavior of this button will be honored if it's ajaxy or not:=0A= * @code=0A= * '#attributes' =3D> array('class' =3D> array('ctools-use-ajax', = 'ctools-auto-submit-click')),=0A= * @endcode=0A= *=0A= * Currently only 'select', 'radio', 'checkbox' and 'textfield' types = are supported. We probably=0A= * could use additional support for HTML5 input types.=0A= */=0A= =0A= Drupal.behaviors.CToolsAutoSubmit =3D {=0A= attach: function(context) {=0A= // 'this' references the form element=0A= function triggerSubmit (e) {=0A= var $this =3D $(this);=0A= if (!$this.hasClass('ctools-ajaxing')) {=0A= $this.find('.ctools-auto-submit-click').click();=0A= }=0A= }=0A= =0A= // the change event bubbles so we only need to bind it to the outer = form=0A= $('form.ctools-auto-submit-full-form', context)=0A= .add('.ctools-auto-submit', context)=0A= .filter('form, select, input:not(:text, :submit)')=0A= .once('ctools-auto-submit')=0A= .change(function (e) {=0A= // don't trigger on text change for full-form=0A= if ($(e.target).is(':not(:text, :submit, = .ctools-auto-submit-exclude)')) {=0A= triggerSubmit.call(e.target.form);=0A= }=0A= });=0A= =0A= // e.keyCode: key=0A= var discardKeyCode =3D [=0A= 16, // shift=0A= 17, // ctrl=0A= 18, // alt=0A= 20, // caps lock=0A= 33, // page up=0A= 34, // page down=0A= 35, // end=0A= 36, // home=0A= 37, // left arrow=0A= 38, // up arrow=0A= 39, // right arrow=0A= 40, // down arrow=0A= 9, // tab=0A= 13, // enter=0A= 27 // esc=0A= ];=0A= // Don't wait for change event on textfields=0A= $('.ctools-auto-submit-full-form input:text, = input:text.ctools-auto-submit', context)=0A= .filter(':not(.ctools-auto-submit-exclude)')=0A= .once('ctools-auto-submit', function () {=0A= // each textinput element has his own timeout=0A= var timeoutID =3D 0;=0A= $(this)=0A= .bind('keydown keyup', function (e) {=0A= if ($.inArray(e.keyCode, discardKeyCode) =3D=3D=3D -1) {=0A= timeoutID && clearTimeout(timeoutID);=0A= }=0A= })=0A= .keyup(function(e) {=0A= if ($.inArray(e.keyCode, discardKeyCode) =3D=3D=3D -1) {=0A= timeoutID =3D setTimeout($.proxy(triggerSubmit, = this.form), 500);=0A= }=0A= })=0A= .bind('change', function (e) {=0A= if ($.inArray(e.keyCode, discardKeyCode) =3D=3D=3D -1) {=0A= timeoutID =3D setTimeout($.proxy(triggerSubmit, = this.form), 500);=0A= }=0A= });=0A= });=0A= }=0A= }=0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/views_load_more.js /**=0A= * @file views_load_more.js=0A= *=0A= * Handles the AJAX pager for the view_load_more plugin.=0A= */=0A= (function ($) {=0A= =0A= /**=0A= * Provide a series of commands that the server can request the client = perform.=0A= */=0A= Drupal.ajax.prototype.commands.viewsLoadMoreAppend =3D function (ajax, = response, status) {=0A= // Get information from the response. If it is not there, default to=0A= // our presets.=0A= var wrapper =3D response.selector ? $(response.selector) : = $(ajax.wrapper);=0A= var method =3D response.method || ajax.method;=0A= var targetList =3D response.targetList || '';=0A= var effect =3D ajax.getEffect(response);=0A= var pager_selector =3D response.options.pager_selector ? = response.options.pager_selector : '.pager-load-more';=0A= =0A= // We don't know what response.data contains: it might be a string = of text=0A= // without HTML, so don't rely on jQuery correctly iterpreting=0A= // $(response.data) as new HTML rather than a CSS selector. Also, if=0A= // response.data contains top-level text nodes, they get lost with = either=0A= // $(response.data) or $('<div></div>').replaceWith(response.data).=0A= var new_content_wrapped =3D $('<div></div>').html(response.data);=0A= var new_content =3D new_content_wrapped.contents();=0A= =0A= // For legacy reasons, the effects processing code assumes that = new_content=0A= // consists of a single top-level element. Also, it has not been=0A= // sufficiently tested whether attachBehaviors() can be successfully = called=0A= // with a context object that includes top-level text nodes. = However, to=0A= // give developers full control of the HTML appearing in the page, = and to=0A= // enable Ajax content to be inserted in places where DIV elements = are not=0A= // allowed (e.g., within TABLE, TR, and SPAN parents), we check if = the new=0A= // content satisfies the requirement of a single top-level element, = and=0A= // only use the container DIV created above when it doesn't. For more=0A= // information, please see http://drupal.org/node/736066.=0A= if (new_content.length !=3D 1 || new_content.get(0).nodeType !=3D 1) = {=0A= new_content =3D new_content_wrapped;=0A= }=0A= // If removing content from the wrapper, detach behaviors first.=0A= var settings =3D response.settings || ajax.settings || = Drupal.settings;=0A= Drupal.detachBehaviors(wrapper, settings);=0A= if ($.waypoints !=3D undefined) {=0A= $.waypoints('refresh');=0A= }=0A= =0A= // Set up our default query options. This is for advance users that = might=0A= // change there views layout classes. This allows them to write = there own=0A= // jquery selector to replace the content with.=0A= // Provide sensible defaults for unordered list, ordered list and = table=0A= // view styles.=0A= var content_query =3D targetList && !response.options.content ? '> = .view-content ' + targetList : response.options.content || '> = .view-content';=0A= =0A= // If we're using any effects. Hide the new content before adding it = to the DOM.=0A= if (effect.showEffect !=3D 'show') {=0A= new_content.find(content_query).children().hide();=0A= }=0A= =0A= // Update the pager=0A= // Find both for the wrapper as the newly loaded content the direct = child=0A= // .item-list in case of nested pagers=0A= = wrapper.find(pager_selector).replaceWith(new_content.find(pager_selector)= );=0A= =0A= // Add the new content to the page.=0A= = wrapper.find(content_query)[method](new_content.find(content_query).child= ren());=0A= =0A= // Re-class the loaded content.=0A= // @todo this is faulty in many ways. first of which is that user = may have configured view to not have these classes at all.=0A= wrapper.find(content_query).children()=0A= .removeClass('views-row-first views-row-last views-row-odd = views-row-even')=0A= .filter(':first')=0A= .addClass('views-row-first')=0A= .end()=0A= .filter(':last')=0A= .addClass('views-row-last')=0A= .end()=0A= .filter(':even')=0A= .addClass('views-row-odd')=0A= .end()=0A= .filter(':odd')=0A= .addClass('views-row-even')=0A= .end();=0A= =0A= if (effect.showEffect !=3D 'show') {=0A= = wrapper.find(content_query).children(':not(:visible)')[effect.showEffect]= (effect.showSpeed);=0A= }=0A= =0A= // Additional processing over new content=0A= wrapper.trigger('views_load_more.new_content', new_content.clone());=0A= =0A= // Attach all JavaScript behaviors to the new content=0A= // Remove the Jquery once Class, TODO: There needs to be a better=0A= // way of doing this, look at .removeOnce() :-/=0A= var classes =3D wrapper.attr('class');=0A= var onceClass =3D classes.match(/jquery-once-[0-9]*-[a-z]*/);=0A= wrapper.removeClass(onceClass[0]);=0A= settings =3D response.settings || ajax.settings || Drupal.settings;=0A= Drupal.attachBehaviors(wrapper, settings);=0A= };=0A= =0A= /**=0A= * Attaches the AJAX behavior to Views Load More waypoint support.=0A= */=0A= Drupal.behaviors.ViewsLoadMore =3D {=0A= attach: function (context, settings) {=0A= var default_opts =3D {=0A= offset: '100%'=0A= };=0A= =0A= if (settings && settings.viewsLoadMore && settings.views && = settings.views.ajaxViews) {=0A= $.each(settings.viewsLoadMore, function(i, setting) {=0A= var view =3D '.view-id-' + setting.view_name + = '.view-display-id-' + setting.view_display_id + ' .pager-next a',=0A= opts =3D {};=0A= =0A= $.extend(opts, default_opts, settings.viewsLoadMore[i].opts);=0A= =0A= $(view).waypoint('destroy');=0A= $(view).waypoint(function(event, direction) {=0A= $(view).click();=0A= }, opts);=0A= });=0A= }=0A= },=0A= detach: function (context, settings, trigger) {=0A= if (settings && settings.viewsLoadMore && settings.views && = settings.views.ajaxViews) {=0A= $.each(settings.viewsLoadMore, function(i, setting) {=0A= var view =3D '.view-id-' + setting.view_name + = '.view-display-id-' + setting.view_display_id;=0A= if ($(context).is(view)) {=0A= $('.pager-next a', view).waypoint('destroy');=0A= }=0A= else {=0A= $(view, context).waypoint('destroy');=0A= }=0A= });=0A= }=0A= }=0A= };=0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_011.js /**=0A= * hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+=0A= * <http://cherne.net/brian/resources/jquery.hoverIntent.html>=0A= * =0A= * @param f onMouseOver function || An object with configuration options=0A= * @param g onMouseOut function || Nothing (use configuration options = object)=0A= * @author Brian Cherne brian(at)cherne(dot)net=0A= */=0A= (function($){$.fn.hoverIntent=3Dfunction(f,g){var = cfg=3D{sensitivity:7,interval:100,timeout:0};cfg=3D$.extend(cfg,g?{over:f= ,out:g}:f);var cX,cY,pX,pY;var = track=3Dfunction(ev){cX=3Dev.pageX;cY=3Dev.pageY};var = compare=3Dfunction(ev,ob){ob.hoverIntent_t=3DclearTimeout(ob.hoverIntent_= t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mo= usemove",track);ob.hoverIntent_s=3D1;return = cfg.over.apply(ob,[ev])}else{pX=3DcX;pY=3DcY;ob.hoverIntent_t=3DsetTimeou= t(function(){compare(ev,ob)},cfg.interval)}};var = delay=3Dfunction(ev,ob){ob.hoverIntent_t=3DclearTimeout(ob.hoverIntent_t)= ;ob.hoverIntent_s=3D0;return cfg.out.apply(ob,[ev])};var = handleHover=3Dfunction(e){var ev=3DjQuery.extend({},e);var = ob=3Dthis;if(ob.hoverIntent_t){ob.hoverIntent_t=3DclearTimeout(ob.hoverIn= tent_t)}if(e.type=3D=3D"mouseenter"){pX=3Dev.pageX;pY=3Dev.pageY;$(ob).bi= nd("mousemove",track);if(ob.hoverIntent_s!=3D1){ob.hoverIntent_t=3DsetTim= eout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).unbind("mousemo= ve",track);if(ob.hoverIntent_s=3D=3D1){ob.hoverIntent_t=3DsetTimeout(func= tion(){delay(ev,ob)},cfg.timeout)}}};return = this.bind('mouseenter',handleHover).bind('mouseleave',handleHover)}})(jQu= ery); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/sfsmallscreen.js /*=0A= * sf-Smallscreen v1.2b - Provides small-screen compatibility for the = jQuery Superfish plugin.=0A= *=0A= * Developer's note:=0A= * Built as a part of the Superfish project for Drupal = (http://drupal.org/project/superfish)=0A= * Found any bug? have any cool ideas? contact me right away! = http://drupal.org/user/619294/contact=0A= *=0A= * jQuery version: 1.3.x or higher.=0A= *=0A= * Dual licensed under the MIT and GPL licenses:=0A= * http://www.opensource.org/licenses/mit-license.php=0A= * http://www.gnu.org/licenses/gpl.html=0A= */=0A= =0A= (function($){=0A= $.fn.sfsmallscreen =3D function(options){=0A= options =3D $.extend({=0A= mode: 'inactive',=0A= type: 'accordion',=0A= breakpoint: 768,=0A= breakpointUnit: 'px',=0A= useragent: '',=0A= title: '',=0A= addSelected: false,=0A= menuClasses: false,=0A= hyperlinkClasses: false,=0A= excludeClass_menu: '',=0A= excludeClass_hyperlink: '',=0A= includeClass_menu: '',=0A= includeClass_hyperlink: '',=0A= accordionButton: 1,=0A= expandText: 'Expand',=0A= collapseText: 'Collapse'=0A= }, options);=0A= =0A= // We need to clean up the menu from anything unnecessary.=0A= function refine(menu){=0A= var=0A= refined =3D menu.clone(),=0A= // Things that should not be in the small-screen menus.=0A= rm =3D refined.find('span.sf-sub-indicator, span.sf-description'),=0A= // This is a helper class for those who need to add extra markup = that shouldn't exist=0A= // in the small-screen versions.=0A= rh =3D refined.find('.sf-smallscreen-remove'),=0A= // Mega-menus has to be removed too.=0A= mm =3D refined.find('ul.sf-megamenu');=0A= for (var a =3D 0; a < rh.length; a++){=0A= rh.eq(a).replaceWith(rh.eq(a).html());=0A= }=0A= for (var b =3D 0; b < rm.length; b++){=0A= rm.eq(b).remove();=0A= }=0A= if (mm.length > 0){=0A= mm.removeClass('sf-megamenu');=0A= var ol =3D refined.find('div.sf-megamenu-column > ol');=0A= for (var o =3D 0; o < ol.length; o++){=0A= ol.eq(o).replaceWith('<ul>' + ol.eq(o).html() + '</ul>');=0A= }=0A= var elements =3D ['div.sf-megamenu-column','.sf-megamenu-wrapper = > ol','li.sf-megamenu-wrapper'];=0A= for (var i =3D 0; i < elements.length; i++){=0A= obj =3D refined.find(elements[i]);=0A= for (var t =3D 0; t < obj.length; t++){=0A= obj.eq(t).replaceWith(obj.eq(t).html());=0A= }=0A= }=0A= = refined.find('.sf-megamenu-column').removeClass('sf-megamenu-column');=0A= }=0A= refined.add(refined.find('*')).css({width:''});=0A= return refined;=0A= }=0A= =0A= // Creating <option> elements out of the menu.=0A= function toSelect(menu, level){=0A= var=0A= items =3D '',=0A= childLI =3D $(menu).children('li');=0A= for (var a =3D 0; a < childLI.length; a++){=0A= var list =3D childLI.eq(a), parent =3D list.children('a, span');=0A= for (var b =3D 0; b < parent.length; b++){=0A= var=0A= item =3D parent.eq(b),=0A= path =3D item.is('a') ? item.attr('href') : '',=0A= // Class names modification.=0A= itemClone =3D item.clone(),=0A= classes =3D (options.hyperlinkClasses) ? = ((options.excludeClass_hyperlink && = itemClone.hasClass(options.excludeClass_hyperlink)) ? = itemClone.removeClass(options.excludeClass_hyperlink).attr('class') : = itemClone.attr('class')) : '',=0A= classes =3D (options.includeClass_hyperlink && = !itemClone.hasClass(options.includeClass_hyperlink)) ? = ((options.hyperlinkClasses) ? = itemClone.addClass(options.includeClass_hyperlink).attr('class') : = options.includeClass_hyperlink) : classes;=0A= // Retaining the active class if requested.=0A= if (options.addSelected && item.hasClass('active')){=0A= classes +=3D ' active';=0A= }=0A= // <option> has to be disabled if the item is not a link.=0A= disable =3D item.is('span') ? ' disabled=3D"disabled"' : '',=0A= // Crystal clear.=0A= subIndicator =3D 1 < level ? Array(level).join('-') + ' ' : '';=0A= // Preparing the <option> element.=0A= items +=3D '<option value=3D"' + path + '" class=3D"' + = classes + '"' + disable + '>' + subIndicator + $.trim(item.text()) = +'</option>',=0A= childUL =3D list.find('> ul');=0A= // Using the function for the sub-menu of this item.=0A= for (var u =3D 0; u < childUL.length; u++){=0A= items +=3D toSelect(childUL.eq(u), level + 1);=0A= }=0A= }=0A= }=0A= return items;=0A= }=0A= =0A= // Create the new version, hide the original.=0A= function convert(menu){=0A= var menuID =3D menu.attr('id'),=0A= // Creating a refined version of the menu.=0A= refinedMenu =3D refine(menu);=0A= // Currently the plugin provides two reactions to small screens.=0A= // Converting the menu to a <select> element, and converting to an = accordion version of the menu.=0A= if (options.type =3D=3D 'accordion'){=0A= var=0A= toggleID =3D menuID + '-toggle',=0A= accordionID =3D menuID + '-accordion';=0A= // Making sure the accordion does not exist.=0A= if ($('#' + accordionID).length =3D=3D 0){=0A= var=0A= // Getting the style class.=0A= styleClass =3D menu.attr('class').split(' = ').filter(function(item){=0A= return item.indexOf('sf-style-') > -1 ? item : '';=0A= }),=0A= // Creating the accordion.=0A= accordion =3D $(refinedMenu).attr('id', accordionID);=0A= // Removing unnecessary classes.=0A= accordion.removeClass('sf-horizontal sf-vertical sf-navbar = sf-shadow sf-js-enabled');=0A= // Adding necessary classes.=0A= accordion.addClass('sf-accordion sf-hidden');=0A= // Removing style attributes and any unnecessary class.=0A= = accordion.children('li').removeAttr('style').removeClass('sfHover');=0A= // Doing the same and making sure all the sub-menus are = off-screen (hidden).=0A= = accordion.find('ul').removeAttr('style').not('.sf-hidden').addClass('sf-h= idden');=0A= // Creating the accordion toggle switch.=0A= var toggle =3D '<div class=3D"sf-accordion-toggle ' + = styleClass + '"><a href=3D"#" id=3D"' + toggleID + '"><span>' + = options.title + '</span></a></div>';=0A= =0A= // Adding Expand\Collapse buttons if requested.=0A= if (options.accordionButton =3D=3D 2){=0A= var parent =3D accordion.find('li.menuparent');=0A= for (var i =3D 0; i < parent.length; i++){=0A= parent.eq(i).prepend('<a href=3D"#" = class=3D"sf-accordion-button">' + options.expandText + '</a>');=0A= }=0A= }=0A= // Inserting the according and hiding the original menu.=0A= menu.before(toggle).before(accordion).hide();=0A= =0A= var=0A= accordionElement =3D $('#' + accordionID),=0A= // Deciding what should be used as accordion buttons.=0A= buttonElement =3D (options.accordionButton < 2) ? = 'a.menuparent,span.nolink.menuparent' : 'a.sf-accordion-button',=0A= button =3D accordionElement.find(buttonElement);=0A= =0A= // Attaching a click event to the toggle switch.=0A= $('#' + toggleID).bind('click', function(e){=0A= // Preventing the click.=0A= e.preventDefault();=0A= // Adding the sf-expanded class.=0A= $(this).toggleClass('sf-expanded');=0A= =0A= if (accordionElement.hasClass('sf-expanded')){=0A= // If the accordion is already expanded:=0A= // Hiding its expanded sub-menus and then the accordion = itself as well.=0A= = accordionElement.add(accordionElement.find('li.sf-expanded')).removeClass= ('sf-expanded')=0A= .end().find('ul').hide()=0A= // This is a bit tricky, it's the same trick that has been = in use in the main plugin for sometime.=0A= // Basically we'll add a class that keeps the sub-menu = off-screen and still visible,=0A= // and make it invisible and removing the class one moment = before showing or hiding it.=0A= // This helps screen reader software access all the menu = items.=0A= .end().hide().addClass('sf-hidden').show();=0A= // Changing the caption of any existing accordion buttons = to 'Expand'.=0A= if (options.accordionButton =3D=3D 2){=0A= = accordionElement.find('a.sf-accordion-button').text(options.expandText);=0A= }=0A= }=0A= else {=0A= // But if it's collapsed,=0A= = accordionElement.addClass('sf-expanded').hide().removeClass('sf-hidden').= show();=0A= }=0A= });=0A= =0A= // Attaching a click event to the buttons.=0A= button.bind('click', function(e){=0A= // Making sure the buttons does not exist already.=0A= if ($(this).closest('li').children('ul').length > 0){=0A= e.preventDefault();=0A= // Selecting the parent menu items.=0A= var parent =3D $(this).closest('li');=0A= // Creating and inserting Expand\Collapse buttons to the = parent menu items,=0A= // of course only if not already happened.=0A= if (options.accordionButton =3D=3D 1 && = parent.children('a.menuparent,span.nolink.menuparent').length > 0 && = parent.children('ul').children('li.sf-clone-parent').length =3D=3D 0){=0A= var=0A= // Cloning the hyperlink of the parent menu item.=0A= cloneLink =3D = parent.children('a.menuparent,span.nolink.menuparent').clone(),=0A= // Wrapping the hyerplinks in <li>.=0A= cloneLink =3D $('<li class=3D"sf-clone-parent" = />').html(cloneLink);=0A= // Adding a helper class and attaching them to the = sub-menus.=0A= = parent.children('ul').addClass('sf-has-clone-parent').prepend(cloneLink);=0A= }=0A= // Once the button is clicked, collapse the sub-menu if = it's expanded.=0A= if (parent.hasClass('sf-expanded')){=0A= parent.children('ul').slideUp('fast', function(){=0A= // Doing the accessibility trick after hiding the = sub-menu.=0A= = $(this).closest('li').removeClass('sf-expanded').end().addClass('sf-hidde= n').show();=0A= });=0A= // Changing the caption of the inserted Collapse link to = 'Expand', if any is inserted.=0A= if (options.accordionButton =3D=3D 2 && = parent.children('.sf-accordion-button').length > 0){=0A= = parent.children('.sf-accordion-button').text(options.expandText);=0A= }=0A= }=0A= // Otherwise, expand the sub-menu.=0A= else {=0A= // Doing the accessibility trick and then showing the = sub-menu.=0A= = parent.children('ul').hide().removeClass('sf-hidden').slideDown('fast')=0A= // Changing the caption of the inserted Expand link to = 'Collape', if any is inserted.=0A= = .end().addClass('sf-expanded').children('a.sf-accordion-button').text(opt= ions.collapseText)=0A= // Hiding any expanded sub-menu of the same level.=0A= .end().siblings('li.sf-expanded').children('ul')=0A= .slideUp('fast', function(){=0A= // Doing the accessibility trick after hiding it.=0A= = $(this).closest('li').removeClass('sf-expanded').end().addClass('sf-hidde= n').show();=0A= })=0A= // Assuming Expand\Collapse buttons do exist, resetting = captions, in those hidden sub-menus.=0A= = .parent().children('a.sf-accordion-button').text(options.expandText);=0A= }=0A= }=0A= });=0A= }=0A= }=0A= else {=0A= var=0A= // Class names modification.=0A= menuClone =3D menu.clone(), classes =3D (options.menuClasses) ? = ((options.excludeClass_menu && = menuClone.hasClass(options.excludeClass_menu)) ? = menuClone.removeClass(options.excludeClass_menu).attr('class') : = menuClone.attr('class')) : '',=0A= classes =3D (options.includeClass_menu && = !menuClone.hasClass(options.includeClass_menu)) ? ((options.menuClasses) = ? menuClone.addClass(options.includeClass_menu).attr('class') : = options.includeClass_menu) : classes,=0A= classes =3D (classes) ? ' class=3D"' + classes + '"' : '';=0A= =0A= // Making sure the <select> element does not exist already.=0A= if ($('#' + menuID + '-select').length =3D=3D 0){=0A= // Creating the <option> elements.=0A= var newMenu =3D toSelect(refinedMenu, 1),=0A= // Creating the <select> element and assigning an ID and class = name.=0A= selectList =3D $('<select class=3D"' + classes + '" id=3D"' + = menuID + '-select"/>')=0A= // Attaching the title and the items to the <select> element.=0A= .html('<option>' + options.title + '</option>' + newMenu)=0A= // Attaching an event then.=0A= .change(function(){=0A= // Except for the first option that is the menu title and = not a real menu item.=0A= if ($('option:selected', this).index()){=0A= window.location =3D selectList.val();=0A= }=0A= });=0A= // Applying the addSelected option to it.=0A= if (options.addSelected){=0A= selectList.find('.active').attr('selected', !0);=0A= }=0A= // Finally inserting the <select> element into the document = then hiding the original menu.=0A= menu.before(selectList).hide();=0A= }=0A= }=0A= }=0A= =0A= // Turn everything back to normal.=0A= function turnBack(menu){=0A= var=0A= id =3D '#' + menu.attr('id');=0A= // Removing the small screen version.=0A= $(id + '-' + options.type).remove();=0A= // Removing the accordion toggle switch as well.=0A= if (options.type =3D=3D 'accordion'){=0A= $(id + '-toggle').parent('div').remove();=0A= }=0A= // Crystal clear!=0A= $(id).show();=0A= }=0A= =0A= // Return original object to support chaining.=0A= // Although this is unnecessary because of the way the module uses = these plugins.=0A= for (var s =3D 0; s < this.length; s++){=0A= var=0A= menu =3D $(this).eq(s),=0A= mode =3D options.mode;=0A= // The rest is crystal clear, isn't it? :)=0A= if (mode =3D=3D 'always_active'){=0A= convert(menu);=0A= }=0A= else if (mode =3D=3D 'window_width'){=0A= var breakpoint =3D (options.breakpointUnit =3D=3D 'em') ? = (options.breakpoint * parseFloat($('body').css('font-size'))) : = options.breakpoint,=0A= windowWidth =3D window.innerWidth || = document.documentElement.clientWidth || document.body.clientWidth,=0A= timer;=0A= if ((typeof Modernizr !=3D 'undefined' && = Modernizr.mq('(max-width:' + (breakpoint - 1) + 'px)')) || (typeof = Modernizr =3D=3D=3D 'undefined' && windowWidth < breakpoint)){=0A= convert(menu);=0A= }=0A= $(window).resize(function(){=0A= clearTimeout(timer);=0A= timer =3D setTimeout(function(){=0A= var windowWidth =3D window.innerWidth || = document.documentElement.clientWidth || document.body.clientWidth;=0A= if ((typeof Modernizr !=3D 'undefined' && = Modernizr.mq('(max-width:' + (breakpoint - 1) + 'px)')) || (typeof = Modernizr =3D=3D=3D 'undefined' && windowWidth < breakpoint)){=0A= convert(menu);=0A= }=0A= else {=0A= turnBack(menu);=0A= }=0A= }, 50);=0A= });=0A= }=0A= else if (mode =3D=3D 'useragent_custom'){=0A= if (options.useragent !=3D ''){=0A= var ua =3D RegExp(options.useragent, 'i');=0A= if (navigator.userAgent.match(ua)){=0A= convert(menu);=0A= }=0A= }=0A= }=0A= else if (mode =3D=3D 'useragent_predefined' && = navigator.userAgent.match(/(android|bb\d+|meego).+mobile|avantgo|bada\/|b= lackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris= |kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( = os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(= browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i)){=0A= convert(menu);=0A= }=0A= }=0A= return this;=0A= }=0A= })(jQuery); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/supposition.js /*=0A= * Supposition v0.2 - an optional enhancer for Superfish jQuery menu = widget.=0A= *=0A= * Copyright (c) 2008 Joel Birch - based mostly on work by Jesse Klaasse = and credit goes largely to him.=0A= * Special thanks to Karl Swedberg for valuable input.=0A= *=0A= * Dual licensed under the MIT and GPL licenses:=0A= * http://www.opensource.org/licenses/mit-license.php=0A= * http://www.gnu.org/licenses/gpl.html=0A= */=0A= /*=0A= * This is not the original jQuery Supposition plugin.=0A= * Please refer to the README for more information.=0A= */=0A= =0A= (function($){=0A= $.fn.supposition =3D function(){=0A= var $w =3D $(window), /*do this once instead of every onBeforeShow = call*/=0A= _offset =3D function(dir) {=0A= return window[dir =3D=3D 'y' ? 'pageYOffset' : 'pageXOffset']=0A= || document.documentElement && = document.documentElement[dir=3D=3D'y' ? 'scrollTop' : 'scrollLeft']=0A= || document.body[dir=3D=3D'y' ? 'scrollTop' : 'scrollLeft'];=0A= },=0A= onHide =3D function(){=0A= this.css({bottom:''});=0A= },=0A= onBeforeShow =3D function(){=0A= this.each(function(){=0A= var $u =3D $(this);=0A= $u.css('display','block');=0A= var $mul =3D $u.closest('.sf-menu'),=0A= level =3D $u.parents('ul').length,=0A= menuWidth =3D $u.width(),=0A= menuParentWidth =3D $u.closest('li').outerWidth(true),=0A= menuParentLeft =3D $u.closest('li').offset().left,=0A= totalRight =3D $w.width() + _offset('x'),=0A= menuRight =3D $u.offset().left + menuWidth,=0A= exactMenuWidth =3D (menuRight > (menuParentWidth + = menuParentLeft)) ? menuWidth - (menuRight - (menuParentWidth + = menuParentLeft)) : menuWidth;=0A= if ($u.parents('.sf-js-enabled').hasClass('rtl')) {=0A= if (menuParentLeft < exactMenuWidth) {=0A= if (($mul.hasClass('sf-horizontal') && level =3D=3D 1) || = ($mul.hasClass('sf-navbar') && level =3D=3D 2)){=0A= $u.css({left:0,right:'auto'});=0A= }=0A= else {=0A= $u.css({left:menuParentWidth + 'px',right:'auto'});=0A= }=0A= }=0A= }=0A= else {=0A= if (menuRight > totalRight && menuParentLeft > menuWidth) {=0A= if (($mul.hasClass('sf-horizontal') && level =3D=3D 1) || = ($mul.hasClass('sf-navbar') && level =3D=3D 2)){=0A= $u.css({right:0,left:'auto'});=0A= }=0A= else {=0A= $u.css({right:menuParentWidth + 'px',left:'auto'});=0A= }=0A= }=0A= }=0A= var windowHeight =3D $w.height(),=0A= offsetTop =3D $u.offset().top,=0A= menuParentShadow =3D ($mul.hasClass('sf-shadow') && = $u.css('padding-bottom').length > 0) ? = parseInt($u.css('padding-bottom').slice(0,-2)) : 0,=0A= menuParentHeight =3D ($mul.hasClass('sf-vertical')) ? '-' + = menuParentShadow : $u.parent().outerHeight(true) - menuParentShadow,=0A= menuHeight =3D $u.height(),=0A= baseline =3D windowHeight + _offset('y');=0A= var expandUp =3D ((offsetTop + menuHeight > baseline) && = (offsetTop > menuHeight));=0A= if (expandUp) {=0A= $u.css({bottom:menuParentHeight + 'px',top:'auto'});=0A= }=0A= $u.css('display','none');=0A= });=0A= };=0A= =0A= return this.each(function() {=0A= var o =3D $.fn.superfish.o[this.serial]; /* get this menu's = options */=0A= =0A= /* if callbacks already set, store them */=0A= var _onBeforeShow =3D o.onBeforeShow,=0A= _onHide =3D o.onHide;=0A= =0A= $.extend($.fn.superfish.o[this.serial],{=0A= onBeforeShow: function() {=0A= onBeforeShow.call(this); /* fire our Supposition callback */=0A= _onBeforeShow.call(this); /* fire stored callbacks */=0A= },=0A= onHide: function() {=0A= onHide.call(this); /* fire our Supposition callback */=0A= _onHide.call(this); /* fire stored callbacks */=0A= }=0A= });=0A= });=0A= };=0A= })(jQuery); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/superfish.js /*=0A= * Superfish v1.4.8 - jQuery menu widget=0A= * Copyright (c) 2008 Joel Birch=0A= *=0A= * Dual licensed under the MIT and GPL licenses:=0A= * http://www.opensource.org/licenses/mit-license.php=0A= * http://www.gnu.org/licenses/gpl.html=0A= *=0A= * CHANGELOG: = http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt=0A= */=0A= /*=0A= * This is not the original jQuery Superfish plugin.=0A= * Please refer to the README for more information.=0A= */=0A= =0A= (function($){=0A= $.fn.superfish =3D function(op){=0A= var sf =3D $.fn.superfish,=0A= c =3D sf.c,=0A= $arrow =3D $(['<span class=3D"',c.arrowClass,'"> = »</span>'].join('')),=0A= over =3D function(){=0A= var $$ =3D $(this), menu =3D getMenu($$);=0A= clearTimeout(menu.sfTimer);=0A= $$.showSuperfishUl().siblings().hideSuperfishUl();=0A= },=0A= out =3D function(){=0A= var $$ =3D $(this), menu =3D getMenu($$), o =3D sf.op;=0A= clearTimeout(menu.sfTimer);=0A= menu.sfTimer=3DsetTimeout(function(){=0A= if ($$.children('.sf-clicked').length =3D=3D 0){=0A= o.retainPath=3D($.inArray($$[0],o.$path)>-1);=0A= $$.hideSuperfishUl();=0A= if (o.$path.length && = $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}=0A= }=0A= },o.delay);=0A= },=0A= getMenu =3D function($menu){=0A= var menu =3D = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];=0A= sf.op =3D sf.o[menu.serial];=0A= return menu;=0A= },=0A= addArrow =3D function($a){ = $a.addClass(c.anchorClass).append($arrow.clone()); };=0A= =0A= return this.each(function() {=0A= var s =3D this.serial =3D sf.o.length;=0A= var o =3D $.extend({},sf.defaults,op);=0A= o.$path =3D $('li.'+o.pathClass,this).slice(0,o.pathLevels),=0A= p =3D o.$path;=0A= for (var l =3D 0; l < p.length; l++){=0A= p.eq(l).addClass([o.hoverClass,c.bcClass].join(' = ')).filter('li:has(ul)').removeClass(o.pathClass);=0A= }=0A= sf.o[s] =3D sf.op =3D o;=0A= =0A= $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? = 'hoverIntent' : 'hover'](over,out).each(function() {=0A= if (o.autoArrows) addArrow( $(this).children('a:first-child, = span.nolink:first-child') );=0A= })=0A= .not('.'+c.bcClass)=0A= .hideSuperfishUl();=0A= =0A= var $a =3D $('a, span.nolink',this);=0A= $a.each(function(i){=0A= var $li =3D $a.eq(i).parents('li');=0A= = $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li)= ;});=0A= });=0A= o.onInit.call(this);=0A= =0A= }).each(function() {=0A= var menuClasses =3D [c.menuClass],=0A= addShadow =3D true;=0A= if ($.browser !=3D=3D undefined){=0A= if ($.browser.msie && $.browser.version < 7){=0A= addShadow =3D false;=0A= }=0A= }=0A= if (sf.op.dropShadows && addShadow){=0A= menuClasses.push(c.shadowClass);=0A= }=0A= $(this).addClass(menuClasses.join(' '));=0A= });=0A= };=0A= =0A= var sf =3D $.fn.superfish;=0A= sf.o =3D [];=0A= sf.op =3D {};=0A= sf.IE7fix =3D function(){=0A= var o =3D sf.op;=0A= if ($.browser !=3D=3D undefined){=0A= if ($.browser.msie && $.browser.version > 6 && o.dropShadows && = o.animation.opacity !=3D undefined) {=0A= this.toggleClass(sf.c.shadowClass+'-off');=0A= }=0A= }=0A= };=0A= sf.c =3D {=0A= bcClass: 'sf-breadcrumb',=0A= menuClass: 'sf-js-enabled',=0A= anchorClass: 'sf-with-ul',=0A= arrowClass: 'sf-sub-indicator',=0A= shadowClass: 'sf-shadow'=0A= };=0A= sf.defaults =3D {=0A= hoverClass: 'sfHover',=0A= pathClass: 'overideThisToUse',=0A= pathLevels: 1,=0A= delay: 800,=0A= animation: {opacity:'show'},=0A= speed: 'fast',=0A= autoArrows: true,=0A= dropShadows: true,=0A= disableHI: false, // true disables hoverIntent detection=0A= onInit: function(){}, // callback functions=0A= onBeforeShow: function(){},=0A= onShow: function(){},=0A= onHide: function(){}=0A= };=0A= $.fn.extend({=0A= hideSuperfishUl : function(){=0A= var o =3D sf.op,=0A= not =3D (o.retainPath=3D=3D=3Dtrue) ? o.$path : '';=0A= o.retainPath =3D false;=0A= var $ul =3D = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.ho= verClass)=0A= .children('ul').addClass('sf-hidden');=0A= o.onHide.call($ul);=0A= return this;=0A= },=0A= showSuperfishUl : function(){=0A= var o =3D sf.op,=0A= sh =3D sf.c.shadowClass+'-off',=0A= $ul =3D this.addClass(o.hoverClass)=0A= .children('ul.sf-hidden').hide().removeClass('sf-hidden');=0A= sf.IE7fix.call($ul);=0A= o.onBeforeShow.call($ul);=0A= //edit sandy=0A= $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); = o.onShow.call($ul); });=0A= //$ul.show(0,function(){ sf.IE7fix.call($ul); o.onShow.call($ul);});=0A= return this;=0A= }=0A= });=0A= })(jQuery); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/supersubs.js /*=0A= * Supersubs v0.4b - jQuery plugin=0A= * Copyright (c) 2013 Joel Birch=0A= *=0A= * Dual licensed under the MIT and GPL licenses:=0A= * http://www.opensource.org/licenses/mit-license.php=0A= * http://www.gnu.org/licenses/gpl.html=0A= *=0A= * This plugin automatically adjusts submenu widths of suckerfish-style = menus to that of=0A= * their longest list item children. If you use this, please expect bugs = and report them=0A= * to the jQuery Google Group with the word 'Superfish' in the subject = line.=0A= *=0A= */=0A= /*=0A= * This is not the original jQuery Supersubs plugin.=0A= * Please refer to the README for more information.=0A= */=0A= =0A= (function($){ // $ will refer to jQuery within this closure=0A= $.fn.supersubs =3D function(options){=0A= var opts =3D $.extend({}, $.fn.supersubs.defaults, options);=0A= // return original object to support chaining=0A= // Although this is unnecessary due to the way the module uses these = plugins.=0A= for (var a =3D 0; a < this.length; a++) {=0A= // cache selections=0A= var $$ =3D $(this).eq(a),=0A= // support metadata=0A= o =3D $.meta ? $.extend({}, opts, $$.data()) : opts;=0A= // Jump one level if it's a "NavBar"=0A= if ($$.hasClass('sf-navbar')) {=0A= $$ =3D $$.children('li').children('ul');=0A= }=0A= // cache all ul elements=0A= $ULs =3D $$.find('ul');=0A= // get the font size of menu.=0A= // .css('fontSize') returns various results cross-browser, so = measure an em dash instead=0A= var fontsize =3D $('<li id=3D"menu-fontsize">—</li>'),=0A= size =3D = fontsize.attr('style','padding:0;position:absolute;top:-99999em;width:aut= o;')=0A= .appendTo($$)[0].clientWidth; //clientWidth is faster than width()=0A= // remove em dash=0A= fontsize.remove();=0A= =0A= // loop through each ul in menu=0A= for (var b =3D 0; b < $ULs.length; b++) {=0A= var=0A= // cache this ul=0A= $ul =3D $ULs.eq(b);=0A= // If a multi-column sub-menu, and only if correctly configured.=0A= if (o.megamenu && $ul.hasClass('sf-megamenu') && = $ul.find('.sf-megamenu-column').length > 0){=0A= // Look through each column.=0A= $column =3D $ul.find('div.sf-megamenu-column > ol');=0A= // Overall width.=0A= var mwWidth =3D 0;=0A= for (d =3D 0; d < $column.length; d++){=0A= resize($column.eq(d));=0A= // New column width, in pixels.=0A= var colWidth =3D $column.width();=0A= // Just a trick to convert em unit to px.=0A= $column.css({width:colWidth})=0A= // Making column parents the same size.=0A= .parents('.sf-megamenu-column').css({width:colWidth});=0A= // Overall width.=0A= mwWidth +=3D parseInt(colWidth);=0A= }=0A= // Resizing the columns container too.=0A= $ul.add($ul.find('li.sf-megamenu-wrapper, = li.sf-megamenu-wrapper > ol')).css({width:mwWidth});=0A= }=0A= else {=0A= resize($ul);=0A= }=0A= } =0A= }=0A= function resize($ul){=0A= var=0A= // get all (li) children of this ul=0A= $LIs =3D $ul.children(),=0A= // get all anchor grand-children=0A= $As =3D $LIs.children('a');=0A= // force content to one line and save current float property=0A= $LIs.css('white-space','nowrap');=0A= // remove width restrictions and floats so elements remain = vertically stacked=0A= $ul.add($LIs).add($As).css({float:'none',width:'auto'});=0A= // this ul will now be shrink-wrapped to longest li due to = position:absolute=0A= // so save its width as ems.=0A= var emWidth =3D $ul.get(0).clientWidth / size;=0A= // add more width to ensure lines don't turn over at certain sizes = in various browsers=0A= emWidth +=3D o.extraWidth;=0A= // restrict to at least minWidth and at most maxWidth=0A= if (emWidth > o.maxWidth) {emWidth =3D o.maxWidth;}=0A= else if (emWidth < o.minWidth) {emWidth =3D o.minWidth;}=0A= emWidth +=3D 'em';=0A= // set ul to width in ems=0A= $ul.css({width:emWidth});=0A= // restore li floats to avoid IE bugs=0A= // set li width to full width of this ul=0A= // revert white-space to normal=0A= $LIs.add($As).css({float:'',width:'',whiteSpace:''});=0A= // update offset position of descendant ul to reflect new width of = parent.=0A= // set it to 100% in case it isn't already set to this in the CSS=0A= for (var c =3D 0; c < $LIs.length; c++) {=0A= var $childUl =3D $LIs.eq(c).children('ul');=0A= var offsetDirection =3D $childUl.css('left') !=3D=3D undefined ? = 'left' : 'right';=0A= $childUl.css(offsetDirection,'100%');=0A= }=0A= } =0A= return this;=0A= };=0A= // expose defaults=0A= $.fn.supersubs.defaults =3D {=0A= megamenu: true, // define width for multi-column sub-menus and their = columns.=0A= minWidth: 12, // requires em unit.=0A= maxWidth: 27, // requires em unit.=0A= extraWidth: 1 // extra width can ensure lines don't sometimes turn = over due to slight browser differences in how they round-off values=0A= };=0A= })(jQuery); // plugin code ends ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/superfish_002.js /**=0A= * @file=0A= * The Superfish Drupal Behavior to apply the Superfish jQuery plugin to = lists.=0A= */=0A= =0A= (function ($) {=0A= Drupal.behaviors.superfish =3D {=0A= attach: function (context, settings) {=0A= // Take a look at each list to apply Superfish to.=0A= $.each(settings.superfish || {}, function(index, options) {=0A= // Process all Superfish lists.=0A= $('#superfish-' + options.id, context).once('superfish', = function() {=0A= var list =3D $(this);=0A= =0A= // Check if we are to apply the Supersubs plug-in to it.=0A= if (options.plugins || false) {=0A= if (options.plugins.supersubs || false) {=0A= list.supersubs(options.plugins.supersubs);=0A= }=0A= }=0A= =0A= // Apply Superfish to the list.=0A= list.superfish(options.sf);=0A= =0A= // Check if we are to apply any other plug-in to it.=0A= if (options.plugins || false) {=0A= if (options.plugins.touchscreen || false) {=0A= list.sftouchscreen(options.plugins.touchscreen);=0A= }=0A= if (options.plugins.smallscreen || false) {=0A= list.sfsmallscreen(options.plugins.smallscreen);=0A= }=0A= if (options.plugins.supposition || false) {=0A= list.supposition();=0A= }=0A= if (options.plugins.bgiframe || false) {=0A= list.find('ul').bgIframe({opacity:false});=0A= }=0A= }=0A= });=0A= });=0A= }=0A= };=0A= })(jQuery); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/bootstrap_002.js /*!=0A= * Bootstrap v3.0.2 by @fat and @mdo=0A= * Copyright 2013 Twitter, Inc.=0A= * Licensed under http://www.apache.org/licenses/LICENSE-2.0=0A= *=0A= * Designed and built with all the love in the world by @mdo and @fat.=0A= */=0A= =0A= if("undefined"=3D=3Dtypeof jQuery)throw new Error("Bootstrap requires = jQuery");+function(a){"use strict";function b(){var = a=3Ddocument.createElement("bootstrap"),b=3D{WebkitTransition:"webkitTran= sitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd = otransitionend",transition:"transitionend"};for(var c in b)if(void = 0!=3D=3Da.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=3Dfunction(= b){var = c=3D!1,d=3Dthis;a(this).one(a.support.transition.end,function(){c=3D!0});= var e=3Dfunction(){c||a(d).trigger(a.support.transition.end)};return = setTimeout(e,b),this},a(function(){a.support.transition=3Db()})}(jQuery),= +function(a){"use strict";var = b=3D'[data-dismiss=3D"alert"]',c=3Dfunction(c){a(c).on("click",b,this.clo= se)};c.prototype.close=3Dfunction(b){function = c(){f.trigger("closed.bs.alert").remove()}var = d=3Da(this),e=3Dd.attr("data-target");e||(e=3Dd.attr("href"),e=3De&&e.rep= lace(/.*(?=3D#[^\s]*$)/,""));var = f=3Da(e);b&&b.preventDefault(),f.length||(f=3Dd.hasClass("alert")?d:d.par= ent()),f.trigger(b=3Da.Event("close.bs.alert")),b.isDefaultPrevented()||(= f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.supp= ort.transition.end,c).emulateTransitionEnd(150):c())};var = d=3Da.fn.alert;a.fn.alert=3Dfunction(b){return this.each(function(){var = d=3Da(this),e=3Dd.data("bs.alert");e||d.data("bs.alert",e=3Dnew = c(this)),"string"=3D=3Dtypeof = b&&e[b].call(d)})},a.fn.alert.Constructor=3Dc,a.fn.alert.noConflict=3Dfun= ction(){return = a.fn.alert=3Dd,this},a(document).on("click.bs.alert.data-api",b,c.prototy= pe.close)}(jQuery),+function(a){"use strict";var = b=3Dfunction(c,d){this.$element=3Da(c),this.options=3Da.extend({},b.DEFAU= LTS,d)};b.DEFAULTS=3D{loadingText:"loading..."},b.prototype.setState=3Dfu= nction(a){var = b=3D"disabled",c=3Dthis.$element,d=3Dc.is("input")?"val":"html",e=3Dc.dat= a();a+=3D"Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.o= ptions[a]),setTimeout(function(){"loadingText"=3D=3Da?c.addClass(b).attr(= b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=3Dfunction(){= var = a=3Dthis.$element.closest('[data-toggle=3D"buttons"]');if(a.length){var = b=3Dthis.$element.find("input").prop("checked",!this.$element.hasClass("a= ctive")).trigger("change");"radio"=3D=3D=3Db.prop("type")&&a.find(".activ= e").removeClass("active")}this.$element.toggleClass("active")};var = c=3Da.fn.button;a.fn.button=3Dfunction(c){return = this.each(function(){var = d=3Da(this),e=3Dd.data("bs.button"),f=3D"object"=3D=3Dtypeof = c&&c;e||d.data("bs.button",e=3Dnew = b(this,f)),"toggle"=3D=3Dc?e.toggle():c&&e.setState(c)})},a.fn.button.Con= structor=3Db,a.fn.button.noConflict=3Dfunction(){return = a.fn.button=3Dc,this},a(document).on("click.bs.button.data-api","[data-to= ggle^=3Dbutton]",function(b){var = c=3Da(b.target);c.hasClass("btn")||(c=3Dc.closest(".btn")),c.button("togg= le"),b.preventDefault()})}(jQuery),+function(a){"use strict";var = b=3Dfunction(b,c){this.$element=3Da(b),this.$indicators=3Dthis.$element.f= ind(".carousel-indicators"),this.options=3Dc,this.paused=3Dthis.sliding=3D= this.interval=3Dthis.$active=3Dthis.$items=3Dnull,"hover"=3D=3Dthis.optio= ns.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mou= seleave",a.proxy(this.cycle,this))};b.DEFAULTS=3D{interval:5e3,pause:"hov= er",wrap:!0},b.prototype.cycle=3Dfunction(b){return = b||(this.paused=3D!1),this.interval&&clearInterval(this.interval),this.op= tions.interval&&!this.paused&&(this.interval=3DsetInterval(a.proxy(this.n= ext,this),this.options.interval)),this},b.prototype.getActiveIndex=3Dfunc= tion(){return = this.$active=3Dthis.$element.find(".item.active"),this.$items=3Dthis.$act= ive.parent().children(),this.$items.index(this.$active)},b.prototype.to=3D= function(b){var c=3Dthis,d=3Dthis.getActiveIndex();return = b>this.$items.length-1||0>b?void = 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d=3D=3Db?thi= s.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prot= otype.pause=3Dfunction(b){return = b||(this.paused=3D!0),this.$element.find(".next, = .prev").length&&a.support.transition.end&&(this.$element.trigger(a.suppor= t.transition.end),this.cycle(!0)),this.interval=3DclearInterval(this.inte= rval),this},b.prototype.next=3Dfunction(){return this.sliding?void = 0:this.slide("next")},b.prototype.prev=3Dfunction(){return = this.sliding?void = 0:this.slide("prev")},b.prototype.slide=3Dfunction(b,c){var = d=3Dthis.$element.find(".item.active"),e=3Dc||d[b](),f=3Dthis.interval,g=3D= "next"=3D=3Db?"left":"right",h=3D"next"=3D=3Db?"first":"last",i=3Dthis;if= (!e.length){if(!this.options.wrap)return;e=3Dthis.$element.find(".item")[= h]()}this.sliding=3D!0,f&&this.pause();var = j=3Da.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.h= asClass("active")){if(this.$indicators.length&&(this.$indicators.find(".a= ctive").removeClass("active"),this.$element.one("slid",function(){var = b=3Da(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active= ")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$ele= ment.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWi= dth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function()= {e.removeClass([b,g].join(" = ")).addClass("active"),d.removeClass(["active",g].join(" = ")),i.sliding=3D!1,setTimeout(function(){i.$element.trigger("slid")},0)})= .emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPr= evented())return;d.removeClass("active"),e.addClass("active"),this.slidin= g=3D!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var = c=3Da.fn.carousel;a.fn.carousel=3Dfunction(c){return = this.each(function(){var = d=3Da(this),e=3Dd.data("bs.carousel"),f=3Da.extend({},b.DEFAULTS,d.data()= ,"object"=3D=3Dtypeof c&&c),g=3D"string"=3D=3Dtypeof = c?c:f.slide;e||d.data("bs.carousel",e=3Dnew = b(this,f)),"number"=3D=3Dtypeof = c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constru= ctor=3Db,a.fn.carousel.noConflict=3Dfunction(){return = a.fn.carousel=3Dc,this},a(document).on("click.bs.carousel.data-api","[dat= a-slide], [data-slide-to]",function(b){var = c,d=3Da(this),e=3Da(d.attr("data-target")||(c=3Dd.attr("href"))&&c.replac= e(/.*(?=3D#[^\s]+$)/,"")),f=3Da.extend({},e.data(),d.data()),g=3Dd.attr("= data-slide-to");g&&(f.interval=3D!1),e.carousel(f),(g=3Dd.attr("data-slid= e-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("l= oad",function(){a('[data-ride=3D"carousel"]').each(function(){var = b=3Da(this);b.carousel(b.data())})})}(jQuery),+function(a){"use = strict";var = b=3Dfunction(c,d){this.$element=3Da(c),this.options=3Da.extend({},b.DEFAU= LTS,d),this.transitioning=3Dnull,this.options.parent&&(this.$parent=3Da(t= his.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS=3D{to= ggle:!0},b.prototype.dimension=3Dfunction(){var = a=3Dthis.$element.hasClass("width");return = a?"width":"height"},b.prototype.show=3Dfunction(){if(!this.transitioning&= &!this.$element.hasClass("in")){var = b=3Da.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultP= revented()){var c=3Dthis.$parent&&this.$parent.find("> .panel > = .in");if(c&&c.length){var = d=3Dc.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide")= ,d||c.data("bs.collapse",null)}var = e=3Dthis.dimension();this.$element.removeClass("collapse").addClass("coll= apsing")[e](0),this.transitioning=3D1;var = f=3Dfunction(){this.$element.removeClass("collapsing").addClass("in")[e](= "auto"),this.transitioning=3D0,this.$element.trigger("shown.bs.collapse")= };if(!a.support.transition)return f.call(this);var = g=3Da.camelCase(["scroll",e].join("-"));this.$element.one(a.support.trans= ition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][= g])}}},b.prototype.hide=3Dfunction(){if(!this.transitioning&&this.$elemen= t.hasClass("in")){var = b=3Da.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultP= revented()){var = c=3Dthis.dimension();this.$element[c](this.$element[c]())[0].offsetHeight= ,this.$element.addClass("collapsing").removeClass("collapse").removeClass= ("in"),this.transitioning=3D1;var = d=3Dfunction(){this.transitioning=3D0,this.$element.trigger("hidden.bs.co= llapse").removeClass("collapsing").addClass("collapse")};return = a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.= proxy(d,this)).emulateTransitionEnd(350),void = 0):d.call(this)}}},b.prototype.toggle=3Dfunction(){this[this.$element.has= Class("in")?"hide":"show"]()};var = c=3Da.fn.collapse;a.fn.collapse=3Dfunction(c){return = this.each(function(){var = d=3Da(this),e=3Dd.data("bs.collapse"),f=3Da.extend({},b.DEFAULTS,d.data()= ,"object"=3D=3Dtypeof c&&c);e||d.data("bs.collapse",e=3Dnew = b(this,f)),"string"=3D=3Dtypeof = c&&e[c]()})},a.fn.collapse.Constructor=3Db,a.fn.collapse.noConflict=3Dfun= ction(){return = a.fn.collapse=3Dc,this},a(document).on("click.bs.collapse.data-api","[dat= a-toggle=3Dcollapse]",function(b){var = c,d=3Da(this),e=3Dd.attr("data-target")||b.preventDefault()||(c=3Dd.attr(= "href"))&&c.replace(/.*(?=3D#[^\s]+$)/,""),f=3Da(e),g=3Df.data("bs.collap= se"),h=3Dg?"toggle":d.data(),i=3Dd.attr("data-parent"),j=3Di&&a(i);g&&g.t= ransitioning||(j&&j.find('[data-toggle=3Dcollapse][data-parent=3D"'+i+'"]= ').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClas= s"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use = strict";function b(){a(d).remove(),a(e).each(function(b){var = d=3Dc(a(this));d.hasClass("open")&&(d.trigger(b=3Da.Event("hide.bs.dropdo= wn")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dr= opdown"))})}function c(b){var = c=3Db.attr("data-target");c||(c=3Db.attr("href"),c=3Dc&&/#/.test(c)&&c.re= place(/.*(?=3D#[^\s]*$)/,""));var d=3Dc&&a(c);return = d&&d.length?d:b.parent()}var = d=3D".dropdown-backdrop",e=3D"[data-toggle=3Ddropdown]",f=3Dfunction(b){a= (b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=3Dfunction(d)= {var e=3Da(this);if(!e.is(".disabled, :disabled")){var = f=3Dc(e),g=3Df.hasClass("open");if(b(),!g){if("ontouchstart"in = document.documentElement&&!f.closest(".navbar-nav").length&&a('<div = class=3D"dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trig= ger(d=3Da.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.togg= leClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.proto= type.keydown=3Dfunction(b){if(/(38|40|27)/.test(b.keyCode)){var = d=3Da(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, = :disabled")){var = f=3Dc(d),g=3Df.hasClass("open");if(!g||g&&27=3D=3Db.keyCode)return = 27=3D=3Db.which&&f.find(e).focus(),d.click();var h=3Da("[role=3Dmenu] = li:not(.divider):visible a",f);if(h.length){var = i=3Dh.index(h.filter(":focus"));38=3D=3Db.keyCode&&i>0&&i--,40=3D=3Db.key= Code&&i<h.length-1&&i++,~i||(i=3D0),h.eq(i).focus()}}}};var = g=3Da.fn.dropdown;a.fn.dropdown=3Dfunction(b){return = this.each(function(){var = c=3Da(this),d=3Dc.data("dropdown");d||c.data("dropdown",d=3Dnew = f(this)),"string"=3D=3Dtypeof = b&&d[b].call(c)})},a.fn.dropdown.Constructor=3Df,a.fn.dropdown.noConflict= =3Dfunction(){return = a.fn.dropdown=3Dg,this},a(document).on("click.bs.dropdown.data-api",b).on= ("click.bs.dropdown.data-api",".dropdown = form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e= ,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", = [role=3Dmenu]",f.prototype.keydown)}(jQuery),+function(a){"use = strict";var = b=3Dfunction(b,c){this.options=3Dc,this.$element=3Da(b),this.$backdrop=3D= this.isShown=3Dnull,this.options.remote&&this.$element.load(this.options.= remote)};b.DEFAULTS=3D{backdrop:!0,keyboard:!0,show:!0},b.prototype.toggl= e=3Dfunction(a){return = this[this.isShown?"hide":"show"](a)},b.prototype.show=3Dfunction(b){var = c=3Dthis,d=3Da.Event("show.bs.modal",{relatedTarget:b});this.$element.tri= gger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=3D!0,this.esc= ape(),this.$element.on("click.dismiss.modal",'[data-dismiss=3D"modal"]',a= .proxy(this.hide,this)),this.backdrop(function(){var = d=3Da.support.transition&&c.$element.hasClass("fade");c.$element.parent()= .length||c.$element.appendTo(document.body),c.$element.show(),d&&c.$eleme= nt[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enfo= rceFocus();var = e=3Da.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal= -dialog").one(a.support.transition.end,function(){c.$element.focus().trig= ger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.pr= ototype.hide=3Dfunction(b){b&&b.preventDefault(),b=3Da.Event("hide.bs.mod= al"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(thi= s.isShown=3D!1,this.escape(),a(document).off("focusin.bs.modal"),this.$el= ement.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.modal")= ,a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a= .support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEn= d(300):this.hideModal())},b.prototype.enforceFocus=3Dfunction(){a(documen= t).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this= .$element[0]=3D=3D=3Da.target||this.$element.has(a.target).length||this.$= element.focus()},this))},b.prototype.escape=3Dfunction(){this.isShown&&th= is.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(fun= ction(a){27=3D=3Da.which&&this.hide()},this)):this.isShown||this.$element= .off("keyup.dismiss.bs.modal")},b.prototype.hideModal=3Dfunction(){var = a=3Dthis;this.$element.hide(),this.backdrop(function(){a.removeBackdrop()= ,a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=3Dfu= nction(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=3Dnull},b= .prototype.backdrop=3Dfunction(b){var = c=3Dthis.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.option= s.backdrop){var d=3Da.support.transition&&c;if(this.$backdrop=3Da('<div = class=3D"modal-backdrop '+c+'" = />').appendTo(document.body),this.$element.on("click.dismiss.modal",a.pro= xy(function(a){a.target=3D=3D=3Da.currentTarget&&("static"=3D=3Dthis.opti= ons.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call= (this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass(= "in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateT= ransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.r= emoveClass("in"),a.support.transition&&this.$element.hasClass("fade")?thi= s.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()= ):b&&b()};var c=3Da.fn.modal;a.fn.modal=3Dfunction(c,d){return = this.each(function(){var = e=3Da(this),f=3De.data("bs.modal"),g=3Da.extend({},b.DEFAULTS,e.data(),"o= bject"=3D=3Dtypeof c&&c);f||e.data("bs.modal",f=3Dnew = b(this,g)),"string"=3D=3Dtypeof = c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=3Db,a.fn.modal.noCo= nflict=3Dfunction(){return = a.fn.modal=3Dc,this},a(document).on("click.bs.modal.data-api",'[data-togg= le=3D"modal"]',function(b){var = c=3Da(this),d=3Dc.attr("href"),e=3Da(c.attr("data-target")||d&&d.replace(= /.*(?=3D#[^\s]+$)/,"")),f=3De.data("modal")?"toggle":a.extend({remote:!/#= /.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("= hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.= modal",".modal",function(){a(document.body).addClass("modal-open")}).on("= hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-= open")})}(jQuery),+function(a){"use strict";var = b=3Dfunction(a,b){this.type=3Dthis.options=3Dthis.enabled=3Dthis.timeout=3D= this.hoverState=3Dthis.$element=3Dnull,this.init("tooltip",a,b)};b.DEFAUL= TS=3D{animation:!0,placement:"top",selector:!1,template:'<div = class=3D"tooltip"><div class=3D"tooltip-arrow"></div><div = class=3D"tooltip-inner"></div></div>',trigger:"hover = focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=3Dfunction= (b,c,d){this.enabled=3D!0,this.type=3Db,this.$element=3Da(c),this.options= =3Dthis.getOptions(d);for(var e=3Dthis.options.trigger.split(" = "),f=3De.length;f--;){var = g=3De[f];if("click"=3D=3Dg)this.$element.on("click."+this.type,this.optio= ns.selector,a.proxy(this.toggle,this));else if("manual"!=3Dg){var = h=3D"hover"=3D=3Dg?"mouseenter":"focus",i=3D"hover"=3D=3Dg?"mouseleave":"= blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this= .enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.pr= oxy(this.leave,this))}}this.options.selector?this._options=3Da.extend({},= this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype= .getDefaults=3Dfunction(){return = b.DEFAULTS},b.prototype.getOptions=3Dfunction(b){return = b=3Da.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"numb= er"=3D=3Dtypeof = b.delay&&(b.delay=3D{show:b.delay,hide:b.delay}),b},b.prototype.getDelega= teOptions=3Dfunction(){var b=3D{},c=3Dthis.getDefaults();return = this._options&&a.each(this._options,function(a,d){c[a]!=3Dd&&(b[a]=3Dd)})= ,b},b.prototype.enter=3Dfunction(b){var c=3Db instanceof = this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions(= )).data("bs."+this.type);return = clearTimeout(c.timeout),c.hoverState=3D"in",c.options.delay&&c.options.de= lay.show?(c.timeout=3DsetTimeout(function(){"in"=3D=3Dc.hoverState&&c.sho= w()},c.options.delay.show),void = 0):c.show()},b.prototype.leave=3Dfunction(b){var c=3Db instanceof = this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions(= )).data("bs."+this.type);return = clearTimeout(c.timeout),c.hoverState=3D"out",c.options.delay&&c.options.d= elay.hide?(c.timeout=3DsetTimeout(function(){"out"=3D=3Dc.hoverState&&c.h= ide()},c.options.delay.hide),void = 0):c.hide()},b.prototype.show=3Dfunction(){var = b=3Da.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(= this.$element.trigger(b),b.isDefaultPrevented())return;var = c=3Dthis.tip();this.setContent(),this.options.animation&&c.addClass("fade= ");var d=3D"function"=3D=3Dtypeof = this.options.placement?this.options.placement.call(this,c[0],this.$elemen= t[0]):this.options.placement,e=3D/\s?auto?\s?/i,f=3De.test(d);f&&(d=3Dd.r= eplace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addCl= ass(d),this.options.container?c.appendTo(this.options.container):c.insert= After(this.$element);var = g=3Dthis.getPosition(),h=3Dc[0].offsetWidth,i=3Dc[0].offsetHeight;if(f){v= ar = j=3Dthis.$element.parent(),k=3Dd,l=3Ddocument.documentElement.scrollTop||= document.body.scrollTop,m=3D"body"=3D=3Dthis.options.container?window.inn= erWidth:j.outerWidth(),n=3D"body"=3D=3Dthis.options.container?window.inne= rHeight:j.outerHeight(),o=3D"body"=3D=3Dthis.options.container?0:j.offset= ().left;d=3D"bottom"=3D=3Dd&&g.top+g.height+i-l>n?"top":"top"=3D=3Dd&&g.t= op-l-i<0?"bottom":"right"=3D=3Dd&&g.right+h>m?"left":"left"=3D=3Dd&&g.lef= t-h<o?"right":d,c.removeClass(k).addClass(d)}var = p=3Dthis.getCalculatedOffset(d,g,h,i);this.applyPlacement(p,d),this.$elem= ent.trigger("shown.bs."+this.type)}},b.prototype.applyPlacement=3Dfunctio= n(a,b){var = c,d=3Dthis.tip(),e=3Dd[0].offsetWidth,f=3Dd[0].offsetHeight,g=3DparseInt(= d.css("margin-top"),10),h=3DparseInt(d.css("margin-left"),10);isNaN(g)&&(= g=3D0),isNaN(h)&&(h=3D0),a.top=3Da.top+g,a.left=3Da.left+h,d.offset(a).ad= dClass("in");var = i=3Dd[0].offsetWidth,j=3Dd[0].offsetHeight;if("top"=3D=3Db&&j!=3Df&&(c=3D= !0,a.top=3Da.top+f-j),/bottom|top/.test(b)){var = k=3D0;a.left<0&&(k=3D-2*a.left,a.left=3D0,d.offset(a),i=3Dd[0].offsetWidt= h,j=3Dd[0].offsetHeight),this.replaceArrow(k-e+i,i,"left")}else = this.replaceArrow(j-f,j,"top");c&&d.offset(a)},b.prototype.replaceArrow=3D= function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setC= ontent=3Dfunction(){var = a=3Dthis.tip(),b=3Dthis.getTitle();a.find(".tooltip-inner")[this.options.= html?"html":"text"](b),a.removeClass("fade in top bottom left = right")},b.prototype.hide=3Dfunction(){function = b(){"in"!=3Dc.hoverState&&d.detach()}var = c=3Dthis,d=3Dthis.tip(),e=3Da.Event("hide.bs."+this.type);return = this.$element.trigger(e),e.isDefaultPrevented()?void = 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d= .one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.$elem= ent.trigger("hidden.bs."+this.type),this)},b.prototype.fixTitle=3Dfunctio= n(){var a=3Dthis.$element;(a.attr("title")||"string"!=3Dtypeof = a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("titl= e")||"").attr("title","")},b.prototype.hasContent=3Dfunction(){return = this.getTitle()},b.prototype.getPosition=3Dfunction(){var = b=3Dthis.$element[0];return a.extend({},"function"=3D=3Dtypeof = b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,he= ight:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOf= fset=3Dfunction(a,b,c,d){return"bottom"=3D=3Da?{top:b.top+b.height,left:b= .left+b.width/2-c/2}:"top"=3D=3Da?{top:b.top-d,left:b.left+b.width/2-c/2}= :"left"=3D=3Da?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.heig= ht/2-d/2,left:b.left+b.width}},b.prototype.getTitle=3Dfunction(){var = a,b=3Dthis.$element,c=3Dthis.options;return = a=3Db.attr("data-original-title")||("function"=3D=3Dtypeof = c.title?c.title.call(b[0]):c.title)},b.prototype.tip=3Dfunction(){return = this.$tip=3Dthis.$tip||a(this.options.template)},b.prototype.arrow=3Dfunc= tion(){return = this.$arrow=3Dthis.$arrow||this.tip().find(".tooltip-arrow")},b.prototype= .validate=3Dfunction(){this.$element[0].parentNode||(this.hide(),this.$el= ement=3Dnull,this.options=3Dnull)},b.prototype.enable=3Dfunction(){this.e= nabled=3D!0},b.prototype.disable=3Dfunction(){this.enabled=3D!1},b.protot= ype.toggleEnabled=3Dfunction(){this.enabled=3D!this.enabled},b.prototype.= toggle=3Dfunction(b){var = c=3Db?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."= +this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototyp= e.destroy=3Dfunction(){this.hide().$element.off("."+this.type).removeData= ("bs."+this.type)};var = c=3Da.fn.tooltip;a.fn.tooltip=3Dfunction(c){return = this.each(function(){var = d=3Da(this),e=3Dd.data("bs.tooltip"),f=3D"object"=3D=3Dtypeof = c&&c;e||d.data("bs.tooltip",e=3Dnew b(this,f)),"string"=3D=3Dtypeof = c&&e[c]()})},a.fn.tooltip.Constructor=3Db,a.fn.tooltip.noConflict=3Dfunct= ion(){return a.fn.tooltip=3Dc,this}}(jQuery),+function(a){"use = strict";var = b=3Dfunction(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new = Error("Popover requires = tooltip.js");b.DEFAULTS=3Da.extend({},a.fn.tooltip.Constructor.DEFAULTS,{= placement:"right",trigger:"click",content:"",template:'<div = class=3D"popover"><div class=3D"arrow"></div><h3 = class=3D"popover-title"></h3><div = class=3D"popover-content"></div></div>'}),b.prototype=3Da.extend({},a.fn.= tooltip.Constructor.prototype),b.prototype.constructor=3Db,b.prototype.ge= tDefaults=3Dfunction(){return = b.DEFAULTS},b.prototype.setContent=3Dfunction(){var = a=3Dthis.tip(),b=3Dthis.getTitle(),c=3Dthis.getContent();a.find(".popover= -title")[this.options.html?"html":"text"](b),a.find(".popover-content")[t= his.options.html?"html":"text"](c),a.removeClass("fade top bottom left = right = in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.= prototype.hasContent=3Dfunction(){return = this.getTitle()||this.getContent()},b.prototype.getContent=3Dfunction(){v= ar a=3Dthis.$element,b=3Dthis.options;return = a.attr("data-content")||("function"=3D=3Dtypeof = b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=3Dfunction()= {return = this.$arrow=3Dthis.$arrow||this.tip().find(".arrow")},b.prototype.tip=3Df= unction(){return = this.$tip||(this.$tip=3Da(this.options.template)),this.$tip};var = c=3Da.fn.popover;a.fn.popover=3Dfunction(c){return = this.each(function(){var = d=3Da(this),e=3Dd.data("bs.popover"),f=3D"object"=3D=3Dtypeof = c&&c;e||d.data("bs.popover",e=3Dnew b(this,f)),"string"=3D=3Dtypeof = c&&e[c]()})},a.fn.popover.Constructor=3Db,a.fn.popover.noConflict=3Dfunct= ion(){return a.fn.popover=3Dc,this}}(jQuery),+function(a){"use = strict";function b(c,d){var = e,f=3Da.proxy(this.process,this);this.$element=3Da(c).is("body")?a(window= ):a(c),this.$body=3Da("body"),this.$scrollElement=3Dthis.$element.on("scr= oll.bs.scroll-spy.data-api",f),this.options=3Da.extend({},b.DEFAULTS,d),t= his.selector=3D(this.options.target||(e=3Da(c).attr("href"))&&e.replace(/= .*(?=3D#[^\s]+$)/,"")||"")+" .nav li > = a",this.offsets=3Da([]),this.targets=3Da([]),this.activeTarget=3Dnull,thi= s.refresh(),this.process()}b.DEFAULTS=3D{offset:10},b.prototype.refresh=3D= function(){var = b=3Dthis.$element[0]=3D=3Dwindow?"offset":"position";this.offsets=3Da([])= ,this.targets=3Da([]);var = c=3Dthis;this.$body.find(this.selector).map(function(){var = d=3Da(this),e=3Dd.data("target")||d.attr("href"),f=3D/^#\w/.test(e)&&a(e)= ;return = f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrol= lElement.scrollTop()),e]]||null}).sort(function(a,b){return = a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1= ])})},b.prototype.process=3Dfunction(){var = a,b=3Dthis.$scrollElement.scrollTop()+this.options.offset,c=3Dthis.$scrol= lElement[0].scrollHeight||this.$body[0].scrollHeight,d=3Dc-this.$scrollEl= ement.height(),e=3Dthis.offsets,f=3Dthis.targets,g=3Dthis.activeTarget;if= (b>=3Dd)return = g!=3D(a=3Df.last()[0])&&this.activate(a);for(a=3De.length;a--;)g!=3Df[a]&= &b>=3De[a]&&(!e[a+1]||b<=3De[a+1])&&this.activate(f[a])},b.prototype.acti= vate=3Dfunction(b){this.activeTarget=3Db,a(this.selector).parents(".activ= e").removeClass("active");var = c=3Dthis.selector+'[data-target=3D"'+b+'"],'+this.selector+'[href=3D"'+b+= '"]',d=3Da(c).parents("li").addClass("active");d.parent(".dropdown-menu")= .length&&(d=3Dd.closest("li.dropdown").addClass("active")),d.trigger("act= ivate")};var c=3Da.fn.scrollspy;a.fn.scrollspy=3Dfunction(c){return = this.each(function(){var = d=3Da(this),e=3Dd.data("bs.scrollspy"),f=3D"object"=3D=3Dtypeof = c&&c;e||d.data("bs.scrollspy",e=3Dnew b(this,f)),"string"=3D=3Dtypeof = c&&e[c]()})},a.fn.scrollspy.Constructor=3Db,a.fn.scrollspy.noConflict=3Df= unction(){return = a.fn.scrollspy=3Dc,this},a(window).on("load",function(){a('[data-spy=3D"s= croll"]').each(function(){var = b=3Da(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use = strict";var = b=3Dfunction(b){this.element=3Da(b)};b.prototype.show=3Dfunction(){var = b=3Dthis.element,c=3Db.closest("ul:not(.dropdown-menu)"),d=3Db.data("targ= et");if(d||(d=3Db.attr("href"),d=3Dd&&d.replace(/.*(?=3D#[^\s]*$)/,"")),!= b.parent("li").hasClass("active")){var e=3Dc.find(".active:last = a")[0],f=3Da.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.is= DefaultPrevented()){var = g=3Da(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),funct= ion(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.a= ctivate=3Dfunction(b,c,d){function e(){f.removeClass("active").find("> = .dropdown-menu > = .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,= b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.clo= sest("li.dropdown").addClass("active"),d&&d()}var f=3Dc.find("> = .active"),g=3Dd&&a.support.transition&&f.hasClass("fade");g?f.one(a.suppo= rt.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};v= ar c=3Da.fn.tab;a.fn.tab=3Dfunction(c){return this.each(function(){var = d=3Da(this),e=3Dd.data("bs.tab");e||d.data("bs.tab",e=3Dnew = b(this)),"string"=3D=3Dtypeof = c&&e[c]()})},a.fn.tab.Constructor=3Db,a.fn.tab.noConflict=3Dfunction(){re= turn = a.fn.tab=3Dc,this},a(document).on("click.bs.tab.data-api",'[data-toggle=3D= "tab"], = [data-toggle=3D"pill"]',function(b){b.preventDefault(),a(this).tab("show"= )})}(jQuery),+function(a){"use strict";var = b=3Dfunction(c,d){this.options=3Da.extend({},b.DEFAULTS,d),this.$window=3D= a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this))= .on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,thi= s)),this.$element=3Da(c),this.affixed=3Dthis.unpin=3Dnull,this.checkPosit= ion()};b.RESET=3D"affix affix-top = affix-bottom",b.DEFAULTS=3D{offset:0},b.prototype.checkPositionWithEventL= oop=3Dfunction(){setTimeout(a.proxy(this.checkPosition,this),1)},b.protot= ype.checkPosition=3Dfunction(){if(this.$element.is(":visible")){var = c=3Da(document).height(),d=3Dthis.$window.scrollTop(),e=3Dthis.$element.o= ffset(),f=3Dthis.options.offset,g=3Df.top,h=3Df.bottom;"object"!=3Dtypeof= f&&(h=3Dg=3Df),"function"=3D=3Dtypeof = g&&(g=3Df.top()),"function"=3D=3Dtypeof h&&(h=3Df.bottom());var = i=3Dnull!=3Dthis.unpin&&d+this.unpin<=3De.top?!1:null!=3Dh&&e.top+this.$e= lement.height()>=3Dc-h?"bottom":null!=3Dg&&g>=3Dd?"top":!1;this.affixed!=3D= =3Di&&(this.unpin&&this.$element.css("top",""),this.affixed=3Di,this.unpi= n=3D"bottom"=3D=3Di?e.top-d:null,this.$element.removeClass(b.RESET).addCl= ass("affix"+(i?"-"+i:"")),"bottom"=3D=3Di&&this.$element.offset({top:docu= ment.body.offsetHeight-h-this.$element.height()}))}};var = c=3Da.fn.affix;a.fn.affix=3Dfunction(c){return this.each(function(){var = d=3Da(this),e=3Dd.data("bs.affix"),f=3D"object"=3D=3Dtypeof = c&&c;e||d.data("bs.affix",e=3Dnew b(this,f)),"string"=3D=3Dtypeof = c&&e[c]()})},a.fn.affix.Constructor=3Db,a.fn.affix.noConflict=3Dfunction(= ){return = a.fn.affix=3Dc,this},a(window).on("load",function(){a('[data-spy=3D"affix= "]').each(function(){var = b=3Da(this),c=3Db.data();c.offset=3Dc.offset||{},c.offsetBottom&&(c.offse= t.bottom=3Dc.offsetBottom),c.offsetTop&&(c.offset.top=3Dc.offsetTop),b.af= fix(c)})})}(jQuery); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jwplayer.js "undefined"=3D=3Dtypeof = jwplayer&&(jwplayer=3Dfunction(f){if(jwplayer.api)return = jwplayer.api.selectPlayer(f)},jwplayer.version=3D"6.11.4923",jwplayer.vid= =3Ddocument.createElement("video"),jwplayer.audio=3Ddocument.createElemen= t("audio"),jwplayer.source=3Ddocument.createElement("source"),function(){= var = f=3D{},c=3DArray.prototype,k=3DObject.prototype,d=3Dc.slice,e=3Dc.concat,= b=3Dk.toString,h=3Dk.hasOwnProperty,n=3Dc.map,a=3Dc.forEach,g=3Dc.filter,= m=3Dc.some,p=3Dc.indexOf,k=3DArray.isArray,l=3DObject.keys,j=3Dfunction(a= ){if(a instanceof j)return a; if(!(this instanceof j))return new = j(a)},t=3Dj.each=3Dj.forEach=3Dfunction(r,g,b){if(null=3D=3Dr)return = r;if(a&&r.forEach=3D=3D=3Da)r.forEach(g,b);else = if(r.length=3D=3D=3D+r.length)for(var = d=3D0,m=3Dr.length;d<m;d++){if(g.call(b,r[d],d,r)=3D=3D=3Df)return}else = for(var = c=3Dj.keys(r),d=3D0,m=3Dc.length;d<m;d++)if(g.call(b,r[c[d]],c[d],r)=3D=3D= =3Df)return;return r};j.map=3Dj.collect=3Dfunction(a,j,g){var = b=3D[];if(null=3D=3Da)return b;if(n&&a.map=3D=3D=3Dn)return = a.map(j,g);t(a,function(a,r,d){b.push(j.call(g,a,r,d))});return = b};j.find=3Dj.detect=3Dfunction(a,j, g){var b;v(a,function(a,r,d){if(j.call(g,a,r,d))return b=3Da,!0});return = b};j.filter=3Dj.select=3Dfunction(a,j,b){var = d=3D[];if(null=3D=3Da)return d;if(g&&a.filter=3D=3D=3Dg)return = a.filter(j,b);t(a,function(a,g,r){j.call(b,a,g,r)&&d.push(a)});return = d};var v=3Dj.some=3Dj.any=3Dfunction(a,g,b){g||(g=3Dj.identity);var = d=3D!1;if(null=3D=3Da)return d;if(m&&a.some=3D=3D=3Dm)return = a.some(g,b);t(a,function(a,j,r){if(d||(d=3Dg.call(b,a,j,r)))return = f});return!!d};j.size=3Dfunction(a){return = null=3D=3Da?0:a.length=3D=3D=3D+a.length?a.length:j.keys(a).length}; j.after=3Dfunction(a,j){return function(){if(1>--a)return = j.apply(this,arguments)}};j.sortedIndex=3Dfunction(a,g,b,d){b=3Dnull=3D=3D= b?j.identity:j.isFunction(b)?b:j.property(b);g=3Db.call(d,g);for(var = m=3D0,c=3Da.length;m<c;){var = l=3Dm+c>>>1;b.call(d,a[l])<g?m=3Dl+1:c=3Dl}return = m};j.find=3Dj.detect=3Dfunction(a,j,g){var = b;v(a,function(a,d,m){if(j.call(g,a,d,m))return b=3Da,!0});return = b};v=3Dj.some=3Dj.any=3Dfunction(a,g,b){g||(g=3Dj.identity);var = d=3D!1;if(null=3D=3Da)return d;if(m&&a.some=3D=3D=3Dm)return = a.some(g,b);t(a,function(a,j,m){if(d|| (d=3Dg.call(b,a,j,m)))return = f});return!!d};j.contains=3Dj.include=3Dfunction(a,g){if(null=3D=3Da)retu= rn!1;a.length!=3D=3D+a.length&&(a=3Dj.values(a));return = 0<=3Dj.indexOf(a,g)};j.difference=3Dfunction(a){var = g=3De.apply(c,d.call(arguments,1));return = j.filter(a,function(a){return!j.contains(g,a)})};j.without=3Dfunction(a){= return = j.difference(a,d.call(arguments,1))};j.indexOf=3Dfunction(a,g,b){if(null=3D= =3Da)return-1;var d=3D0,m=3Da.length;if(b)if("number"=3D=3Dtypeof = b)d=3D0>b?Math.max(0,m+b):b;else return = d=3Dj.sortedIndex(a,g),a[d]=3D=3D=3D g?d:-1;if(p&&a.indexOf=3D=3D=3Dp)return = a.indexOf(g,b);for(;d<m;d++)if(a[d]=3D=3D=3Dg)return = d;return-1};j.memoize=3Dfunction(a,g){var = b=3D{};g||(g=3Dj.identity);return function(){var = d=3Dg.apply(this,arguments);return = j.has(b,d)?b[d]:b[d]=3Da.apply(this,arguments)}};j.keys=3Dfunction(a){if(= !j.isObject(a))return[];if(l)return l(a);var g=3D[],b;for(b in = a)j.has(a,b)&&g.push(b);return g};j.pick=3Dfunction(a){var = j=3D{},g=3De.apply(c,d.call(arguments,1));t(g,function(g){g in = a&&(j[g]=3Da[g])});return j};j.isArray=3Dk||function(a){return"[object = Array]"=3D=3D b.call(a)};j.isObject=3Dfunction(a){return = a=3D=3D=3DObject(a)};t("Arguments Function String Number Date = RegExp".split(" "),function(a){j["is"+a]=3Dfunction(g){return = b.call(g)=3D=3D"[object = "+a+"]"}});j.isArguments(arguments)||(j.isArguments=3Dfunction(a){return!= (!a||!j.has(a,"callee"))});"function"!=3D=3Dtypeof/./&&(j.isFunction=3Dfu= nction(a){return"function"=3D=3D=3Dtypeof = a});j.isFinite=3Dfunction(a){return = isFinite(a)&&!isNaN(parseFloat(a))};j.isNaN=3Dfunction(a){return = j.isNumber(a)&&a!=3D+a};j.isBoolean=3Dfunction(a){return!0=3D=3D=3D a||!1=3D=3D=3Da||"[object = Boolean]"=3D=3Db.call(a)};j.isNull=3Dfunction(a){return = null=3D=3D=3Da};j.isUndefined=3Dfunction(a){return void = 0=3D=3D=3Da};j.has=3Dfunction(a,g){return = h.call(a,g)};j.identity=3Dfunction(a){return = a};j.constant=3Dfunction(a){return function(){return = a}};j.property=3Dfunction(a){return function(g){return = g[a]}};this._=3Dj}.call(jwplayer),function(f){function c(a){return = function(){return h(a)}}function k(a,g,b,c,l){return function(){var = j,e;if(l)b(a);else{try{if(j=3Da.responseXML)if(e=3Dj.firstChild,j.lastChi= ld&& "parsererror"=3D=3D=3Dj.lastChild.nodeName){c&&c("Invalid = XML",g,a);return}}catch(h){}if(j&&e)return = b(a);(j=3Dd.parseXML(a.responseText))&&j.firstChild?(a=3Dd.extend({},a,{r= esponseXML:j}),b(a)):c&&c(a.responseText?"Invalid XML":g,g,a)}}}var = d=3Df.utils=3D{},e=3Df._;d.exists=3Dfunction(a){switch(typeof a){case = "string":return 0<a.length;case "object":return null!=3D=3Da;case = "undefined":return!1}return!0};d.styleDimension=3Dfunction(a){return = a+(0<a.toString().indexOf("%")?"":"px")};d.getAbsolutePath=3Dfunction(a,g= ){d.exists(g)|| (g=3Ddocument.location.href);if(d.exists(a)){var = b;if(d.exists(a)){b=3Da.indexOf("://");var = c=3Da.indexOf("?");b=3D0<b&&(0>c||c>b)}else b=3Dvoid 0;if(b)return = a;b=3Dg.substring(0,g.indexOf("://")+3);var = c=3Dg.substring(b.length,g.indexOf("/",b.length+1)),l;0=3D=3D=3Da.indexOf= ("/")?l=3Da.split("/"):(l=3Dg.split("?")[0],l=3Dl.substring(b.length+c.le= ngth+1,l.lastIndexOf("/")),l=3Dl.split("/").concat(a.split("/")));for(var= = j=3D[],e=3D0;e<l.length;e++)l[e]&&(d.exists(l[e])&&"."!=3D=3Dl[e])&&(".."= =3D=3D=3Dl[e]?j.pop():j.push(l[e]));return b+c+ "/"+j.join("/")}};d.extend=3Dfunction(){var = a=3DArray.prototype.slice.call(arguments,0);if(1<a.length){for(var = g=3Da[0],b=3Dfunction(a,b){void = 0!=3D=3Db&&null!=3D=3Db&&(g[a]=3Db)},c=3D1;c<a.length;c++)d.foreach(a[c],= b);return g}return null};var = b=3Dwindow.console=3Dwindow.console||{log:function(){}};d.log=3Dfunction(= ){var = a=3DArray.prototype.slice.call(arguments,0);"object"=3D=3D=3Dtypeof = b.log?b.log(a):b.log.apply(b,a)};var h=3De.memoize(function(a){return = null!=3D=3Dnavigator.userAgent.toLowerCase().match(a)});d.isFF=3Dc(/firef= ox/i);d.isChrome=3D c(/chrome/i);d.isIPod=3Dc(/iP(hone|od)/i);d.isIPad=3Dc(/iPad/i);d.isSafar= i602=3Dc(/Macintosh.*Mac OS X 10_8.*6\.0\.\d* = Safari/i);d.isIETrident=3Dfunction(a){return = a?(a=3DparseFloat(a).toFixed(1),h(RegExp("trident/.+rv:\\s*"+a,"i"))):h(/= trident/i)};d.isMSIE=3Dfunction(a){return = a?(a=3DparseFloat(a).toFixed(1),h(RegExp("msie\\s*"+a,"i"))):h(/msie/i)};= d.isIE=3Dfunction(a){return = a?(a=3DparseFloat(a).toFixed(1),11<=3Da?d.isIETrident(a):d.isMSIE(a)):d.i= sMSIE()||d.isIETrident()};d.isSafari=3Dfunction(){return h(/safari/i)&& !h(/chrome/i)&&!h(/chromium/i)&&!h(/android/i)};d.isIOS=3Dfunction(a){ret= urn = a?h(RegExp("iP(hone|ad|od).+\\sOS\\s"+a,"i")):h(/iP(hone|ad|od)/i)};d.isA= ndroidNative=3Dfunction(a){return = d.isAndroid(a,!0)};d.isAndroid=3Dfunction(a,b){return = b&&h(/chrome\/[123456789]/i)&&!h(/chrome\/18/)?!1:a?(d.isInt(a)&&!/\./.te= st(a)&&(a=3D""+a+"."),h(RegExp("Android\\s*"+a,"i"))):h(/Android/i)};d.is= Mobile=3Dfunction(){return = d.isIOS()||d.isAndroid()};d.isIframe=3Dfunction(){return = window.frameElement&&"IFRAME"=3D=3D=3Dwindow.frameElement.nodeName}; d.saveCookie=3Dfunction(a,b){document.cookie=3D"jwplayer."+a+"\x3d"+b+"; = path\x3d/"};d.getCookies=3Dfunction(){for(var = a=3D{},b=3Ddocument.cookie.split("; "),d=3D0;d<b.length;d++){var = c=3Db[d].split("\x3d");0=3D=3D=3Dc[0].indexOf("jwplayer.")&&(a[c[0].subst= ring(9,c[0].length)]=3Dc[1])}return a};d.isInt=3Dfunction(a){return = 0=3D=3D=3DparseFloat(a)%1};d.typeOf=3Dfunction(a){if(null=3D=3D=3Da)retur= n"null";var b=3Dtypeof = a;return"object"=3D=3D=3Db&&e.isArray(a)?"array":b};d.translateEventRespo= nse=3Dfunction(a,b){var = c=3Dd.extend({},b);if(a=3D=3D=3Df.events.JWPLAYER_FULLSCREEN&& !c.fullscreen)c.fullscreen=3D"true"=3D=3D=3Dc.message,delete = c.message;else if("object"=3D=3D=3Dtypeof c.data){var e=3Dc.data;delete = c.data;c=3Dd.extend(c,e)}else"object"=3D=3D=3Dtypeof = c.metadata&&d.deepReplaceKeyName(c.metadata,["__dot__","__spc__","__dsh__= ","__default__"],["."," = ","-","default"]);d.foreach(["position","duration","offset"],function(a,b= ){c[b]&&(c[b]=3DMath.round(1E3*c[b])/1E3)});return = c};d.flashVersion=3Dfunction(){if(d.isAndroid())return 0;var = a=3Dnavigator.plugins,b;try{if("undefined"!=3D=3Da&&(b=3Da["Shockwave = Flash"]))return parseInt(b.description.replace(/\D+(\d+)\..*/, "$1"),10)}catch(c){}if("undefined"!=3D=3Dtypeof = window.ActiveXObject)try{if(b=3Dnew = window.ActiveXObject("ShockwaveFlash.ShockwaveFlash"))return = parseInt(b.GetVariable("$version").split(" = ")[1].split(",")[0],10)}catch(e){}return = 0};d.getScriptPath=3Dfunction(a){for(var = b=3Ddocument.getElementsByTagName("script"),d=3D0;d<b.length;d++){var = c=3Db[d].src;if(c&&0<=3Dc.indexOf(a))return = c.substr(0,c.indexOf(a))}return""};d.deepReplaceKeyName=3Dfunction(a,b,c)= {switch(f.utils.typeOf(a)){case "array":for(var = e=3D0;e<a.length;e++)a[e]=3D f.utils.deepReplaceKeyName(a[e],b,c);break;case = "object":d.foreach(a,function(d,j){var e;if(b instanceof Array&&c = instanceof Array){if(b.length!=3D=3Dc.length)return;e=3Db}else = e=3D[b];for(var = h=3Dd,r=3D0;r<e.length;r++)h=3Dh.replace(RegExp(b[r],"g"),c[r]);a[h]=3Df.= utils.deepReplaceKeyName(j,b,c);d!=3D=3Dh&&delete a[d]})}return a};var = n=3Dd.pluginPathType=3D{ABSOLUTE:0,RELATIVE:1,CDN:2};d.getPluginPathType=3D= function(a){if("string"=3D=3D=3Dtypeof a){a=3Da.split("?")[0];var = b=3Da.indexOf("://");if(0<b)return n.ABSOLUTE;var c=3Da.indexOf("/"); a=3Dd.extension(a);return = 0>b&&0>c&&(!a||!isNaN(a))?n.CDN:n.RELATIVE}};d.getPluginName=3Dfunction(a= ){return = a.replace(/^(.*\/)?([^-]*)-?.*\.(swf|js)$/,"$2")};d.getPluginVersion=3Dfu= nction(a){return = a.replace(/[^-]*-?([^\.]*).*$/,"$1")};d.isYouTube=3Dfunction(a,b){return"= youtube"=3D=3D=3Db||/^(http|\/\/).*(youtube\.com|youtu\.be)\/.+/.test(a)}= ;d.youTubeID=3Dfunction(a){try{return/v[=3D\/]([^?&]*)|youtu\.be\/([^?]*)= |^([\w-]*)$/i.exec(a).slice(1).join("").replace("?","")}catch(b){return""= }};d.isRtmp=3Dfunction(a,b){return 0=3D=3D=3D a.indexOf("rtmp")||"rtmp"=3D=3D=3Db};d.foreach=3Dfunction(a,b){var = c,e;for(c in = a)"function"=3D=3D=3Dd.typeOf(a.hasOwnProperty)?a.hasOwnProperty(c)&&(e=3D= a[c],b(c,e)):(e=3Da[c],b(c,e))};d.isHTTPS=3Dfunction(){return = 0=3D=3D=3Dwindow.location.href.indexOf("https")};d.repo=3Dfunction(){var = a=3D"http://p.jwpcdn.com/"+f.version.split(/\W/).splice(0,2).join("/")+"/= ";try{d.isHTTPS()&&(a=3Da.replace("http://","https://ssl."))}catch(b){}re= turn a};d.versionCheck=3Dfunction(a){a=3D("0"+a).split(/\W/);var = b=3Df.version.split(/\W/),d=3DparseFloat(a[0]), c=3DparseFloat(b[0]);return = d>c||d=3D=3D=3Dc&&parseFloat("0"+a[1])>parseFloat(b[1])?!1:!0};d.ajax=3Df= unction(a,b,c,e){var = h,j=3D!1;0<a.indexOf("#")&&(a=3Da.replace(/#.*$/,""));if(a&&0<=3Da.indexO= f("://")&&a.split("/")[2]!=3D=3Dwindow.location.href.split("/")[2]&&d.exi= sts(window.XDomainRequest))h=3Dnew = window.XDomainRequest,h.onload=3Dk(h,a,b,c,e),h.ontimeout=3Dh.onprogress=3D= function(){},h.timeout=3D5E3;else = if(d.exists(window.XMLHttpRequest)){var f=3Dh=3Dnew = window.XMLHttpRequest,n=3Da;h.onreadystatechange=3Dfunction(){if(4=3D=3D=3D= f.readyState)switch(f.status){case 200:k(f, n,b,c,e)();break;case 404:c("File not found",n,f)}}}else return = c&&c("",a,h),h;h.overrideMimeType&&h.overrideMimeType("text/xml");var = r=3Da,q=3Dh;h.onerror=3Dfunction(){c("Error loading = file",r,q)};try{h.open("GET",a,!0)}catch(u){j=3D!0}setTimeout(function(){= if(j)c&&c(a,a,h);else try{h.send()}catch(b){c&&c(a,a,h)}},0);return = h};d.parseXML=3Dfunction(a){var b;try{if(window.DOMParser){if(b=3D(new = window.DOMParser).parseFromString(a,"text/xml"),b.childNodes&&b.childNode= s.length&&"parsererror"=3D=3D=3Db.childNodes[0].firstChild.nodeName)retur= n}else b=3D new = window.ActiveXObject("Microsoft.XMLDOM"),b.async=3D"false",b.loadXML(a)}c= atch(c){return}return b};d.between=3Dfunction(a,b,c){return = Math.max(Math.min(a,c),b)};d.seconds=3Dfunction(a){if(e.isNumber(a))retur= n a;a=3Da.replace(",",".");var = b=3Da.split(":"),c=3D0;"s"=3D=3D=3Da.slice(-1)?c=3DparseFloat(a):"m"=3D=3D= =3Da.slice(-1)?c=3D60*parseFloat(a):"h"=3D=3D=3Da.slice(-1)?c=3D3600*pars= eFloat(a):1<b.length?(c=3DparseFloat(b[b.length-1]),c+=3D60*parseFloat(b[= b.length-2]),3=3D=3D=3Db.length&&(c+=3D3600*parseFloat(b[b.length-3]))):c= =3DparseFloat(a); return c};d.serialize=3Dfunction(a){return = null=3D=3D=3Da?null:"true"=3D=3D=3Da.toString().toLowerCase()?!0:"false"=3D= =3D=3Da.toString().toLowerCase()?!1:isNaN(Number(a))||5<a.length||0=3D=3D= =3Da.length?a:Number(a)};d.addClass=3Dfunction(a,b){var = c=3De.isString(a.className)?a.className.split(" = "):[],h=3De.isArray(b)?b:b.split(" = ");e.each(h,function(a){e.contains(c,a)||c.push(a)});a.className=3Dd.trim= (c.join(" "))};d.removeClass=3Dfunction(a,b){var = c=3De.isString(a.className)?a.className.split(" = "):[],h=3De.isArray(b)?b:b.split(" ");a.className=3D d.trim(e.difference(c,h).join(" = "))};d.indexOf=3De.indexOf;d.noop=3Dfunction(){};d.canCast=3Dfunction(){v= ar = a=3Df.cast;return!(!a||!e.isFunction(a.available)||!a.available())}}(jwpl= ayer),function(f){function c(a){var = b=3Ddocument.createElement("style");a&&b.appendChild(document.createTextN= ode(a));b.type=3D"text/css";document.getElementsByTagName("head")[0].appe= ndChild(b);return b}function k(a,c,d){if(!b.exists(c))return"";d=3Dd?" = !important":"";return"string"=3D=3D=3Dtypeof = c&&isNaN(c)?/png|gif|jpe?g/i.test(c)&&0>c.indexOf("url")? "url("+c+")":c+d:0=3D=3D=3Dc||"z-index"=3D=3D=3Da||"opacity"=3D=3D=3Da?""= +c+d:/color/i.test(a)?"#"+b.pad(c.toString(16).replace(/^0x/i,""),6)+d:Ma= th.ceil(c)+"px"+d}function d(a,b){for(var c=3D0;c<a.length;c++){var = d=3Da[c],g,e;if(void 0!=3D=3Dd&&null!=3D=3Dd)for(g in = b){e=3Dg;e=3De.split("-");for(var = h=3D1;h<e.length;h++)e[h]=3De[h].charAt(0).toUpperCase()+e[h].slice(1);e=3D= e.join("");d.style[e]!=3D=3Db[g]&&(d.style[e]=3Db[g])}}}function = e(b){var c=3Dh[b].sheet,d,g,e;if(c){d=3Dc.cssRules;g=3Dm[b];e=3Db;var = f=3Da[e];e+=3D" { ";for(var n in f)e+=3Dn+": "+f[n]+ "; ";e+=3D"}";if(void = 0!=3D=3Dg&&g<d.length&&d[g].selectorText=3D=3D=3Db){if(e=3D=3D=3Dd[g].css= Text)return;c.deleteRule(g)}else = g=3Dd.length,m[b]=3Dg;try{c.insertRule(e,g)}catch(k){}}}var = b=3Df.utils,h=3D{},n,a=3D{},g=3Dnull,m=3D{};b.cssKeyframes=3Dfunction(a,b= ){var d=3Dh.keyframes;d||(d=3Dc(),h.keyframes=3Dd);var = d=3Dd.sheet,e=3D"@keyframes "+a+" { "+b+" = }";try{d.insertRule(e,d.cssRules.length)}catch(g){}e=3De.replace(/(keyfra= mes|transform)/g,"-webkit-$1");try{d.insertRule(e,d.cssRules.length)}catc= h(f){}};var p=3Db.css=3Dfunction(b,d,f){a[b]||(a[b]=3D {});var m=3Da[b];f=3Df||!1;var r=3D!1,p,u;for(p in = d)u=3Dk(p,d[p],f),""!=3D=3Du?u!=3D=3Dm[p]&&(m[p]=3Du,r=3D!0):void = 0!=3D=3Dm[p]&&(delete = m[p],r=3D!0);if(r){if(!h[b]){d=3Dn&&n.sheet&&n.sheet.cssRules&&n.sheet.cs= sRules.length||0;if(!n||5E4<d)n=3Dc();h[b]=3Dn}null!=3D=3Dg?g.styleSheets= [b]=3Da[b]:e(b)}};p.style=3Dfunction(a,b,c){if(!(void = 0=3D=3D=3Da||null=3D=3D=3Da)){void 0=3D=3D=3Da.length&&(a=3D[a]);var = e=3D{},h;for(h in = b)e[h]=3Dk(h,b[h]);if(null!=3D=3Dg&&!c){b=3D(b=3Da.__cssRules)||{};for(va= r f in = e)b[f]=3De[f];a.__cssRules=3Db;0>g.elements.indexOf(a)&&g.elements.push(a= )}else d(a, e)}};p.block=3Dfunction(a){null=3D=3D=3Dg&&(g=3D{id:a,styleSheets:{},elem= ents:[]})};p.unblock=3Dfunction(a){if(g&&(!a||g.id=3D=3D=3Da)){for(var b = in = g.styleSheets)e(b);for(a=3D0;a<g.elements.length;a++)b=3Dg.elements[a],d(= b,b.__cssRules);g=3Dnull}};b.clearCss=3Dfunction(b){for(var c in = a)0<=3Dc.indexOf(b)&&delete a[c];for(var d in = h)0<=3Dd.indexOf(b)&&e(d)};b.transform=3Dfunction(a,b){var = c=3D{};b=3Db||"";c.transform=3Db;c["-webkit-transform"]=3Db;c["-ms-transf= orm"]=3Db;c["-moz-transform"]=3Db;c["-o-transform"]=3Db;"string"=3D=3D=3D= typeof a?p(a,c): p.style(a,c)};b.dragStyle=3Dfunction(a,b){p(a,{"-webkit-user-select":b,"-= moz-user-select":b,"-ms-user-select":b,"-webkit-user-drag":b,"user-select= ":b,"user-drag":b})};b.transitionStyle=3Dfunction(a,b){navigator.userAgen= t.match(/5\.\d(\.\d)? = safari/i)||p(a,{"-webkit-transition":b,"-moz-transition":b,"-o-transition= ":b,transition:b})};b.rotate=3Dfunction(a,c){b.transform(a,"rotate("+c+"d= eg)")};b.rgbHex=3Dfunction(a){a=3DString(a).replace("#","");3=3D=3D=3Da.l= ength&&(a=3Da[0]+a[0]+a[1]+a[1]+a[2]+a[2]);return"#"+a.substr(-6)}; b.hexToRgba=3Dfunction(a,b){var = c=3D"rgb",d=3D[parseInt(a.substr(1,2),16),parseInt(a.substr(3,2),16),pars= eInt(a.substr(5,2),16)];void = 0!=3D=3Db&&100!=3D=3Db&&(c+=3D"a",d.push(b/100));return = c+"("+d.join(",")+")"}}(jwplayer),function(f){var = c=3Df.foreach,k=3D{mp4:"video/mp4",ogg:"video/ogg",oga:"audio/ogg",vorbis= :"audio/ogg",webm:"video/webm",aac:"audio/mp4",mp3:"audio/mpeg",hls:"appl= ication/vnd.apple.mpegurl"},d=3D{mp4:k.mp4,f4v:k.mp4,m4v:k.mp4,mov:k.mp4,= m4a:k.aac,f4a:k.aac,aac:k.aac,mp3:k.mp3,ogv:k.ogg,ogg:k.ogg,oga:k.vorbis,= vorbis:k.vorbis,webm:k.webm,m3u8:k.hls,m3u:k.hls,hls:k.hls},e=3Df.extensi= onmap=3D{};c(d,function(b,c){e[b]=3D{html5:c}});c({flv:"video",f4v:"video= ",mov:"video",m4a:"video",m4v:"video",mp4:"video",aac:"video",f4a:"video"= ,mp3:"sound",smil:"rtmp",m3u8:"hls",hls:"hls"},function(b,c){e[b]||(e[b]=3D= {});e[b].flash=3Dc});e.types=3Dk;e.mimeType=3Dfunction(b){var = d;c(k,function(c,a){!d&&a=3D=3Db&&(d=3Dc)});return = d};e.extType=3Dfunction(b){return = e.mimeType(d[b])}}(jwplayer.utils),function(f){var = c=3Df.loaderstatus=3D{NEW:0,LOADING:1, ERROR:2,COMPLETE:3},k=3Ddocument;f.scriptloader=3Dfunction(d){function = e(b){a=3Dc.ERROR;n.sendEvent(h.ERROR,b)}function = b(b){a=3Dc.COMPLETE;n.sendEvent(h.COMPLETE,b)}var = h=3Djwplayer.events,n=3Df.extend(this,new = h.eventdispatcher),a=3Dc.NEW;this.load=3Dfunction(){if(a=3D=3Dc.NEW){var = g=3Df.scriptloader.loaders[d];if(g&&(a=3Dg.getStatus(),2>a)){g.addEventLi= stener(h.ERROR,e);g.addEventListener(h.COMPLETE,b);return}var = n=3Dk.createElement("script");n.addEventListener?(n.onload=3Db,n.onerror=3D= e):n.readyState&&(n.onreadystatechange=3D function(a){("loaded"=3D=3Dn.readyState||"complete"=3D=3Dn.readyState)&&b= (a)});k.getElementsByTagName("head")[0].appendChild(n);n.src=3Dd;a=3Dc.LO= ADING;f.scriptloader.loaders[d]=3Dthis}};this.getStatus=3Dfunction(){retu= rn = a}};f.scriptloader.loaders=3D{}}(jwplayer.utils),function(f){f.trim=3Dfun= ction(c){return = c.replace(/^\s+|\s+$/g,"")};f.pad=3Dfunction(c,f,d){for(d||(d=3D"0");c.le= ngth<f;)c=3Dd+c;return c};f.xmlAttribute=3Dfunction(c,f){for(var = d=3D0;d<c.attributes.length;d++)if(c.attributes[d].name&&c.attributes[d].= name.toLowerCase()=3D=3D=3D f.toLowerCase())return = c.attributes[d].value.toString();return""};f.extension=3Dfunction(c){if(!= c||"rtmp"=3D=3D=3Dc.substr(0,4))return"";var = f;f=3D-1<c.indexOf("(format\x3dm3u8-")?"m3u8":!1;if(f)return = f;c=3Dc.substring(c.lastIndexOf("/")+1,c.length).split("?")[0].split("#")= [0];if(-1<c.lastIndexOf("."))return = c.substr(c.lastIndexOf(".")+1,c.length).toLowerCase()};f.stringToColor=3D= function(c){c=3Dc.replace(/(#|0x)?([0-9A-F]{3,6})$/gi,"$2");3=3D=3D=3Dc.l= ength&&(c=3Dc.charAt(0)+c.charAt(0)+c.charAt(1)+c.charAt(1)+c.charAt(2)+ c.charAt(2));return parseInt(c,16)}}(jwplayer.utils),function(f){var = c=3D"touchmove",k=3D"touchstart";f.touch=3Dfunction(d){function = e(d){d.type=3D=3D=3Dk?(a=3D!0,m=3Dh(l.DRAG_START,d)):d.type=3D=3D=3Dc?a&&= (p||(b(l.DRAG_START,d,m),p=3D!0),b(l.DRAG,d)):(a&&(p?b(l.DRAG_END,d):(d.c= ancelBubble=3D!0,b(l.TAP,d))),a=3Dp=3D!1,m=3Dnull)}function = b(a,b,c){if(g[a]&&(b.preventManipulation&&b.preventManipulation(),b.preve= ntDefault&&b.preventDefault(),b=3Dc?c:h(a,b)))g[a](b)}function = h(a,b){var c=3Dnull;b.touches&&b.touches.length?c=3Db.touches[0]: b.changedTouches&&b.changedTouches.length&&(c=3Db.changedTouches[0]);if(!= c)return null;var = d=3Dn.getBoundingClientRect(),c=3D{type:a,target:n,x:c.pageX-window.pageX= Offset-d.left,y:c.pageY,deltaX:0,deltaY:0};a!=3D=3Dl.TAP&&m&&(c.deltaX=3D= c.x-m.x,c.deltaY=3Dc.y-m.y);return c}var = n=3Dd,a=3D!1,g=3D{},m=3Dnull,p=3D!1,l=3Df.touchEvents;document.addEventLi= stener(c,e);document.addEventListener("touchend",function(c){a&&p&&b(l.DR= AG_END,c);a=3Dp=3D!1;m=3Dnull});document.addEventListener("touchcancel",e= );d.addEventListener(k,e);d.addEventListener("touchend", e);this.addEventListener=3Dfunction(a,b){g[a]=3Db};this.removeEventListen= er=3Dfunction(a){delete g[a]};return = this}}(jwplayer.utils),function(f){f.touchEvents=3D{DRAG:"jwplayerDrag",D= RAG_START:"jwplayerDragStart",DRAG_END:"jwplayerDragEnd",TAP:"jwplayerTap= "}}(jwplayer.utils),function(f){f.key=3Dfunction(c){var = k,d,e;this.edition=3Dfunction(){return e&&e.getTime()<(new = Date).getTime()?"invalid":k};this.token=3Dfunction(){return = d};f.exists(c)||(c=3D"");try{c=3Df.tea.decrypt(c,"36QXq4W@GSBV^teR");var = b=3Dc.split("/"); (k=3Db[0])?/^(free|pro|premium|enterprise|ads)$/i.test(k)?(d=3Db[1],b[2]&= &0<parseInt(b[2])&&(e=3Dnew = Date,e.setTime(String(b[2])))):k=3D"invalid":k=3D"free"}catch(h){k=3D"inv= alid"}}}(jwplayer.utils),function(f){var = c=3Df.tea=3D{};c.encrypt=3Dfunction(e,b){if(0=3D=3De.length)return"";var = h=3Dc.strToLongs(d.encode(e));1>=3Dh.length&&(h[1]=3D0);for(var = f=3Dc.strToLongs(d.encode(b).slice(0,16)),a=3Dh.length,g=3Dh[a-1],m=3Dh[0= ],p,l=3DMath.floor(6+52/a),j=3D0;0<l--;){j+=3D2654435769;p=3Dj>>>2&3;for(= var t=3D0;t<a;t++)m=3Dh[(t+1)%a],g=3D(g>>>5^m<<2)+(m>>> 3^g<<4)^(j^m)+(f[t&3^p]^g),g=3Dh[t]+=3Dg}h=3Dc.longsToStr(h);return = k.encode(h)};c.decrypt=3Dfunction(e,b){if(0=3D=3De.length)return"";for(va= r = h=3Dc.strToLongs(k.decode(e)),f=3Dc.strToLongs(d.encode(b).slice(0,16)),a= =3Dh.length,g=3Dh[a-1],m=3Dh[0],p,l=3D2654435769*Math.floor(6+52/a);0!=3D= l;){p=3Dl>>>2&3;for(var = j=3Da-1;0<=3Dj;j--)g=3Dh[0<j?j-1:a-1],g=3D(g>>>5^m<<2)+(m>>>3^g<<4)^(l^m)= +(f[j&3^p]^g),m=3Dh[j]-=3Dg;l-=3D2654435769}h=3Dc.longsToStr(h);h=3Dh.rep= lace(/\0+$/,"");return d.decode(h)};c.strToLongs=3Dfunction(c){for(var = b=3DArray(Math.ceil(c.length/ 4)),d=3D0;d<b.length;d++)b[d]=3Dc.charCodeAt(4*d)+(c.charCodeAt(4*d+1)<<8= )+(c.charCodeAt(4*d+2)<<16)+(c.charCodeAt(4*d+3)<<24);return = b};c.longsToStr=3Dfunction(c){for(var = b=3DArray(c.length),d=3D0;d<c.length;d++)b[d]=3DString.fromCharCode(c[d]&= 255,c[d]>>>8&255,c[d]>>>16&255,c[d]>>>24&255);return b.join("")};var = k=3D{code:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789= +/\x3d",encode:function(c,b){var = h,f,a,g,m=3D[],p=3D"",l,j,t=3Dk.code;j=3D("undefined"=3D=3Dtypeof = b?0:b)?d.encode(c):c;l=3Dj.length%3;if(0<l)for(;3> l++;)p+=3D"\x3d",j+=3D"\x00";for(l=3D0;l<j.length;l+=3D3)h=3Dj.charCodeAt= (l),f=3Dj.charCodeAt(l+1),a=3Dj.charCodeAt(l+2),g=3Dh<<16|f<<8|a,h=3Dg>>1= 8&63,f=3Dg>>12&63,a=3Dg>>6&63,g&=3D63,m[l/3]=3Dt.charAt(h)+t.charAt(f)+t.= charAt(a)+t.charAt(g);m=3Dm.join("");return = m=3Dm.slice(0,m.length-p.length)+p},decode:function(c,b){b=3D"undefined"=3D= =3Dtypeof b?!1:b;var = h,f,a,g,m,p=3D[],l,j=3Dk.code;l=3Db?d.decode(c):c;for(var = t=3D0;t<l.length;t+=3D4)h=3Dj.indexOf(l.charAt(t)),f=3Dj.indexOf(l.charAt= (t+1)),g=3Dj.indexOf(l.charAt(t+2)),m=3Dj.indexOf(l.charAt(t+3)), a=3Dh<<18|f<<12|g<<6|m,h=3Da>>>16&255,f=3Da>>>8&255,a&=3D255,p[t/4]=3DStr= ing.fromCharCode(h,f,a),64=3D=3Dm&&(p[t/4]=3DString.fromCharCode(h,f)),64= =3D=3Dg&&(p[t/4]=3DString.fromCharCode(h));g=3Dp.join("");return = b?d.decode(g):g}},d=3D{encode:function(c){c=3Dc.replace(/[\u0080-\u07ff]/= g,function(b){b=3Db.charCodeAt(0);return = String.fromCharCode(192|b>>6,128|b&63)});return = c=3Dc.replace(/[\u0800-\uffff]/g,function(b){b=3Db.charCodeAt(0);return = String.fromCharCode(224|b>>12,128|b>>6&63,128|b&63)})},decode:function(c)= {c=3Dc.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, function(b){b=3D(b.charCodeAt(0)&15)<<12|(b.charCodeAt(1)&63)<<6|b.charCo= deAt(2)&63;return String.fromCharCode(b)});return = c=3Dc.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g,function(b){b=3D(b.charCo= deAt(0)&31)<<6|b.charCodeAt(1)&63;return = String.fromCharCode(b)})}}}(jwplayer.utils),function(f){f.events=3D{COMPL= ETE:"COMPLETE",ERROR:"ERROR",API_READY:"jwplayerAPIReady",JWPLAYER_READY:= "jwplayerReady",JWPLAYER_FULLSCREEN:"jwplayerFullscreen",JWPLAYER_RESIZE:= "jwplayerResize",JWPLAYER_ERROR:"jwplayerError",JWPLAYER_SETUP_ERROR:"jwp= layerSetupError", JWPLAYER_MEDIA_BEFOREPLAY:"jwplayerMediaBeforePlay",JWPLAYER_MEDIA_BEFORE= COMPLETE:"jwplayerMediaBeforeComplete",JWPLAYER_COMPONENT_SHOW:"jwplayerC= omponentShow",JWPLAYER_COMPONENT_HIDE:"jwplayerComponentHide",JWPLAYER_ME= DIA_BUFFER:"jwplayerMediaBuffer",JWPLAYER_MEDIA_BUFFER_FULL:"jwplayerMedi= aBufferFull",JWPLAYER_MEDIA_ERROR:"jwplayerMediaError",JWPLAYER_MEDIA_LOA= DED:"jwplayerMediaLoaded",JWPLAYER_MEDIA_COMPLETE:"jwplayerMediaComplete"= ,JWPLAYER_MEDIA_SEEK:"jwplayerMediaSeek",JWPLAYER_MEDIA_TIME:"jwplayerMed= iaTime", JWPLAYER_MEDIA_VOLUME:"jwplayerMediaVolume",JWPLAYER_MEDIA_META:"jwplayer= MediaMeta",JWPLAYER_MEDIA_MUTE:"jwplayerMediaMute",JWPLAYER_AUDIO_TRACKS:= "jwplayerAudioTracks",JWPLAYER_AUDIO_TRACK_CHANGED:"jwplayerAudioTrackCha= nged",JWPLAYER_MEDIA_LEVELS:"jwplayerMediaLevels",JWPLAYER_MEDIA_LEVEL_CH= ANGED:"jwplayerMediaLevelChanged",JWPLAYER_CAPTIONS_CHANGED:"jwplayerCapt= ionsChanged",JWPLAYER_CAPTIONS_LIST:"jwplayerCaptionsList",JWPLAYER_CAPTI= ONS_LOADED:"jwplayerCaptionsLoaded",JWPLAYER_PLAYER_STATE:"jwplayerPlayer= State", state:{BUFFERING:"BUFFERING",IDLE:"IDLE",PAUSED:"PAUSED",PLAYING:"PLAYING= "},JWPLAYER_PLAYLIST_LOADED:"jwplayerPlaylistLoaded",JWPLAYER_PLAYLIST_IT= EM:"jwplayerPlaylistItem",JWPLAYER_PLAYLIST_COMPLETE:"jwplayerPlaylistCom= plete",JWPLAYER_DISPLAY_CLICK:"jwplayerViewClick",JWPLAYER_PROVIDER_CLICK= :"jwplayerProviderClick",JWPLAYER_VIEW_TAB_FOCUS:"jwplayerViewTabFocus",J= WPLAYER_CONTROLS:"jwplayerViewControls",JWPLAYER_USER_ACTION:"jwplayerUse= rAction",JWPLAYER_INSTREAM_CLICK:"jwplayerInstreamClicked",JWPLAYER_INSTR= EAM_DESTROYED:"jwplayerInstreamDestroyed", JWPLAYER_AD_TIME:"jwplayerAdTime",JWPLAYER_AD_ERROR:"jwplayerAdError",JWP= LAYER_AD_CLICK:"jwplayerAdClicked",JWPLAYER_AD_COMPLETE:"jwplayerAdComple= te",JWPLAYER_AD_IMPRESSION:"jwplayerAdImpression",JWPLAYER_AD_COMPANIONS:= "jwplayerAdCompanions",JWPLAYER_AD_SKIPPED:"jwplayerAdSkipped",JWPLAYER_A= D_PLAY:"jwplayerAdPlay",JWPLAYER_AD_PAUSE:"jwplayerAdPause",JWPLAYER_AD_M= ETA:"jwplayerAdMeta",JWPLAYER_CAST_AVAILABLE:"jwplayerCastAvailable",JWPL= AYER_CAST_SESSION:"jwplayerCastSession",JWPLAYER_CAST_AD_CHANGED:"jwplaye= rCastAdChanged"}}(jwplayer), function(f){var = c=3Df.utils;f.events.eventdispatcher=3Dfunction(k,d){function = e(b,a,d){if(b)for(var e=3D0;e<b.length;e++){var = h=3Db[e];if(h){null!=3D=3Dh.count&&0=3D=3D=3D--h.count&&delete = b[e];try{h.listener(a)}catch(f){c.log('Error handling "'+d+'" event = listener ['+e+"]: "+f.toString(),h.listener,a)}}}}var = b,h;this.resetEventListeners=3Dfunction(){b=3D{};h=3D[]};this.resetEventL= isteners();this.addEventListener=3Dfunction(d,a,g){try{c.exists(b[d])||(b= [d]=3D[]),"string"=3D=3D=3Dc.typeOf(a)&&(a=3D(new Function("return = "+a))()),b[d].push({listener:a, count:g||null})}catch(e){c.log("error",e)}return!1};this.removeEventListe= ner=3Dfunction(d,a){var g;if(b[d]){try{if(void = 0=3D=3D=3Da){b[d]=3D[];return}for(g=3D0;g<b[d].length;g++)if(b[d][g].list= ener.toString()=3D=3D=3Da.toString()){b[d].splice(g,1);break}}catch(e){c.= log("error",e)}return!1}};this.addGlobalListener=3Dfunction(b,a){try{"str= ing"=3D=3D=3Dc.typeOf(b)&&(b=3D(new Function("return = "+b))()),h.push({listener:b,count:a||null})}catch(d){c.log("error",d)}ret= urn!1};this.removeGlobalListener=3Dfunction(b){if(b){try{for(var a=3D h.length;a--;)h[a].listener.toString()=3D=3D=3Db.toString()&&h.splice(a,1= )}catch(d){c.log("error",d)}return!1}};this.sendEvent=3Dfunction(n,a){c.e= xists(a)||(a=3D{});c.extend(a,{id:k,version:f.version,type:n});d&&c.log(n= ,a);e(b[n],a,n);e(h,a,n)}}}(window.jwplayer),function(f){var = c=3D{},k=3D{};f.plugins=3Dfunction(){};f.plugins.loadPlugins=3Dfunction(d= ,e){k[d]=3Dnew f.plugins.pluginloader(new f.plugins.model(c),e);return = k[d]};f.plugins.registerPlugin=3Dfunction(d,e,b,h){var = n=3Df.utils.getPluginName(d);c[n]||(c[n]=3Dnew f.plugins.plugin(d)); c[n].registerPlugin(d,e,b,h)}}(jwplayer),function(f){f.plugins.model=3Dfu= nction(c){this.addPlugin=3Dfunction(k){var = d=3Df.utils.getPluginName(k);c[d]||(c[d]=3Dnew = f.plugins.plugin(k));return c[d]};this.getPlugins=3Dfunction(){return = c}}}(jwplayer),function(f){var = c=3Djwplayer.utils,k=3Djwplayer.events;f.pluginmodes=3D{FLASH:0,JAVASCRIP= T:1,HYBRID:2};f.plugin=3Dfunction(d){function = e(){switch(c.getPluginPathType(d)){case c.pluginPathType.ABSOLUTE:return = d;case c.pluginPathType.RELATIVE:return = c.getAbsolutePath(d,window.location.href)}} function = b(){p=3DsetTimeout(function(){n=3Dc.loaderstatus.COMPLETE;l.sendEvent(k.C= OMPLETE)},1E3)}function = h(){n=3Dc.loaderstatus.ERROR;l.sendEvent(k.ERROR,{url:d})}var = n=3Dc.loaderstatus.NEW,a,g,m,p,l=3Dnew = k.eventdispatcher;c.extend(this,l);this.load=3Dfunction(){if(n=3D=3D=3Dc.= loaderstatus.NEW)if(0<d.lastIndexOf(".swf"))a=3Dd,n=3Dc.loaderstatus.COMP= LETE,l.sendEvent(k.COMPLETE);else = if(c.getPluginPathType(d)=3D=3D=3Dc.pluginPathType.CDN)n=3Dc.loaderstatus= .COMPLETE,l.sendEvent(k.COMPLETE);else{n=3Dc.loaderstatus.LOADING;var = g=3Dnew c.scriptloader(e()); g.addEventListener(k.COMPLETE,b);g.addEventListener(k.ERROR,h);g.load()}}= ;this.registerPlugin=3Dfunction(b,d,e,h){p&&(clearTimeout(p),p=3Dvoid = 0);m=3Dd;e&&h?(a=3Dh,g=3De):"string"=3D=3D=3Dtypeof = e?a=3De:"function"=3D=3D=3Dtypeof = e?g=3De:!e&&!h&&(a=3Db);n=3Dc.loaderstatus.COMPLETE;l.sendEvent(k.COMPLET= E)};this.getStatus=3Dfunction(){return = n};this.getPluginName=3Dfunction(){return = c.getPluginName(d)};this.getFlashPath=3Dfunction(){if(a)switch(c.getPlugi= nPathType(a)){case c.pluginPathType.ABSOLUTE:return a;case = c.pluginPathType.RELATIVE:return 0< d.lastIndexOf(".swf")?c.getAbsolutePath(a,window.location.href):c.getAbso= lutePath(a,e())}return null};this.getJS=3Dfunction(){return = g};this.getTarget=3Dfunction(){return = m};this.getPluginmode=3Dfunction(){if("undefined"!=3D=3Dtypeof = a&&"undefined"!=3D=3Dtypeof g)return = f.pluginmodes.HYBRID;if("undefined"!=3D=3Dtypeof a)return = f.pluginmodes.FLASH;if("undefined"!=3D=3Dtypeof g)return = f.pluginmodes.JAVASCRIPT};this.getNewInstance=3Dfunction(a,b,c){return = new g(a,b,c)};this.getURL=3Dfunction(){return = d}}}(jwplayer.plugins),function(f){var c=3D f.utils,k=3Df.events,d=3Df._,e=3Dc.foreach;f.plugins.pluginloader=3Dfunct= ion(b,h){function = f(){p||(p=3D!0,m=3Dc.loaderstatus.COMPLETE,v.sendEvent(k.COMPLETE))}funct= ion a(){(!l||0=3D=3D=3Dd.keys(l).length)&&f();if(!p){var = a=3Db.getPlugins();t=3Dd.after(j,f);c.foreach(l,function(b){b=3Dc.getPlug= inName(b);var d=3Da[b];b=3Dd.getJS();var = e=3Dd.getTarget(),d=3Dd.getStatus();d=3D=3D=3Dc.loaderstatus.LOADING||d=3D= =3D=3Dc.loaderstatus.NEW||(b&&!c.versionCheck(e)&&v.sendEvent(k.ERROR,{me= ssage:"Incompatible player version"}),t())})}}function = g(a){v.sendEvent(k.ERROR, {message:"File not found"});a.url&&c.log("File not found",a.url);t()}var = m=3Dc.loaderstatus.NEW,p=3D!1,l=3Dh,j=3Dd.size(l),t,v=3Dnew = k.eventdispatcher;c.extend(this,v);this.setupPlugins=3Dfunction(a,d,g){va= r = h=3D{length:0,plugins:{}},f=3D0,j=3D{},m=3Db.getPlugins();e(d.plugins,fun= ction(b,e){var = n=3Dc.getPluginName(b),k=3Dm[n],l=3Dk.getFlashPath(),p=3Dk.getJS(),v=3Dk.= getURL();l&&(h.plugins[l]=3Dc.extend({},e),h.plugins[l].pluginmode=3Dk.ge= tPluginmode(),h.length++);try{if(p&&d.plugins&&d.plugins[v]){var = t=3Ddocument.createElement("div"); t.id=3Da.id+"_"+n;t.style.position=3D"absolute";t.style.top=3D0;t.style.z= Index=3Df+10;j[n]=3Dk.getNewInstance(a,c.extend({},d.plugins[v]),t);f++;a= .onReady(g(j[n],t,!0));a.onResize(g(j[n],t))}}catch(M){c.log("ERROR: = Failed to load "+n+".")}});a.plugins=3Dj;return = h};this.load=3Dfunction(){if(!(c.exists(h)&&"object"!=3D=3Dc.typeOf(h))){= m=3Dc.loaderstatus.LOADING;e(h,function(d){c.exists(d)&&(d=3Db.addPlugin(= d),d.addEventListener(k.COMPLETE,a),d.addEventListener(k.ERROR,g))});var = d=3Db.getPlugins();e(d,function(a,b){b.load()})}a()}; this.destroy=3Dfunction(){v&&(v.resetEventListeners(),v=3Dnull)};this.plu= ginFailed=3Dg;this.getStatus=3Dfunction(){return = m}}}(jwplayer),function(f){f.parsers=3D{localName:function(c){return = c?c.localName?c.localName:c.baseName?c.baseName:"":""},textContent:functi= on(c){return = c?c.textContent?f.utils.trim(c.textContent):c.text?f.utils.trim(c.text):"= ":""},getChildNode:function(c,f){return = c.childNodes[f]},numChildren:function(c){return = c.childNodes?c.childNodes.length:0}}}(jwplayer),function(f){var = c=3Df.parsers; (c.jwparser=3Dfunction(){}).parseEntry=3Dfunction(k,d){for(var = e=3D[],b=3D[],h=3Df.utils.xmlAttribute,n=3D0;n<k.childNodes.length;n++){v= ar a=3Dk.childNodes[n];if("jwplayer"=3D=3Da.prefix){var = g=3Dc.localName(a);"source"=3D=3Dg?(delete = d.sources,e.push({file:h(a,"file"),"default":h(a,"default"),label:h(a,"la= bel"),type:h(a,"type")})):"track"=3D=3Dg?(delete = d.tracks,b.push({file:h(a,"file"),"default":h(a,"default"),kind:h(a,"kind= "),label:h(a,"label")})):(d[g]=3Df.utils.serialize(c.textContent(a)),"fil= e"=3D=3Dg&&d.sources&&delete d.sources)}d.file|| (d.file=3Dd.link)}if(e.length){d.sources=3D[];for(n=3D0;n<e.length;n++)0<= e[n].file.length&&(e[n]["default"]=3D"true"=3D=3De[n]["default"]?!0:!1,e[= n].label.length||delete = e[n].label,d.sources.push(e[n]))}if(b.length){d.tracks=3D[];for(n=3D0;n<b= .length;n++)0<b[n].file.length&&(b[n]["default"]=3D"true"=3D=3Db[n]["defa= ult"]?!0:!1,b[n].kind=3D!b[n].kind.length?"captions":b[n].kind,b[n].label= .length||delete b[n].label,d.tracks.push(b[n]))}return = d}}(jwplayer),function(f){var = c=3Djwplayer.utils,k=3Dc.xmlAttribute,d=3Df.localName,e=3Df.textContent, b=3Df.numChildren,h=3Df.mediaparser=3Dfunction(){};h.parseGroup=3Dfunctio= n(f,a){var = g,m,p=3D[];for(m=3D0;m<b(f);m++)if(g=3Df.childNodes[m],"media"=3D=3Dg.pre= fix&&d(g))switch(d(g).toLowerCase()){case = "content":k(g,"duration")&&(a.duration=3Dc.seconds(k(g,"duration")));0<b(= g)&&(a=3Dh.parseGroup(g,a));k(g,"url")&&(a.sources||(a.sources=3D[]),a.so= urces.push({file:k(g,"url"),type:k(g,"type"),width:k(g,"width"),label:k(g= ,"label")}));break;case "title":a.title=3De(g);break;case = "description":a.description=3De(g);break;case "guid":a.mediaid=3D e(g);break;case "thumbnail":a.image||(a.image=3Dk(g,"url"));break;case = "group":h.parseGroup(g,a);break;case "subtitle":var = l=3D{};l.file=3Dk(g,"url");l.kind=3D"captions";if(0<k(g,"lang").length){v= ar j=3Dl;g=3Dk(g,"lang");var = t=3D{zh:"Chinese",nl:"Dutch",en:"English",fr:"French",de:"German",it:"Ita= lian",ja:"Japanese",pt:"Portuguese",ru:"Russian",es:"Spanish"};g=3Dt[g]?t= [g]:g;j.label=3Dg}p.push(l)}a.hasOwnProperty("tracks")||(a.tracks=3D[]);f= or(m=3D0;m<p.length;m++)a.tracks.push(p[m]);return = a}}(jwplayer.parsers),function(f){function c(b){for(var a=3D {},c=3D0;c<b.childNodes.length;c++){var = e=3Db.childNodes[c],p=3Dh(e);if(p)switch(p.toLowerCase()){case = "enclosure":a.file=3Dk.xmlAttribute(e,"url");break;case = "title":a.title=3Dd(e);break;case "guid":a.mediaid=3Dd(e);break;case = "pubdate":a.date=3Dd(e);break;case = "description":a.description=3Dd(e);break;case = "link":a.link=3Dd(e);break;case = "category":a.tags=3Da.tags?a.tags+d(e):d(e)}}a=3Df.mediaparser.parseGroup= (b,a);a=3Df.jwparser.parseEntry(b,a);return new = jwplayer.playlist.item(a)}var k=3Djwplayer.utils,d=3Df.textContent, e=3Df.getChildNode,b=3Df.numChildren,h=3Df.localName;f.rssparser=3D{};f.r= ssparser.parse=3Dfunction(d){for(var a=3D[],g=3D0;g<b(d);g++){var = f=3De(d,g);if("channel"=3D=3Dh(f).toLowerCase())for(var = k=3D0;k<b(f);k++){var = l=3De(f,k);"item"=3D=3Dh(l).toLowerCase()&&a.push(c(l))}}return = a}}(jwplayer.parsers),function(f){var = c=3Df.utils,k=3Df._;f.playlist=3Dfunction(c){var = b=3D[];c=3Dk.isArray(c)?c:[c];k.each(c,function(c){b.push(new = f.playlist.item(c))});return = b};f.playlist.filterPlaylist=3Dfunction(e,b){var = h=3D[];k.each(e,function(e){e=3Dc.extend({}, e);e.sources=3Dd(e.sources,!1,b);if(e.sources.length){for(var = a=3D0;a<e.sources.length;a++)e.sources[a].label=3De.sources[a].label||a.t= oString();h.push(e)}});return h};var = d=3Df.playlist.filterSources=3Dfunction(d,b,h){var = n,a=3D[],g=3Db?f.embed.flashCanPlay:f.embed.html5CanPlay;if(d)return = k.each(d,function(b){if(!b||!b.file)b=3Dvoid 0;else{var = d=3Dc.trim(""+b.file),e=3Db.type;e||(e=3Dc.extension(d),e=3Dc.extensionma= p.extType(e));b=3Dc.extend({},b,{file:d,type:e})}b&&g(b.file,b.type,h)&&(= n=3Dn||b.type,b.type=3D=3D=3Dn&&a.push(b))}), a}}(jwplayer),function(f){var c=3Df.item=3Dfunction(k){var = d=3Djwplayer.utils,e=3Dd.extend({},c.defaults,k),b,h;e.tracks=3Dk&&d.exis= ts(k.tracks)?k.tracks:[];0=3D=3D=3De.sources.length&&(e.sources=3D[new = f.source(e)]);for(b=3D0;b<e.sources.length;b++)h=3De.sources[b]["default"= ],e.sources[b]["default"]=3Dh?"true"=3D=3Dh.toString():!1,e.sources[b]=3D= new = f.source(e.sources[b]);if(e.captions&&!d.exists(k.tracks)){for(k=3D0;k<e.= captions.length;k++)e.tracks.push(e.captions[k]);delete = e.captions}for(b=3D0;b<e.tracks.length;b++)e.tracks[b]=3D new f.track(e.tracks[b]);return e};c.defaults=3D{description:void = 0,image:void 0,mediaid:void 0,title:void = 0,sources:[],tracks:[]}}(jwplayer.playlist),function(f){var = c=3Df.utils,k=3Df.events,d=3Df.parsers;f.playlist.loader=3Dfunction(){fun= ction e(a){try{var b=3Da.responseXML.childNodes;a=3D"";for(var = c=3D0;c<b.length&&!(a=3Db[c],8!=3D=3Da.nodeType);c++);"xml"=3D=3D=3Dd.loc= alName(a)&&(a=3Da.nextSibling);if("rss"!=3D=3Dd.localName(a))h("Not a = valid RSS feed");else{var e=3Dnew = f.playlist(d.rssparser.parse(a));n.sendEvent(k.JWPLAYER_PLAYLIST_LOADED, {playlist:e})}}catch(l){h()}}function b(a){h(a.match(/invalid/i)?"Not a = valid RSS feed":"")}function = h(a){n.sendEvent(k.JWPLAYER_ERROR,{message:a?a:"Error loading = file"})}var n=3Dnew = k.eventdispatcher;c.extend(this,n);this.load=3Dfunction(a){c.ajax(a,e,b)}= }}(jwplayer),function(f){var c=3Djwplayer.utils,k=3D{file:void = 0,label:void 0,type:void 0,"default":void 0};f.source=3Dfunction(d){var = e=3Dc.extend({},k);c.foreach(k,function(b){c.exists(d[b])&&(e[b]=3Dd[b],d= elete d[b])});e.type&&0<e.type.indexOf("/")&&(e.type=3D c.extensionmap.mimeType(e.type));"m3u8"=3D=3De.type&&(e.type=3D"hls");"sm= il"=3D=3De.type&&(e.type=3D"rtmp");return = e}}(jwplayer.playlist),function(f){var c=3Djwplayer.utils,k=3D{file:void = 0,label:void 0,kind:"captions","default":!1};f.track=3Dfunction(d){var = e=3Dc.extend({},k);d||(d=3D{});c.foreach(k,function(b){c.exists(d[b])&&(e= [b]=3Dd[b],delete d[b])});return = e}}(jwplayer.playlist),function(f){function c(b,c,a){var = d=3Db.style;d.backgroundColor=3D"#000";d.color=3D"#FFF";d.width=3Dk.style= Dimension(a.width);d.height=3Dk.styleDimension(a.height); d.display=3D"table";d.opacity=3D1;a=3Ddocument.createElement("p");d=3Da.s= tyle;d.verticalAlign=3D"middle";d.textAlign=3D"center";d.display=3D"table= -cell";d.font=3D"15px/20px Arial, Helvetica, = sans-serif";a.innerHTML=3Dc.replace(":",":\x3cbr\x3e");b.innerHTML=3D"";b= .appendChild(a)}var = k=3Df.utils,d=3Df.events,e=3Df._,b=3Df.embed=3Dfunction(h){function = n(){if(!y){var = c=3Dj.playlist;if(e.isArray(c)){if(0=3D=3D=3Dc.length){m();return}if(1=3D= =3D=3Dc.length&&(!c[0].sources||0=3D=3D=3Dc[0].sources.length||!c[0].sour= ces[0].file)){m();return}}if(!x)if(e.isString(c))w=3D new = f.playlist.loader,w.addEventListener(d.JWPLAYER_PLAYLIST_LOADED,function(= a){j.playlist=3Da.playlist;x=3D!1;n()}),w.addEventListener(d.JWPLAYER_ERR= OR,function(a){x=3D!1;m(a)}),x=3D!0,w.load(j.playlist);else = if(u.getStatus()=3D=3D=3Dk.loaderstatus.COMPLETE){for(c=3D0;c<j.modes.len= gth;c++){var g=3Dj.modes[c],r=3Dg.type;if(r&&b[r]){var = l=3Dk.extend({},j),g=3Dnew b[r](D,g,l,u,h);if(g.supportsConfig())return = g.addEventListener(d.ERROR,a),g.embed(),k.css("object.jwswf, = .jwplayer:focus",{outline:"none"}),k.css(".jw-tab-focus:focus", {outline:"solid 2px #0B7EF4"}),h}}j.fallback?(c=3D"No suitable players = found and fallback enabled",p(c,!0),k.log(c),new = b.download(D,j,m)):(c=3D"No suitable players found and fallback = disabled",p(c,!1),k.log(c),D.parentNode.replaceChild(C,D))}}}function = a(a){l(r+a.message)}function = g(a){h.dispatchEvent(d.JWPLAYER_ERROR,{message:"Could not load plugin: = "+a.message})}function m(a){a&&a.message?l("Error loading playlist: = "+a.message):l(r+"No playable sources found")}function = p(a,b){clearTimeout(F);F=3DsetTimeout(function(){h.dispatchEvent(d.JWPLAY= ER_SETUP_ERROR, {message:a,fallback:b})},0)}function = l(a){y||(j.fallback?(y=3D!0,c(D,a,j),p(a,!0)):p(a,!1))}var j=3Dnew = b.config(h.config),t=3Dj.width,v=3Dj.height,r=3D"Error loading player: = ",q=3Ddocument.getElementById(h.id),u=3Df.plugins.loadPlugins(h.id,j.plug= ins),w,x=3D!1,y=3D!1,F=3D-1,C=3Dnull;j.fallbackDiv&&(C=3Dj.fallbackDiv,de= lete = j.fallbackDiv);j.id=3Dh.id;j.aspectratio?h.config.aspectratio=3Dj.aspectr= atio:delete h.config.aspectratio;var = E=3Dh;k.foreach(j.events,function(a,b){var = c=3DE[a];"function"=3D=3D=3Dtypeof c&&c.call(E,b)});var = D=3Ddocument.createElement("div"); D.id=3Dq.id;D.style.width=3D0<t.toString().indexOf("%")?t:t+"px";D.style.= height=3D0<v.toString().indexOf("%")?v:v+"px";q.parentNode.replaceChild(D= ,q);this.embed=3Dfunction(){y||(u.addEventListener(d.COMPLETE,n),u.addEve= ntListener(d.ERROR,g),u.load())};this.destroy=3Dfunction(){u&&(u.destroy(= ),u=3Dnull);w&&(w.resetEventListeners(),w=3Dnull)};this.errorScreen=3Dl;r= eturn this};f.embed.errorScreen=3Dc}(jwplayer),function(f){function = c(b){if(b.playlist)for(var = c=3D0;c<b.playlist.length;c++)b.playlist[c]=3Dnew e(b.playlist[c]); else{var = f=3D{};d.foreach(e.defaults,function(a){k(b,f,a)});f.sources||(b.levels?(= f.sources=3Db.levels,delete = b.levels):(c=3D{},k(b,c,"file"),k(b,c,"type"),f.sources=3Dc.file?[c]:[]))= ;b.playlist=3D[new e(f)]}}function = k(b,c,e){d.exists(b[e])&&(c[e]=3Db[e],delete b[e])}var = d=3Df.utils,e=3Df.playlist.item;(f.embed.config=3Dfunction(b){var = e=3D{fallback:!0,height:270,primary:"html5",width:480,base:b.base?b.base:= d.getScriptPath("jwplayer.js"),aspectratio:""};b=3Dd.extend({},e,f.defaul= ts,b);var e=3D{type:"html5",src:b.base+"jwplayer.html5.js"}, k=3D{type:"flash",src:b.base+"jwplayer.flash.swf"};b.modes=3D"flash"=3D=3D= =3Db.primary?[k,e]:[e,k];b.listbar&&(b.playlistsize=3Db.listbar.size,b.pl= aylistposition=3Db.listbar.position,b.playlistlayout=3Db.listbar.layout);= b.flashplayer&&(k.src=3Db.flashplayer);b.html5player&&(e.src=3Db.html5pla= yer);c(b);k=3Db.aspectratio;if("string"!=3D=3Dtypeof = k||!d.exists(k))e=3D0;else{var = a=3Dk.indexOf(":");-1=3D=3D=3Da?e=3D0:(e=3DparseFloat(k.substr(0,a)),k=3D= parseFloat(k.substr(a+1)),e=3D0>=3De||0>=3Dk?0:100*(k/e)+"%")}-1=3D=3D=3D= b.width.toString().indexOf("%")? delete b.aspectratio:e?b.aspectratio=3De:delete b.aspectratio;return = b}).addConfig=3Dfunction(b,e){c(e);return = d.extend(b,e)}}(jwplayer),function(f){var = c=3Df.utils,k=3Df.utils.css;f.embed.download=3Dfunction(d,e,b){function = f(a,b,c){a=3Ddocument.createElement(a);b&&(a.className=3D"jwdownload"+b);= c&&c.appendChild(a);return a}var = n=3Dc.extend({},e),a,g=3Dn.width?n.width:480,m=3Dn.height?n.height:320,p;= e=3De.logo?e.logo:{prefix:c.repo(),file:"logo.png",margin:10};var = l,j,t,v,r,q;j=3Dn.playlist;n=3D["mp4","aac","mp3"];if(j&& j.length){t=3Dj[0];v=3Dt.sources;for(j=3D0;j<v.length;j++)r=3Dv[j],r.file= &&(q=3Dr.type||c.extensionmap.extType(c.extension(r.file)),0<=3Dc.indexOf= (n,q)?(a=3Dr.file,p=3Dt.image):c.isYouTube(r.file,q)&&(l=3Dr.file));a?(b=3D= a,d&&(a=3Df("a","display",d),f("div","icon",a),f("div","logo",a),b&&a.set= Attribute("href",c.getAbsolutePath(b))),b=3D"#"+d.id+" = .jwdownload",d.style.width=3D"",d.style.height=3D"",k(b+"display",{width:= c.styleDimension(Math.max(320,g)),height:c.styleDimension(Math.max(180,m)= ),background:"black center no-repeat "+ (p?"url("+p+")":""),backgroundSize:"contain",position:"relative",border:"= none",display:"block"}),k(b+"display = div",{position:"absolute",width:"100%",height:"100%"}),k(b+"logo",{top:e.= margin+"px",right:e.margin+"px",background:"top right no-repeat = url("+e.prefix+e.file+")"}),k(b+"icon",{background:"center no-repeat = url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAA= AGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAgNJREFUeNrs28lqwkAYB/CZ= qNVDDj2r6FN41QeIy8Fe+gj6BL275Q08u9FbT8ZdwVfotSBYEPUkxFOoks4EKiJdaDuTjMn3w= WBO0V/+sySR8SNSqVRKIR8qaXHkzlqS9jCfzzWcTCYp9hF5o+59sVjsiRzcegSckFzcjT+ruN= 80TeSlAjCAAXzdJSGPFXRpAAMYwACGZQkSdhG4WCzehMNhqV6vG6vVSrirKVEw66YoSqDb7cq= lUilE8JjHd/y1MQefVzqdDmiaJpfLZWHgXMHn8F6vJ1cqlVAkEsGuAn83J4gAd2RZymQygX6/= L1erVQt+9ZPWb+CDwcCC2zXGJaewl/DhcHhK3DVj+KfKZrMWvFarcYNLomAv4aPRSFZVlTlcS= PA5fDweW/BoNIqFnKV53JvncjkLns/n/cLdS+92O7RYLLgsKfv9/t8XlDn4eDyiw+HA9Jyz2e= yt0+kY2+3WFC5hluej0Ha7zQQq9PPwdDq1Et1sNsx/nFBgCqWJ8oAK1aUptNVqcYWewE4nahf= U0YQnk4ntUEfGMIU2m01HoLaCKbTRaDgKtaVLk9tBYaBcE/6Artdr4RZ5TB6/dC+9iIe/WgAM= YADDpAUJAxjAAAYwgGFZgoS/AtNNTF7Z2bL0BYPBV3Jw5xFwwWcYxgtBP5OkE8i9G7aWGOOCr= uvauwADALMLMEbKf4SdAAAAAElFTkSuQmCC)"})): l?(e=3Dl,d=3Df("iframe","",d),d.src=3D"http://www.youtube.com/embed/"+c.y= ouTubeID(e),d.width=3Dg,d.height=3Dm,d.style.border=3D"none"):b()}}}(jwpl= ayer),function(f){var = c=3Df.utils,k=3Df.events,d=3D{};(f.embed.flash=3Dfunction(b,h,n,a,g){func= tion m(a,b,c){var = d=3Ddocument.createElement("param");d.setAttribute("name",b);d.setAttribu= te("value",c);a.appendChild(d)}function p(a,b,c){return = function(){try{c&&document.getElementById(g.id+"_wrapper").appendChild(b)= ;var d=3Ddocument.getElementById(g.id).getPluginConfig("display"); "function"=3D=3D=3Dtypeof = a.resize&&a.resize(d.width,d.height);b.style.left=3Dd.x;b.style.top=3Dd.h= }catch(e){}}}function l(a){if(!a)return{};var = b=3D{},d=3D[];c.foreach(a,function(a,e){var = g=3Dc.getPluginName(a);d.push(a);c.foreach(e,function(a,c){b[g+"."+a]=3Dc= })});b.plugins=3Dd.join(",");return b}var j=3Dnew = f.events.eventdispatcher,t=3Dc.flashVersion();c.extend(this,j);this.embed= =3Dfunction(){n.id=3Dg.id;if(10>t)return = j.sendEvent(k.ERROR,{message:"Flash version must be 10.0 or = greater"}),!1;var e,f,q=3Dg.config.listbar,u=3D c.extend({},n);if(b.id+"_wrapper"=3D=3D=3Db.parentNode.id)e=3Ddocument.ge= tElementById(b.id+"_wrapper");else{e=3Ddocument.createElement("div");f=3D= document.createElement("div");f.style.display=3D"none";f.id=3Db.id+"_aspe= ct";e.id=3Db.id+"_wrapper";e.style.position=3D"relative";e.style.display=3D= "block";e.style.width=3Dc.styleDimension(u.width);e.style.height=3Dc.styl= eDimension(u.height);if(g.config.aspectratio){var = w=3DparseFloat(g.config.aspectratio);f.style.display=3D"block";f.style.ma= rginTop=3Dg.config.aspectratio;e.style.height=3D "auto";e.style.display=3D"inline-block";q&&("bottom"=3D=3D=3Dq.position?f= .style.paddingBottom=3Dq.size+"px":"right"=3D=3D=3Dq.position&&(f.style.m= arginBottom=3D-1*q.size*(w/100)+"px"))}b.parentNode.replaceChild(e,b);e.a= ppendChild(b);e.appendChild(f)}e=3Da.setupPlugins(g,u,p);0<e.length?c.ext= end(u,l(e.plugins)):delete u.plugins;"undefined"!=3D=3Dtypeof = u["dock.position"]&&"false"=3D=3D=3Du["dock.position"].toString().toLower= Case()&&(u.dock=3Du["dock.position"],delete = u["dock.position"]);e=3Du.wmode||(u.height&&40>=3Du.height?"transparent":= "opaque");f=3D"height width modes events primary base fallback = volume".split(" ");for(q=3D0;q<f.length;q++)delete = u[f[q]];f=3Dc.getCookies();c.foreach(f,function(a,b){"undefined"=3D=3D=3D= typeof = u[a]&&(u[a]=3Db)});f=3Dwindow.location.href.split("/");f.splice(f.length-= 1,1);f=3Df.join("/");u.base=3Df+"/";d[b.id]=3Du;c.isMSIE()?(f=3D'\x3cobje= ct classid\x3d"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" " = width\x3d"100%" height\x3d"100%"id\x3d"'+b.id+'" name\x3d"'+b.id+'" = tabindex\x3d0""\x3e',f+=3D'\x3cparam name\x3d"movie" value\x3d"'+ h.src+'"\x3e',f+=3D'\x3cparam name\x3d"allowfullscreen" = value\x3d"true"\x3e\x3cparam name\x3d"allowscriptaccess" = value\x3d"always"\x3e',f+=3D'\x3cparam name\x3d"seamlesstabbing" = value\x3d"true"\x3e',f+=3D'\x3cparam name\x3d"wmode" = value\x3d"'+e+'"\x3e',f+=3D'\x3cparam name\x3d"bgcolor" = value\x3d"#000000"\x3e',f+=3D"\x3c/object\x3e",b.outerHTML=3Df,e=3Ddocume= nt.getElementById(b.id)):(f=3Ddocument.createElement("object"),f.setAttri= bute("type","application/x-shockwave-flash"),f.setAttribute("data",h.src)= ,f.setAttribute("width", "100%"),f.setAttribute("height","100%"),f.setAttribute("bgcolor","#000000= "),f.setAttribute("id",b.id),f.setAttribute("name",b.id),f.className=3D"j= wswf",m(f,"allowfullscreen","true"),m(f,"allowscriptaccess","always"),m(f= ,"seamlesstabbing","true"),m(f,"wmode",e),b.parentNode.replaceChild(f,b),= e=3Df);g.config.aspectratio&&(e.style.position=3D"absolute");g.container=3D= e;g.setPlayer(e,"flash")};this.supportsConfig=3Dfunction(){if(t)if(n){if(= "string"=3D=3D=3Dc.typeOf(n.playlist))return!0;try{var = a=3Dn.playlist[0].sources; if("undefined"=3D=3D=3Dtypeof a)return!0;for(var = b=3D0;b<a.length;b++)if(a[b].file&&e(a[b].file,a[b].type))return!0}catch(= d){}}else return!0;return!1}}).getVars=3Dfunction(b){return d[b]};var = e=3Df.embed.flashCanPlay=3Dfunction(b,d){if(c.isYouTube(b,d)||c.isRtmp(b,= d)||"hls"=3D=3D=3Dd)return!0;var = e=3Dc.extensionmap[d?d:c.extension(b)];return!e?!1:!!e.flash}}(jwplayer),= function(f){var = c=3Df.utils,k=3Dc.extensionmap,d=3Df.events;f.embed.html5=3Dfunction(e,b,= h,k,a){function g(a,b,c){return function(){try{var = d=3Ddocument.querySelector("#"+ e.id+" .jwmain");c&&d.appendChild(b);"function"=3D=3D=3Dtypeof = a.resize&&(a.resize(d.clientWidth,d.clientHeight),setTimeout(function(){a= .resize(d.clientWidth,d.clientHeight)},400));b.left=3Dd.style.left;b.top=3D= d.style.top}catch(f){}}}function m(a){p.sendEvent(a.type,{message:"HTML5 = player not found"})}var p=3Dthis,l=3Dnew = d.eventdispatcher;c.extend(p,l);p.embed=3Dfunction(){if(f.html5){k.setupP= lugins(a,h,g);e.innerHTML=3D"";var j=3Df.utils.extend({},h);delete = j.volume;j=3Dnew = f.html5.player(j);a.container=3Ddocument.getElementById(a.id); a.setPlayer(j,"html5")}else j=3Dnew = c.scriptloader(b.src),j.addEventListener(d.ERROR,m),j.addEventListener(d.= COMPLETE,p.embed),j.load()};p.supportsConfig=3Dfunction(){if(f.vid.canPla= yType)try{if("string"=3D=3D=3Dc.typeOf(h.playlist))return!0;for(var = a=3Dh.playlist[0].sources,b=3D0;b<a.length;b++)if(f.embed.html5CanPlay(a[= b].file,a[b].type,h.androidhls))return!0}catch(d){}return!1}};f.embed.htm= l5CanPlay=3Dfunction(d,b,h){if(null!=3D=3Dnavigator.userAgent.match(/Blac= kBerry/i)||c.isIE(9))return!1;if(c.isYouTube(d,b))return!0; var = n=3Dc.extension(d);b=3Db||k.extType(n);if("hls"=3D=3D=3Db)if(h){h=3Dc.isA= ndroidNative;if(h(2)||h(3)||h("4.0"))return!1;if(c.isAndroid())return!0}e= lse = if(c.isAndroid())return!1;if(c.isRtmp(d,b))return!1;d=3Dk[b]||k[n];if(!d|= |d.flash&&!d.html5)return!1;var = a;a:if(d=3Dd.html5){try{a=3D!!f.vid.canPlayType(d);break = a}catch(g){}a=3D!1}else a=3D!0;return a}}(jwplayer),function(f){var = c=3Df.embed,k=3Df.embed.html5CanPlay,d=3Df.utils,e=3Df._,b=3D/\.(js|swf)$= /;f.cast=3Df.cast||{};f.embed=3Dd.extend(function(e){function = k(){w=3D"Adobe SiteCatalyst Error: Could not find Media Module"} var = a=3Dd.repo(),g=3Dd.extend({},f.defaults),m=3Dd.extend({},g,e.config),p=3D= e.config,l=3Dm.plugins,j=3Dm.analytics,t=3Da+"jwpsrv.js",v=3Da+"sharing.j= s",r=3Da+"related.js",q=3Da+"gapro.js",g=3Df.key?f.key:g.key,u=3D(new = f.utils.key(g)).edition(),w,l=3Dl?l:{};"ads"=3D=3Du&&m.advertising&&(b.te= st(m.advertising.client)?l[m.advertising.client]=3Dm.advertising:l[a+m.ad= vertising.client+".js"]=3Dm.advertising);delete = p.advertising;p.key=3Dg;m.analytics&&b.test(m.analytics.client)&&(t=3Dm.a= nalytics.client);delete p.analytics;j&&!("ads"=3D=3D=3Du|| "enterprise"=3D=3D=3Du)&&delete = j.enabled;if("free"=3D=3Du||!j||!1!=3D=3Dj.enabled)l[t]=3Dj?j:{};delete = l.sharing;delete l.related;switch(u){case "ads":case = "enterprise":if(p.sitecatalyst)try{window.s&&window.s.hasOwnProperty("Med= ia")?new f.embed.sitecatalyst(e):k()}catch(x){k()}case = "premium":m.related&&(b.test(m.related.client)&&(r=3Dm.related.client),l[= r]=3Dm.related),m.ga&&(b.test(m.ga.client)&&(q=3Dm.ga.client),l[q]=3Dm.ga= );case = "pro":m.sharing&&(b.test(m.sharing.client)&&(v=3Dm.sharing.client),l[v]=3D= m.sharing),m.skin&& (p.skin=3Dm.skin.replace(/^(beelden|bekle|five|glow|modieus|roundster|sto= rmtrooper|vapor)$/i,d.repo()+"skins/$1.xml"))}p.plugins=3Dl;e.config=3Dp;= e=3Dnew c(e);w&&e.errorScreen(w);return = e},f.embed);f.embed.html5CanPlay=3Dfunction(b,c){var a;var = d=3D{file:b,type:c};a=3Df.html5&&f.html5.chooseProvider?f.html5.choosePro= vider(d)!=3D=3Df.html5.VideoProvider:e.any(f.unregisteredProviders,functi= on(a){return a.supports(d)});return = a?!0:k.apply(this,arguments)}}(jwplayer),function(f){var = c=3Djwplayer.utils;f.sitecatalyst=3Dfunction(f){function d(b){a.debug&& c.log(b)}function = e(a){a=3Da.split("/");a=3Da[a.length-1];a=3Da.split("?");return = a[0]}function b(){if(!j){j=3D!0;var a=3Dn.getPosition();d("stop: "+m+" : = "+a);s.Media.stop(m,a)}}function h(){t||(b(),t=3D!0,d("close: = "+m),s.Media.close(m),v=3D!0,l=3D0)}var = n=3Df,a=3Dc.extend({},n.config.sitecatalyst),g=3D{onPlay:function(){if(!v= ){var a=3Dn.getPosition();j=3D!1;d("play: "+m+" : = "+a);s.Media.play(m,a)}},onPause:b,onBuffer:b,onIdle:h,onPlaylistItem:fun= ction(b){try{v=3D!0;h();l=3D0;var = d;if(a.mediaName)d=3Da.mediaName;else{var = f=3Dn.getPlaylistItem(b.index); d=3Df.title?f.title:f.file?e(f.file):f.sources&&f.sources.length?e(f.sour= ces[0].file):""}m=3Dd;p=3Da.playerName?a.playerName:n.id}catch(g){c.log(g= )}},onTime:function(){if(v){var = a=3Dn.getDuration();if(-1=3D=3Da)return;t=3Dj=3Dv=3D!1;d("open: "+m+" : = "+a+" : "+p);s.Media.open(m,a,p);d("play: "+m+" : = 0");s.Media.play(m,0)}a=3Dn.getPosition();if(3<=3DMath.abs(a-l)){var = b=3Dl;d("seek: "+b+" to "+a);d("stop: "+m+" : = "+b);s.Media.stop(m,b);d("play: "+m+" : = "+a);s.Media.play(m,a)}l=3Da},onComplete:h},m,p,l,j=3D!0,t=3D!0,v;c.forea= ch(g, function(a){n[a](g[a])})}}(jwplayer.embed),function(f){function = c(b,c){b[c]&&(b[c]=3Dk.getAbsolutePath(b[c]))}var = k=3Df.utils,d=3Df._,e=3Dwindow.location.href;f.cast.setupCastConfig=3Dfun= ction(b,d){var = f=3Dk.extend({},b.config);f.cast=3Dk.extend({pageUrl:e},d);for(var = a=3D"base autostart controls fallback fullscreen width height = mobilecontrols modes playlistlayout playlistposition playlistsize = primary stretching sharing related ga skin logo listbar".split(" = "),g=3Da.length;g--;)delete f[a[g]];a=3Df.plugins;delete f.plugins; for(var m in a)if(a.hasOwnProperty(m)){var = p=3Da[m];if(p.client&&(/[\.\/]/.test(p.client)&&c(p,"client"),-1<p.client= .indexOf("vast"))){g=3Df;p=3Dk.extend({},p);p.client=3D"vast";delete = p.companiondiv;if(p.schedule){var l=3Dvoid 0;for(l in = p.schedule)p.schedule.hasOwnProperty(l)&&c(p.schedule[l].ad||p.schedule[l= ],"tag")}c(p,"tag");g.advertising=3Dp}}b.position&&(f.position=3Db.positi= on);0<b.item&&(f.item=3Db.item);f.captionLabel=3Dk.getCookies().captionLa= bel;return f};f.cast.setupFlashCastConfig=3Dfunction(b){var = c=3Db.config; c.playlist=3Db.getPlaylist();var = e;(e=3Dd.find(c.plugins,function(a,b){return = 0<b.indexOf("vast.js")}))?(e.client=3D"vast",e=3D{advertising:e}):e=3D{};= c=3Dd.pick(c,"id captionLabel cast key playlist repeat".split(" = "));c.cast.pageUrl=3Dwindow.location.href;k.extend(c,{captionLabel:k.getC= ookies().captionLabel,volume:b.getVolume(),mute:b.getMute(),id:b.id,posit= ion:b.getPosition(),item:b.getPlaylistIndex()},e);return = c}}(window.jwplayer),function(f,c){function = k(a,b){a[b]&&(a[b]=3De.getAbsolutePath(a[b]))}var d=3Dc.cast, e=3Dc.utils,b=3Dc.events,h=3Db.state,n=3D{};d.NS=3D"urn:x-cast:com.longta= ilvideo.jwplayer";d.debug=3D!1;d.availability=3Dnull;d.available=3Dfuncti= on(a){a=3Da||d.availability;var = b=3Df.chrome,c=3D"available";b.cast&&b.cast.ReceiverAvailability&&(c=3Db.= cast.ReceiverAvailability.AVAILABLE);return = a=3D=3D=3Dc};d.controller=3Dfunction(a,g){var m,p;function = l(a,b){d.log("send command",a,b);var c=3D{command:a};void = 0!=3D=3Db&&(c.args=3Db);z.sendMessage(d.NS,c,M,function(a){d.log("error = message",a);"Invalid namespace"=3D=3D=3Da.description&&w()})}function = j(a){a=3D !!d.available(a.availability);N.available!=3D=3Da&&(N.available=3Da,q(b.J= WPLAYER_CAST_AVAILABLE))}function t(a){d.log("existing = session",a);!z&&!H&&(H=3Da.session,H.addMessageListener(d.NS,v))}function= v(e,f){var j=3DJSON.parse(f);if(!j)throw"Message not proper = JSON";if(j.reconcile){H.removeMessageListener(d.NS,v);var = h=3Dj.diff,k=3DH;if(!h.id||!j.appid||!j.pageUrl)h.id=3Dc().id,j.appid=3DG= .appid,j.pageUrl=3DO,H=3Dz=3Dnull;h.id=3D=3D=3Da.id&&(j.appid=3D=3D=3DG.a= ppid&&j.pageUrl=3D=3D=3DO)&&(z||(a.jwInstreamState()&&a.jwInstreamDestroy= (!0), y(k),g.sendEvent(b.JWPLAYER_PLAYER_STATE,{oldstate:h.oldstate,newstate:h.= newstate})),J(j));H=3Dnull}}function r(a){N.active=3D!!a;a=3DN;var = c;c=3Dz&&z.receiver?z.receiver.friendlyName:"";a.deviceName=3Dc;q(b.JWPLA= YER_CAST_SESSION,{})}function q(a){var = b=3De.extend({},N);g.sendEvent(a,b)}function u(a){var = b=3Df.chrome;a.code!=3D=3Db.cast.ErrorCode.CANCEL&&(d.log("Cast Session = Error:",a,z),a.code=3D=3D=3Db.cast.ErrorCode.SESSION_ERROR&&w())}function= w(){z?(E(),z.stop(C,x)):C()}function x(a){d.error("Cast Session Stop = error:", a,z);C()}function y(j){d.log("Session = started:",j);z=3Dj;z.addMessageListener(d.NS,D);z.addUpdateListener(F);a.= jwPause(!0);a.jwSetFullscreen(!1);L=3Dg.getVideo();m=3Dg.volume;p=3Dg.mut= e;B=3Dnew = d.provider(l);B.init();g.setVideoProvider(B);a.jwPlay=3Dfunction(a){!1=3D= =3D=3Da?B.pause():B.play()};a.jwPause=3Dfunction(b){a.jwPlay(!!b)};a.jwLo= ad=3Dfunction(a){"number"=3D=3D=3De.typeOf(a)&&g.setItem(a);B.load(a)};a.= jwPlaylistItem=3Dfunction(a){"number"=3D=3D=3De.typeOf(a)&&g.setItem(a);B= .playlistItem(a)};a.jwPlaylistNext=3Dfunction(){a.jwPlaylistItem(g.item+ 1)};a.jwPlaylistPrev=3Dfunction(){a.jwPlaylistItem(g.item-1)};a.jwSetVolu= me=3Dfunction(a){e.exists(a)&&(a=3DMath.min(Math.max(0,a),100)|0,P(a)&&(a= =3DMath.max(0,Math.min(a/100,1)),z.setReceiverVolumeLevel(a,K,function(a)= {d.error("set volume = error",a);K()})))};a.jwSetMute=3Dfunction(a){e.exists(a)||(a=3D!I.mute);Q= (a)&&z.setReceiverMuted(!!a,K,function(a){d.error("set muted = error",a);K()})};a.jwGetVolume=3Dfunction(){return = I.volume|0};a.jwGetMute=3Dfunction(){return!!I.mute};a.jwIsBeforePlay=3Df= unction(){return!1};var k=3D a.jwSetCurrentCaptions;a.jwSetCurrentCaptions=3Dfunction(a){k(a);B.sendCo= mmand("caption",a)};a.jwSkipAd=3Dfunction(a){A&&(A.skipAd(a),a=3DA.getAdM= odel(),a.complete=3D!0,g.sendEvent(b.JWPLAYER_CAST_AD_CHANGED,a))};a.jwCl= ickAd=3Dfunction(d){if(A&&300<A.timeSinceClick()&&(A.clickAd(d),g.state!=3D= =3Dh.PAUSED)){var = e=3D{tag:d.tag};d.sequence&&(e.sequence=3Dd.sequence);d.podcount&&(e.podc= ount=3Dd.podcount);c(a.id).dispatchEvent(b.JWPLAYER_AD_CLICK,e);f.open(d.= clickthrough)}};a.jwPlayAd=3Da.jwPauseAd=3Da.jwSetControls=3Da.jwForceSta= te=3D a.jwReleaseState=3Da.jwSetFullscreen=3Da.jwDetachMedia=3Da.jwAttachMedia=3D= M;var = n=3Dc(a.id).plugins;n.vast&&n.vast.jwPauseAd!=3D=3DM&&(R=3D{jwPlayAd:n.va= st.jwPlayAd,jwPauseAd:n.vast.jwPauseAd},n.vast.jwPlayAd=3Dn.vast.jwPauseA= d=3DM);K();r(!0);j!=3D=3DH&&B.setup(S(),g)}function F(a){d.log("Cast = Session = status",a);a?K():(B.sendEvent(b.JWPLAYER_PLAYER_STATE,{oldstate:g.state,n= ewstate:h.BUFFERING}),C())}function = C(){d.log("_sessionStopped");z&&(E(),z=3Dnull);if(L){delete = a.jwSkipAd;delete a.jwClickAd;a.initializeAPI();var f=3D c(a.id).plugins;f.vast&&e.extend(f.vast,R);g.volume=3Dm;g.mute=3Dp;g.setV= ideoProvider(L);g.duration=3D0;B&&(B.destroy(),B=3Dnull);A&&(A.destroy(),= A=3Dnull);g.state!=3D=3Dh.IDLE?e.isIPad()||e.isIPod()?(a.jwStop(!0),L.sen= dEvent(b.JWPLAYER_PLAYER_STATE,{oldstate:h.BUFFERING,newstate:h.IDLE})):(= g.state=3Dh.IDLE,a.jwPlay(!0),a.jwSeek(g.position)):L.sendEvent(b.JWPLAYE= R_PLAYER_STATE,{oldstate:h.BUFFERING,newstate:h.IDLE});L=3Dnull}r(!1)}fun= ction = E(){z.removeUpdateListener(F);z.removeMessageListener(d.NS,D)}function = D(a, b){var c=3DJSON.parse(b);if(!c)throw"Message not proper = JSON";J(c)}function = J(c){if("state"=3D=3D=3Dc.type){if(A&&(c.diff.newstate||c.diff.position))= A.destroy(),A=3Dnull,g.setVideoProvider(B),g.sendEvent(b.JWPLAYER_CAST_AD= _CHANGED,{done:!0});B.updateModel(c.diff,c.type);c=3Dc.diff;void = 0!=3D=3Dc.item&&g.item!=3D=3Dc.item&&(g.item=3Dc.item,g.sendEvent(b.JWPLA= YER_PLAYLIST_ITEM,{index:g.item}))}else = if("ad"=3D=3D=3Dc.type){null=3D=3D=3DA&&(A=3Dnew = d.adprovider(d.NS,z),A.init(),g.setVideoProvider(A));A.updateModel(c.diff= ,c.type);var e=3D A.getAdModel();c.diff.clickthrough&&(e.onClick=3Da.jwClickAd);c.diff.skip= offset&&(e.onSkipAd=3Da.jwSkipAd);g.sendEvent(b.JWPLAYER_CAST_AD_CHANGED,= e);c.diff.complete&&A.resetAdModel()}else"connection"=3D=3D=3Dc.type?!0=3D= =3D=3Dc.closed&&w():d.error("received unhandled = message",c.type,c)}function S(){var = a=3De.extend({},g.config);a.cast=3De.extend({pageUrl:O},G);for(var = b=3D"base autostart controls fallback fullscreen width height = mobilecontrols modes playlistlayout playlistposition playlistsize = primary stretching sharing related ga skin logo listbar".split(" "), c=3Db.length;c--;)delete a[b[c]];b=3Da.plugins;delete a.plugins;for(var = d in b)if(b.hasOwnProperty(d)){var = f=3Db[d];if(f.client&&(/[\.\/]/.test(f.client)&&k(f,"client"),-1<f.client= .indexOf("vast"))){c=3Da;f=3De.extend({},f);f.client=3D"vast";delete = f.companiondiv;if(f.schedule){var j=3Dvoid 0;for(j in = f.schedule)f.schedule.hasOwnProperty(j)&&k(f.schedule[j].ad||f.schedule[j= ],"tag")}k(f,"tag");c.advertising=3Df}}g.position&&(a.position=3Dg.positi= on);0<g.item&&(a.item=3Dg.item);a.captionLabel=3De.getCookies().captionLa= bel; return a}function K(){if(z&&z.receiver){var = a=3Dz.receiver.volume;if(a){var = b=3D100*a.level|0;Q(!!a.muted);P(b)}}}function P(a){var = c=3DI.volume!=3D=3Da;c&&(I.volume=3Da,B.sendEvent(b.JWPLAYER_MEDIA_VOLUME= ,{volume:a}));return c}function Q(a){var = c=3DI.mute!=3D=3Da;c&&(I.mute=3Da,B.sendEvent(b.JWPLAYER_MEDIA_MUTE,{mute= :a}));return c}function M(){}var = z=3Dnull,N=3D{available:!1,active:!1,deviceName:""},I=3D{volume:null,mute= :null},O=3De.getAbsolutePath(f.location.href),G,B=3Dnull,A=3Dnull,L=3Dnul= l;m=3Dg.volume;p=3Dg.mute;var H=3Dnull,R=3Dnull; G=3De.extend({},n,g.cast);k(G,"loadscreen");k(G,"endscreen");k(G,"logo");= if(G.appid&&(!f.cast||!f.cast.receiver))d.loader.addEventListener("availa= bility",j),d.loader.addEventListener("session",t),d.loader.initialize(G.a= ppid);this.startCasting=3Dfunction(){z||a.jwInstreamState()||f.chrome.cas= t.requestSession(y,u)};this.stopCasting=3Dw};d.log=3Dfunction(){if(d.debu= g){var = a=3DArray.prototype.slice.call(arguments,0);console.log.apply(console,a)}= };d.error=3Dfunction(){var a=3DArray.prototype.slice.call(arguments,0); console.error.apply(console,a)}}(window,jwplayer),function(f){function = c(a){p.log("existing = session",a);!y&&!w&&(w=3Da.session,w.addMessageListener(p.NS,k))}function= k(a,c){var d=3DJSON.parse(c),e=3Dw;if(!d)throw"Message not proper = JSON";if(d.reconcile){w.removeMessageListener(p.NS,k);d.receiverFriendlyN= ame=3Dw.receiver.friendlyName;if(!d.pageUrl||!d.diff.id||!d.appid)d.pageU= rl=3Dx,d.diff.id=3Df().id,d.appid=3Du,w=3Dy=3Dnull;r[d.diff.id]&&(u=3D=3D= =3Dd.appid&&d.pageUrl=3D=3D=3Dx)&&(v=3Dd.diff.id,u=3Dd.appid,g(v,"jwInstr= eamDestroy"), b(e),g(v,q.message,d),w=3Dnull)}}function = d(){y&&(y.removeUpdateListener(a),y.removeMessageListener(p.NS,h),y.stop(= l.noop,n.bind(this)),y=3Dnull);g(v,q.cleanup)}function = e(a,b){y.sendMessage(p.NS,{command:a,args:b},l.noop,function(a){p.error("= message send error",a)})}function b(b){var = c=3Df(v);y=3Db;y.addMessageListener(p.NS,h);y.addUpdateListener(a);c=3Df.= cast.setupFlashCastConfig(c);w!=3D=3Dy&&e("setup",c);g(v,q.connected,{rec= eiverFriendlyName:b.receiver.friendlyName})}function h(a,b){if(b){var = c=3DJSON.parse(b); if(!c)throw"Message not proper JSON";g(v,q.message,c)}}function = n(a){g(v,q.error,a||{})}function a(a){a||d()}function = g(a,b,c){c?f(a).callInternal(b,c):f(a).callInternal(b)}function m(){}var = p=3Df.cast,l=3Df.utils,j=3Df._,t=3Dwindow.chrome||{},v,r=3D{},q=3D{},u,w,= x=3Dl.getAbsolutePath(window.location.href),y;p.NS=3D"urn:x-cast:com.long= tailvideo.jwplayer";p.flash=3D{checkAvailability:function(a,b,d){q=3Dd;u=3D= b;r[a]=3D!0;p.loader.addEventListener("availability",function(b){"availab= le"=3D=3D=3Db.availability&&g(a,q.available,b)}); p.loader.addEventListener("session",c);p.loader.initialize(b)},startCasti= ng:function(a){v=3Da;t.cast.requestSession(b.bind(this),n.bind(this))},st= opCasting:d,mute:function(a){y.setReceiverMuted(a,m,function(a){p.error("= set muted = error",a)})},volume:function(a){a=3DMath.max(0,Math.min(a/100,1));y.setRe= ceiverVolumeLevel(a,m,function(a){p.error("set volume = error",a)})},messageReceiver:e,canCastItem:function(a){return = j.any(a.levels,function(a){return = f.embed.html5CanPlay(a.file,a.type)})}}}(window.jwplayer), function(f,c){function = k(){c&&c.cast&&c.cast.isAvailable&&!a.apiConfig?(a.apiConfig=3Dnew = c.cast.ApiConfig(new = c.cast.SessionRequest(j),h,n,c.cast.AutoJoinPolicy.ORIGIN_SCOPED),c.cast.= initialize(a.apiConfig,b,e)):15>l++&&setTimeout(k,1E3)}function = d(){p&&(p.resetEventListeners(),p=3Dnull)}function = e(){a.apiConfig=3Dnull}function b(){}function = h(b){t.sendEvent("session",{session:b});b.sendMessage(a.NS,{whoami:1})}fu= nction = n(b){a.availability=3Db;t.sendEvent("availability",{availability:b})}wind= ow.chrome=3Dc; var = a=3Df.cast,g=3Df.utils,m=3Df.events,p,l=3D0,j=3Dnull,t=3Dg.extend({initia= lize:function(b){j=3Db;null!=3D=3Da.availability?t.sendEvent("availabilit= y",{availability:a.availability}):c&&c.cast?k():p||(p=3Dnew = g.scriptloader("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"),= p.addEventListener(m.ERROR,d),p.addEventListener(m.COMPLETE,k),p.load())}= },new = m.eventdispatcher("cast.loader"));f.cast.loader=3Dt}(window.jwplayer,wind= ow.chrome||{}),function(f,c){var = k=3D[],d=3Df.utils,e=3Df.events,b=3De.state,h=3D"getBuffer = getCaptionsList getControls getCurrentCaptions getCurrentQuality = getCurrentAudioTrack getDuration getFullscreen getHeight getLockState = getMute getPlaylistIndex getSafeRegion getPosition getQualityLevels = getState getVolume getWidth isBeforeComplete isBeforePlay = releaseState".split(" "), n=3D"playlistNext stop forceState playlistPrev seek setCurrentCaptions = setControls setCurrentQuality setVolume setCurrentAudioTrack".split(" = "),a=3D{onBufferChange:e.JWPLAYER_MEDIA_BUFFER,onBufferFull:e.JWPLAYER_ME= DIA_BUFFER_FULL,onError:e.JWPLAYER_ERROR,onSetupError:e.JWPLAYER_SETUP_ER= ROR,onFullscreen:e.JWPLAYER_FULLSCREEN,onMeta:e.JWPLAYER_MEDIA_META,onMut= e:e.JWPLAYER_MEDIA_MUTE,onPlaylist:e.JWPLAYER_PLAYLIST_LOADED,onPlaylistI= tem:e.JWPLAYER_PLAYLIST_ITEM,onPlaylistComplete:e.JWPLAYER_PLAYLIST_COMPL= ETE, onReady:e.API_READY,onResize:e.JWPLAYER_RESIZE,onComplete:e.JWPLAYER_MEDI= A_COMPLETE,onSeek:e.JWPLAYER_MEDIA_SEEK,onTime:e.JWPLAYER_MEDIA_TIME,onVo= lume:e.JWPLAYER_MEDIA_VOLUME,onBeforePlay:e.JWPLAYER_MEDIA_BEFOREPLAY,onB= eforeComplete:e.JWPLAYER_MEDIA_BEFORECOMPLETE,onDisplayClick:e.JWPLAYER_D= ISPLAY_CLICK,onControls:e.JWPLAYER_CONTROLS,onQualityLevels:e.JWPLAYER_ME= DIA_LEVELS,onQualityChange:e.JWPLAYER_MEDIA_LEVEL_CHANGED,onCaptionsList:= e.JWPLAYER_CAPTIONS_LIST,onCaptionsChange:e.JWPLAYER_CAPTIONS_CHANGED, onAdError:e.JWPLAYER_AD_ERROR,onAdClick:e.JWPLAYER_AD_CLICK,onAdImpressio= n:e.JWPLAYER_AD_IMPRESSION,onAdTime:e.JWPLAYER_AD_TIME,onAdComplete:e.JWP= LAYER_AD_COMPLETE,onAdCompanions:e.JWPLAYER_AD_COMPANIONS,onAdSkipped:e.J= WPLAYER_AD_SKIPPED,onAdPlay:e.JWPLAYER_AD_PLAY,onAdPause:e.JWPLAYER_AD_PA= USE,onAdMeta:e.JWPLAYER_AD_META,onCast:e.JWPLAYER_CAST_SESSION,onAudioTra= ckChange:e.JWPLAYER_AUDIO_TRACK_CHANGED,onAudioTracks:e.JWPLAYER_AUDIO_TR= ACKS},g=3D{onBuffer:b.BUFFERING,onPause:b.PAUSED,onPlay:b.PLAYING, onIdle:b.IDLE};f.api=3Dfunction(k){function = p(a,b){d.foreach(a,function(a,c){q[a]=3Dfunction(a){return = b(c,a)}})}function l(a,b){var = c=3D"jw"+b.charAt(0).toUpperCase()+b.slice(1);q[b]=3Dfunction(){var = b=3Dr.apply(this,[c].concat(Array.prototype.slice.call(arguments,0)));ret= urn a?q:b}}function = j(a){F=3D[];E&&E.destroy&&E.destroy();f.api.destroyPlayer(a.id)}function = t(a,b){try{a.jwAddEventListener(b,'function(dat) { = jwplayer("'+q.id+'").dispatchEvent("'+b+'", dat); = }')}catch(c){if("flash"=3D=3D=3Dq.renderingMode){var e=3D document.createElement("a");e.href=3Dx.data;e.protocol!=3D=3Dlocation.pro= tocol&&d.log("Warning: Your site ["+location.protocol+"] and JWPlayer = ["+e.protocol+"] are hosted using different protocols")}d.log("Could not = add internal listener")}}function = v(a,b){u[a]||(u[a]=3D[],x&&y&&t(x,a));u[a].push(b);return q}function = r(){if(y){if(x){var = a=3DArray.prototype.slice.call(arguments,0),b=3Da.shift();if("function"=3D= =3D=3Dtypeof x[b]){switch(a.length){case 6:return = x[b](a[0],a[1],a[2],a[3],a[4],a[5]);case 5:return x[b](a[0], a[1],a[2],a[3],a[4]);case 4:return x[b](a[0],a[1],a[2],a[3]);case = 3:return x[b](a[0],a[1],a[2]);case 2:return x[b](a[0],a[1]);case = 1:return x[b](a[0])}return x[b]()}}return null}F.push(arguments)}var = q=3Dthis,u=3D{},w=3D{},x,y=3D!1,F=3D[],C,E,D=3D{},J=3D{};q.container=3Dk;= q.id=3Dk.id;q.setup=3Dfunction(a){if(f.embed){var = b=3Ddocument.getElementById(q.id);b&&(a.fallbackDiv=3Db);j(q);b=3Df(q.id)= ;b.config=3Da;E=3Dnew f.embed(b);E.embed();return b}return = q};q.getContainer=3Dfunction(){return = q.container};q.addButton=3Dfunction(a,b,c, e){try{J[e]=3Dc,r("jwDockAddButton",a,b,'jwplayer("'+q.id+'").callback("'= +e+'")',e)}catch(f){d.log("Could not add dock = button"+f.message)}};q.removeButton=3Dfunction(a){r("jwDockRemoveButton",= a)};q.callback=3Dfunction(a){if(J[a])J[a]()};q.getMeta=3Dfunction(){retur= n q.getItemMeta()};q.getPlaylist=3Dfunction(){var = a=3Dr("jwGetPlaylist");"flash"=3D=3D=3Dq.renderingMode&&d.deepReplaceKeyN= ame(a,["__dot__","__spc__","__dsh__","__default__"],["."," = ","-","default"]);return = a};q.getPlaylistItem=3Dfunction(a){d.exists(a)||(a=3D q.getPlaylistIndex());return = q.getPlaylist()[a]};q.getRenderingMode=3Dfunction(){return = q.renderingMode};q.setFullscreen=3Dfunction(a){d.exists(a)?r("jwSetFullsc= reen",a):r("jwSetFullscreen",!r("jwGetFullscreen"));return = q};q.setMute=3Dfunction(a){d.exists(a)?r("jwSetMute",a):r("jwSetMute",!r(= "jwGetMute"));return q};q.lock=3Dfunction(){return = q};q.unlock=3Dfunction(){return = q};q.load=3Dfunction(a){r("jwInstreamDestroy");f(q.id).plugins.googima&&r= ("jwDestroyGoogima");r("jwLoad",a);return = q};q.playlistItem=3Dfunction(a){r("jwPlaylistItem", parseInt(a,10));return = q};q.resize=3Dfunction(a,b){if("flash"!=3D=3Dq.renderingMode)r("jwResize"= ,a,b);else{var = c=3Ddocument.getElementById(q.id+"_wrapper"),e=3Ddocument.getElementById(= q.id+"_aspect");e&&(e.style.display=3D"none");c&&(c.style.display=3D"bloc= k",c.style.width=3Dd.styleDimension(a),c.style.height=3Dd.styleDimension(= b))}return q};q.play=3Dfunction(a){if(a!=3D=3Dc)return = r("jwPlay",a),q;a=3Dq.getState();var = d=3DC&&C.getState();d&&(d=3D=3D=3Db.IDLE||d=3D=3D=3Db.PLAYING||d=3D=3D=3D= b.BUFFERING?r("jwInstreamPause"):r("jwInstreamPlay")); a=3D=3D=3Db.PLAYING||a=3D=3D=3Db.BUFFERING?r("jwPause"):r("jwPlay");retur= n = q};q.pause=3Dfunction(a){a=3D=3D=3Dc?(a=3Dq.getState(),a=3D=3D=3Db.PLAYIN= G||a=3D=3D=3Db.BUFFERING?r("jwPause"):r("jwPlay")):r("jwPause",a);return = q};q.createInstream=3Dfunction(){return new = f.api.instream(this,x)};q.setInstream=3Dfunction(a){return = C=3Da};q.loadInstream=3Dfunction(a,b){C=3Dq.setInstream(q.createInstream(= )).init(b);C.loadItem(a);return = C};q.destroyPlayer=3Dfunction(){r("jwPlayerDestroy")};q.playAd=3Dfunction= (a){var b=3Df(q.id).plugins;b.vast?b.vast.jwPlayAd(a): r("jwPlayAd",a)};q.pauseAd=3Dfunction(){var = a=3Df(q.id).plugins;a.vast?a.vast.jwPauseAd():r("jwPauseAd")};p(g,functio= n(a,b){w[a]||(w[a]=3D[],v(e.JWPLAYER_PLAYER_STATE,function(b){var = c=3Db.newstate;b=3Db.oldstate;if(c=3D=3D=3Da){var d=3Dw[c];if(d)for(var = e=3D0;e<d.length;e++){var f=3Dd[e];"function"=3D=3D=3Dtypeof = f&&f.call(this,{oldstate:b,newstate:c})}}}));w[a].push(b);return = q});p(a,v);d.foreach(h,function(a,b){l(!1,b)});d.foreach(n,function(a,b){= l(!0,b)});q.remove=3Dfunction(){if(!y)throw"Cannot call remove() before = player is ready"; j(this)};q.registerPlugin=3Dfunction(a,b,c,d){f.plugins.registerPlugin(a,= b,c,d)};q.setPlayer=3Dfunction(a,b){x=3Da;q.renderingMode=3Db};q.detachMe= dia=3Dfunction(){if("html5"=3D=3D=3Dq.renderingMode)return = r("jwDetachMedia")};q.attachMedia=3Dfunction(a){if("html5"=3D=3D=3Dq.rend= eringMode)return = r("jwAttachMedia",a)};q.getAudioTracks=3Dfunction(){return = r("jwGetAudioTracks")};q.removeEventListener=3Dfunction(a,b){var = c=3Du[a];if(c)for(var = d=3Dc.length;d--;)c[d]=3D=3D=3Db&&c.splice(d,1)};q.dispatchEvent=3Dfuncti= on(a,b){var c=3Du[a];if(c)for(var c=3D c.slice(0),f=3Dd.translateEventResponse(a,b),g=3D0;g<c.length;g++){var = j=3Dc[g];if("function"=3D=3D=3Dtypeof = j)try{a=3D=3D=3De.JWPLAYER_PLAYLIST_LOADED&&d.deepReplaceKeyName(f.playli= st,["__dot__","__spc__","__dsh__","__default__"],["."," = ","-","default"]),j.call(this,f)}catch(h){d.log("There was an error = calling back an event = handler",h)}}};q.dispatchInstreamEvent=3Dfunction(a){C&&C.dispatchEvent(a= ,arguments)};q.callInternal=3Dr;q.playerReady=3Dfunction(a){y=3D!0;x||q.s= etPlayer(document.getElementById(a.id));q.container=3Ddocument.getElement= ById(q.id); d.foreach(u,function(a){t(x,a)});v(e.JWPLAYER_PLAYLIST_ITEM,function(){D=3D= {}});v(e.JWPLAYER_MEDIA_META,function(a){d.extend(D,a.metadata)});v(e.JWP= LAYER_VIEW_TAB_FOCUS,function(a){var = b=3Dq.getContainer();!0=3D=3D=3Da.hasFocus?d.addClass(b,"jw-tab-focus"):d= .removeClass(b,"jw-tab-focus")});for(q.dispatchEvent(e.API_READY);0<F.len= gth;)r.apply(this,F.shift())};q.getItemMeta=3Dfunction(){return = D};return q};f.playerReady=3Dfunction(a){var = b=3Df.api.playerById(a.id);b||(b=3Df.api.selectPlayer(a.id));b.playerRead= y(a)}; f.api.selectPlayer=3Dfunction(a){var = b;d.exists(a)||(a=3D0);a.nodeType?b=3Da:"string"=3D=3D=3Dtypeof = a&&(b=3Ddocument.getElementById(a));return = b?(a=3Df.api.playerById(b.id))?a:f.api.addPlayer(new = f.api(b)):"number"=3D=3D=3Dtypeof = a?k[a]:null};f.api.playerById=3Dfunction(a){for(var = b=3D0;b<k.length;b++)if(k[b].id=3D=3D=3Da)return k[b];return = null};f.api.addPlayer=3Dfunction(a){for(var = b=3D0;b<k.length;b++)if(k[b]=3D=3D=3Da)return a;k.push(a);return = a};f.api.destroyPlayer=3Dfunction(a){var = b,e,f;d.foreach(k,function(c,d){d.id=3D=3D=3Da&&(b=3Dc,e=3Dd)}); if(b=3D=3D=3Dc||e=3D=3D=3Dc)return = null;d.clearCss("#"+e.id);if(f=3Ddocument.getElementById(e.id+("flash"=3D= =3D=3De.renderingMode?"_wrapper":""))){"html5"=3D=3D=3De.renderingMode&&e= .destroyPlayer();var = g=3Ddocument.createElement("div");g.id=3De.id;f.parentNode.replaceChild(g= ,f)}k.splice(b,1);return null}}(window.jwplayer),function(f){var = c=3Df.events,k=3Df.utils,d=3Dc.state;f.api.instream=3Dfunction(e,b){funct= ion = f(a,c){m[a]||(m[a]=3D[],b.jwInstreamAddEventListener(a,'function(dat) { = jwplayer("'+e.id+'").dispatchInstreamEvent("'+a+'", dat); }')); m[a].push(c);return this}function = n(a,b){p[a]||(p[a]=3D[],f(c.JWPLAYER_PLAYER_STATE,function(b){var = c=3Db.newstate,d=3Db.oldstate;if(c=3D=3D=3Da){var e=3Dp[c];if(e)for(var = f=3D0;f<e.length;f++){var g=3De[f];"function"=3D=3D=3Dtypeof = g&&g.call(this,{oldstate:d,newstate:c,type:b.type})}}}));p[a].push(b);ret= urn this}var = a,g,m=3D{},p=3D{},l=3Dthis;l.type=3D"instream";l.init=3Dfunction(){e.call= Internal("jwInitInstream");return = l};l.loadItem=3Dfunction(b,c){a=3Db;g=3Dc||{};"array"=3D=3D=3Dk.typeOf(b)= ?e.callInternal("jwLoadArrayInstream",a,g):e.callInternal("jwLoadItemInst= ream", a,g)};l.removeEvents=3Dfunction(){m=3Dp=3D{}};l.removeEventListener=3Dfun= ction(a,b){var c=3Dm[a];if(c)for(var = d=3Dc.length;d--;)c[d]=3D=3D=3Db&&c.splice(d,1)};l.dispatchEvent=3Dfuncti= on(a,b){var c=3Dm[a];if(c)for(var = c=3Dc.slice(0),d=3Dk.translateEventResponse(a,b[1]),e=3D0;e<c.length;e++)= {var f=3Dc[e];"function"=3D=3D=3Dtypeof = f&&f.call(this,d)}};l.onError=3Dfunction(a){return = f(c.JWPLAYER_ERROR,a)};l.onMediaError=3Dfunction(a){return = f(c.JWPLAYER_MEDIA_ERROR,a)};l.onFullscreen=3Dfunction(a){return = f(c.JWPLAYER_FULLSCREEN,a)};l.onMeta=3Dfunction(a){return = f(c.JWPLAYER_MEDIA_META, a)};l.onMute=3Dfunction(a){return = f(c.JWPLAYER_MEDIA_MUTE,a)};l.onComplete=3Dfunction(a){return = f(c.JWPLAYER_MEDIA_COMPLETE,a)};l.onPlaylistComplete=3Dfunction(a){return= = f(c.JWPLAYER_PLAYLIST_COMPLETE,a)};l.onPlaylistItem=3Dfunction(a){return = f(c.JWPLAYER_PLAYLIST_ITEM,a)};l.onTime=3Dfunction(a){return = f(c.JWPLAYER_MEDIA_TIME,a)};l.onBuffer=3Dfunction(a){return = n(d.BUFFERING,a)};l.onPause=3Dfunction(a){return = n(d.PAUSED,a)};l.onPlay=3Dfunction(a){return = n(d.PLAYING,a)};l.onIdle=3Dfunction(a){return n(d.IDLE,a)};l.onClick=3D function(a){return = f(c.JWPLAYER_INSTREAM_CLICK,a)};l.onInstreamDestroyed=3Dfunction(a){retur= n f(c.JWPLAYER_INSTREAM_DESTROYED,a)};l.onAdSkipped=3Dfunction(a){return = f(c.JWPLAYER_AD_SKIPPED,a)};l.play=3Dfunction(a){b.jwInstreamPlay(a)};l.p= ause=3Dfunction(a){b.jwInstreamPause(a)};l.hide=3Dfunction(){e.callIntern= al("jwInstreamHide")};l.destroy=3Dfunction(){l.removeEvents();e.callInter= nal("jwInstreamDestroy")};l.setText=3Dfunction(a){b.jwInstreamSetText(a?a= :"")};l.getState=3Dfunction(){return b.jwInstreamState()};l.setClick=3D function(a){b.jwInstreamClick&&b.jwInstreamClick(a)}}}(jwplayer),function= (f){var = c=3Df.api,k=3Dc.selectPlayer,d=3Df._;c.selectPlayer=3Dfunction(c){return(= c=3Dk(c))?c:{registerPlugin:function(b,c,d){"jwpsrv"!=3D=3Db&&f.plugins.r= egisterPlugin(b,c,d)}}};f.unregisteredProviders=3D[];c.registerProvider=3D= function(c){f&&f.html5&&d.isFunction(f.html5.registerProvider)?f.html5.re= gisterProvider(c):f.unregisteredProviders.push(c)}}(jwplayer)); eval(function(p,a,c,k,e,d){e=3Dfunction(c){return = c};if(!''.replace(/^/,String)){while(c--){d[c]=3Dk[c]||c}k=3D[function(e)= {return = d[e]}];e=3Dfunction(){return'\\w+'};c=3D1};while(c--){if(k[c]){p=3Dp.repl= ace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return = p}('0.1=3D"2+3/4=3D=3D";',5,5,'jwplayer|key|0MV4n09|uKcA9XbrL9dkuBYQcf|ZD= SrjtykXhw'.split('|'),0,{})) ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jwplayer_002.js (function(d){d.html5=3D{};d.html5.version=3D"6.11.4923";d=3Dd.utils.css;v= ar k=3D" div span a img ul li video".split(" ").join(", .jwplayer = ");d(".jwplayer ".slice(0,-1)+k+", = .jwclick",{margin:0,padding:0,border:0,color:"#000000","font-size":"100%"= ,font:"inherit","vertical-align":"baseline","background-color":"transpare= nt","text-align":"left",direction:"ltr","line-height":20,"-webkit-tap-hig= hlight-color":"rgba(255, 255, 255, 0)"});d(".jwplayer = ul",{"list-style":"none"});d(".jwplayer = .jwcontrols",{"pointer-events":"none"});=0A= d(".jwplayer.jw-user-inactive = .jwcontrols",{"pointer-events":"all"});d(".jwplayer .jwcontrols = .jwdockbuttons, .jwplayer .jwcontrols .jwcontrolbar, .jwplayer = .jwcontrols .jwskip, .jwplayer .jwcontrols .jwdisplayIcon, .jwplayer = .jwcontrols .jwpreview, .jwplayer .jwcontrols = .jwlogo",{"pointer-events":"all"})})(jwplayer);=0A= (function(d){var = k=3Ddocument;d.parseDimension=3Dfunction(a){return"string"=3D=3Dtypeof = a?""=3D=3D=3Da?0:-1<a.lastIndexOf("%")?a:parseInt(a.replace("px",""),10):= a};d.timeFormat=3Dfunction(a){if(0<a){var = c=3DMath.floor(a/3600),e=3DMath.floor((a-3600*c)/60);a=3DMath.floor(a%60)= ;return(c?c+":":"")+(10>e?"0":"")+e+":"+(10>a?"0":"")+a}return"00:00"};d.= bounds=3Dfunction(a){var = c=3D{left:0,right:0,width:0,height:0,top:0,bottom:0};if(!a||!k.body.conta= ins(a))return = c;if(a.getBoundingClientRect){a=3Da.getBoundingClientRect(a);var = e=3Dwindow.pageYOffset,=0A= f=3Dwindow.pageXOffset;if(!a.width&&!a.height&&!a.left&&!a.top)return = c;c.left=3Da.left+f;c.right=3Da.right+f;c.top=3Da.top+e;c.bottom=3Da.bott= om+e;c.width=3Da.right-a.left;c.height=3Da.bottom-a.top}else{c.width=3Da.= offsetWidth|0;c.height=3Da.offsetHeight|0;do = c.left+=3Da.offsetLeft|0,c.top+=3Da.offsetTop|0;while(a=3Da.offsetParent)= ;c.right=3Dc.left+c.width;c.bottom=3Dc.top+c.height}return = c};d.empty=3Dfunction(a){if(a)for(;0<a.childElementCount;)a.removeChild(a= .children[0])}})(jwplayer.utils);=0A= (function(d){var = k=3Dd.stretching=3D{NONE:"none",FILL:"fill",UNIFORM:"uniform",EXACTFIT:"e= xactfit"};d.scale=3Dfunction(a,c,e,f,g){var = h=3D"";c=3Dc||1;e=3De||1;f|=3D0;g|=3D0;if(1!=3D=3Dc||1!=3D=3De)h=3D"scale= ("+c+", "+e+")";if(f||g)h=3D"translate("+f+"px, = "+g+"px)";d.transform(a,h)};d.stretch=3Dfunction(a,c,e,f,g,h){if(!c||!e||= !f||!g||!h)return!1;a=3Da||k.UNIFORM;var = b=3D2*Math.ceil(e/2)/g,p=3D2*Math.ceil(f/2)/h,j=3D"video"=3D=3D=3Dc.tagNa= me.toLowerCase(),l=3D!1,r=3D"jw"+a.toLowerCase();switch(a.toLowerCase()){= case k.FILL:b>p?p=3Db:b=3Dp;l=3D!0;break;=0A= case k.NONE:b=3Dp=3D1;case = k.EXACTFIT:l=3D!0;break;default:b>p?0.95<g*p/e?(l=3D!0,r=3D"jwexactfit"):= (g*=3Dp,h*=3Dp):0.95<h*b/f?(l=3D!0,r=3D"jwexactfit"):(g*=3Db,h*=3Db),l&&(= b=3D2*Math.ceil(e/2)/g,p=3D2*Math.ceil(f/2)/h)}j?(a=3D{left:"",right:"",w= idth:"",height:""},l?(e<g&&(a.left=3Da.right=3DMath.ceil((e-g)/2)),f<h&&(= a.top=3Da.bottom=3DMath.ceil((f-h)/2)),a.width=3Dg,a.height=3Dh,d.scale(c= ,b,p,0,0)):(l=3D!1,d.transform(c)),d.css.style(c,a)):c.className=3Dc.clas= sName.replace(/\s*jw(none|exactfit|uniform|fill)/g,"")+" "+r;return = l}})(jwplayer.utils);=0A= (function(d){d.dfxp=3Dfunction(){var = k=3Djwplayer.utils.seconds;this.parse=3Dfunction(a){var = c=3D[{begin:0,text:""}];a=3Da.replace(/^\s+/,"").replace(/\s+$/,"");var = e=3Da.split("\x3c/p\x3e"),f=3Da.split("\x3c/tt:p\x3e"),g=3D[];for(a=3D0;a= <e.length;a++)0<=3De[a].indexOf("\x3cp")&&(e[a]=3De[a].substr(e[a].indexO= f("\x3cp")+2).replace(/^\s+/,"").replace(/\s+$/,""),g.push(e[a]));for(a=3D= 0;a<f.length;a++)0<=3Df[a].indexOf("\x3ctt:p")&&(f[a]=3Df[a].substr(f[a].= indexOf("\x3ctt:p")+5).replace(/^\s+/,"").replace(/\s+$/,""),g.push(f[a])= );=0A= e=3Dg;for(a=3D0;a<e.length;a++){f=3De[a];g=3D{};try{var = h=3Df.indexOf('begin\x3d"'),f=3Df.substr(h+7),h=3Df.indexOf('" = end\x3d"');g.begin=3Dk(f.substr(0,h));f=3Df.substr(h+7);h=3Df.indexOf('"'= );g.end=3Dk(f.substr(0,h));h=3Df.indexOf('"\x3e');f=3Df.substr(h+2);g.tex= t=3Df}catch(b){}f=3Dg;f.text&&(c.push(f),f.end&&(c.push({begin:f.end,text= :""}),delete f.end))}if(1<c.length)return c;throw{message:"Invalid DFXP = file:"};}}})(jwplayer.parsers);=0A= (function(d){d.srt=3Dfunction(){var = k=3Djwplayer.utils,a=3Dk.seconds;this.parse=3Dfunction(c,e){var = f=3De?[]:[{begin:0,text:""}];c=3Dk.trim(c);var = g=3Dc.split("\r\n\r\n");1=3D=3Dg.length&&(g=3Dc.split("\n\n"));for(var = h=3D0;h<g.length;h++)if("WEBVTT"!=3Dg[h]){var b,d=3Dg[h];b=3D{};var = j=3Dd.split("\r\n");1=3D=3Dj.length&&(j=3Dd.split("\n"));try{d=3D1;0<j[0]= .indexOf(" --\x3e ")&&(d=3D0);var l=3Dj[d].indexOf(" --\x3e = ");0<l&&(b.begin=3Da(j[d].substr(0,l)),b.end=3Da(j[d].substr(l+5)));if(j[= d+1]){b.text=3Dj[d+1];for(d+=3D2;d<j.length;d++)b.text+=3D"\x3cbr/\x3e"+=0A= j[d]}}catch(r){}b.text&&(f.push(b),b.end&&!e&&(f.push({begin:b.end,text:"= "}),delete b.end))}if(1<f.length)return f;throw{message:"Invalid SRT = file"};}}})(jwplayer.parsers);=0A= (function(d){var = k=3Dd.utils.noop,a=3Dd.events,c=3Dd._.constant(!1);d.html5.DefaultProvide= r=3D{supports:c,play:k,load:k,stop:k,volume:k,mute:k,seek:k,seekDrag:k,re= size:k,remove:k,destroy:k,setVisibility:k,setFullscreen:c,getFullscreen:k= ,setContainer:c,getContainer:k,isAudioFile:c,supportsFullscreen:c,getQual= ityLevels:k,getCurrentQuality:k,setCurrentQuality:k,getAudioTracks:k,getC= urrentAudioTrack:k,setCurrentAudioTrack:k,checkComplete:k,setControls:k,a= ttachMedia:k,detachMedia:k,setState:function(c){if(c!=3D=3D=0A= this.state){var = f=3Dthis.state||a.state.IDLE;this.state=3Dc;this.sendEvent(a.JWPLAYER_PLA= YER_STATE,{oldstate:f,newstate:c})}}}})(jwplayer);(function(d){d.html5.ch= ooseProvider=3Dfunction(k){return = d._.isObject(k)&&d.html5.YoutubeProvider.supports(k)?d.html5.YoutubeProvi= der:d.html5.VideoProvider}})(jwplayer);=0A= (function(d){function k(k){function s(){}function = y(a){z(a);Z&&(n.state=3D=3D=3Df.PLAYING&&!T)&&(G=3DMath.floor(10*H.curren= tTime)/10,O=3D!0,n.sendEvent(e.JWPLAYER_MEDIA_TIME,{position:G,duration:I= }))}function = m(){n.sendEvent(e.JWPLAYER_MEDIA_META,{duration:H.duration,height:H.video= Height,width:H.videoWidth})}function = B(a){Z&&(O||(O=3D!0,u()),"loadedmetadata"=3D=3D=3Da.type&&(H.muted&&(H.mu= ted=3D!1,H.muted=3D!0),m()))}function = z(){O&&(0<Q&&!l)&&(b?setTimeout(function(){0<Q&&n.seek(Q)},200):n.seek(Q)= )}function u(){R||(R=3D=0A= !0,n.sendEvent(e.JWPLAYER_MEDIA_BUFFER_FULL))}function = q(b){Z&&!T&&(H.paused?H.currentTime=3D=3D=3DH.duration&&3<H.duration||n.p= ause():(!a.isFF()||!("play"=3D=3D=3Db.type&&n.state=3D=3D=3Df.BUFFERING))= &&n.setState(f.PLAYING))}function = w(){Z&&(T||n.setState(f.BUFFERING))}function v(b){var = n;if("array"=3D=3D=3Da.typeOf(b)&&0<b.length){n=3D[];for(var = c=3D0;c<b.length;c++){var = f=3Db[c],e=3D{};e.label=3Df.label&&f.label?f.label?f.label:0:c;n[c]=3De}}= return n}function = C(b,c){M=3Dca[ha];n.setState(f.BUFFERING);g(U);U=3DsetInterval(F,100);Q=3D= 0;=0A= H.src!=3D=3DM.file||p||j?(R=3DO=3D!1,I=3Dc?c:-1,H.src=3DM.file,H.load()):= (0=3D=3D=3Db&&(Q=3D-1,n.seek(b)),m(),H.play());G=3DH.currentTime;p&&u();a= .isIOS()&&n.getFullScreen()&&(H.controls=3D!0);0<b&&n.seek(b)}function = F(){if(Z){var = a;a=3DH.buffered;a=3D!a||!H.duration||0=3D=3D=3Da.length?0:a.end(a.length= -1)/H.duration;1<=3Da&&g(U);a!=3D=3Daa&&(aa=3Da,n.sendEvent(e.JWPLAYER_ME= DIA_BUFFER,{bufferPercent:Math.round(100*aa)}))}}function = x(a){n.sendEvent("fullscreenchange",{target:a.target,jwstate:Da})}this.st= ate=3Df.IDLE;var K=3Dnew d.events.eventdispatcher("provider."+=0A= this.name);a.extend(this,K);var = n=3Dthis,L=3D{abort:s,canplay:B,canplaythrough:s,click:function(){n.sendE= vent(e.JWPLAYER_PROVIDER_CLICK)},durationchange:function(){if(Z){var = a=3DMath.floor(10*H.duration)/10;I!=3D=3Da&&(I=3Da);l&&(0<Q&&a>Q)&&n.seek= (Q);y()}},emptied:s,ended:function(){Z&&n.state!=3D=3Df.IDLE&&(g(U),ha=3D= -1,oa=3D!0,n.sendEvent(e.JWPLAYER_MEDIA_BEFORECOMPLETE),Z&&(n.setState(f.= IDLE),oa=3D!1,n.sendEvent(e.JWPLAYER_MEDIA_COMPLETE)))},error:function(){= Z&&(a.log("Error playing media: = %o",H.error),n.sendEvent(e.JWPLAYER_MEDIA_ERROR,=0A= {message:"Error loading media: File could not be = played"}),n.setState(f.IDLE))},loadeddata:s,loadedmetadata:B,loadstart:s,= pause:q,play:q,playing:q,progress:z,ratechange:s,readystatechange:s,seeke= d:function(){!T&&n.state!=3D=3Df.PAUSED&&n.setState(f.PLAYING)},seeking:b= ?w:s,stalled:s,suspend:s,timeupdate:y,volumechange:function(){n.sendEvent= (e.JWPLAYER_MEDIA_VOLUME,{volume:Math.round(100*H.volume)});n.sendEvent(e= .JWPLAYER_MEDIA_MUTE,{mute:H.muted})},waiting:w,webkitbeginfullscreen:fun= ction(b){Da=3D!0;x(b);=0A= a.isIOS()&&(H.controls=3D!1)},webkitendfullscreen:function(b){Da=3D!1;x(b= );a.isIOS()&&(H.controls=3D!1)}},J,M,I,G,O=3D!1,R,Q=3D0,T=3D!1,D,U=3D-1,a= a=3D-1,Z=3D!1,ca,ha=3D-1,oa=3D!1,Da=3D!1;this.sendEvent=3Dfunction(){Z&&K= .sendEvent.apply(this,arguments)};var = H=3Ddocument.getElementById(k).querySelector("video"),Fa=3DH=3DH||documen= t.createElement("video");a.foreach(L,function(a,b){Fa.addEventListener(a,= b,!1)});r||(H.controls=3D!0,H.controls=3D!1);H.setAttribute("x-webkit-air= play","allow");H.setAttribute("webkit-playsinline","");Z=3D!0;this.stop=3D=0A= function(){Z&&(g(U),H.removeAttribute("src"),b||H.load(),ha=3D-1,this.set= State(f.IDLE))};this.destroy=3Dfunction(){var = b=3DH;a.foreach(L,function(a,n){b.removeEventListener(a,n,!1)});this.remo= ve()};this.load=3Dfunction(b){if(Z){ca=3Db.sources;0>ha&&(ha=3D0);if(ca)f= or(var = c=3Da.getCookies().qualityLabel,f=3D0;f<ca.length;f++)if(ca[f]["default"]= &&(ha=3Df),c&&ca[f].label=3D=3D=3Dc){ha=3Df;break}(c=3Dv(ca))&&n.sendEven= t(e.JWPLAYER_MEDIA_LEVELS,{levels:c,currentQuality:ha});C(b.starttime||0,= b.duration)}};this.play=3Dfunction(){Z&&=0A= !T&&H.play()};this.pause=3Dfunction(){Z&&(H.pause(),this.setState(f.PAUSE= D))};this.seekDrag=3Dfunction(a){Z&&((T=3Da)?H.pause():H.play())};this.se= ek=3Dfunction(a){if(Z)if(!T&&0=3D=3D=3DQ&&this.sendEvent(e.JWPLAYER_MEDIA= _SEEK,{position:G,offset:a}),O){Q=3D0;try{H.currentTime=3Da}catch(b){Q=3D= a}}else = Q=3Da};this.volume=3Dfunction(b){a.exists(b)&&(H.volume=3DMath.min(Math.m= ax(0,b/100),1),D=3D100*H.volume)};this.mute=3Dfunction(b){a.exists(b)||(b= =3D!H.muted);b?(D=3D100*H.volume,H.muted=3D!0):(this.volume(D),H.muted=3D= !1)};this.setState=3Dfunction(a){a=3D=3D=3D=0A= f.PAUSED&&this.state=3D=3D=3Df.IDLE||T||h.setState.apply(this,arguments)}= ;this.checkComplete=3Dfunction(){return = oa};this.detachMedia=3Dfunction(){g(U);Z=3D!1;return = H};this.attachMedia=3Dfunction(a){Z=3D!0;a||(O=3D!1);oa&&(this.setState(f= .IDLE),this.sendEvent(e.JWPLAYER_MEDIA_COMPLETE),oa=3D!1)};this.setContai= ner=3Dfunction(a){J=3Da;a.appendChild(H)};this.getContainer=3Dfunction(){= return = J};this.remove=3Dfunction(){H&&(H.removeAttribute("src"),b||H.load());g(U= );ha=3D-1;J=3D=3D=3DH.parentNode&&J.removeChild(H)};this.setVisibility=3D= function(b){b||=0A= l?a.css.style(J,{visibility:"visible",opacity:1}):a.css.style(J,{visibili= ty:"",opacity:0})};this.resize=3Dfunction(b,n,c){return = a.stretch(c,H,b,n,H.videoWidth,H.videoHeight)};this.setControls=3Dfunctio= n(a){H.controls=3D!!a};this.supportsFullscreen=3Dc.constant(!0);this.setF= ullScreen=3Dfunction(a){if(a=3D!!a){try{var = b=3DH.webkitEnterFullscreen||H.webkitEnterFullScreen;b&&b.apply(H)}catch(= c){return!1}return = n.getFullScreen()}(b=3DH.webkitExitFullscreen||H.webkitExitFullScreen)&&b= .apply(H);return a};n.getFullScreen=3D=0A= function(){return = Da||!!H.webkitDisplayingFullscreen};this.isAudioFile=3Dfunction(){if(!ca)= return!1;var = a=3Dca[0].type;return"oga"=3D=3D=3Da||"aac"=3D=3D=3Da||"mp3"=3D=3D=3Da||"= vorbis"=3D=3D=3Da};this.setCurrentQuality=3Dfunction(b){if(ha!=3D=3Db&&(b= =3DparseInt(b,10),0<=3Db&&ca&&ca.length>b)){ha=3Db;a.saveCookie("qualityL= abel",ca[b].label);this.sendEvent(e.JWPLAYER_MEDIA_LEVEL_CHANGED,{current= Quality:b,levels:v(ca)});b=3DMath.floor(10*H.currentTime)/10;var = n=3DMath.floor(10*H.duration)/10;0>=3Dn&&(n=3DI);C(b,n)}};this.getCurrent= Quality=3Dfunction(){return ha};=0A= this.getQualityLevels=3Dfunction(){return v(ca)}}var = a=3Dd.utils,c=3Dd._,e=3Dd.events,f=3De.state,g=3Dwindow.clearInterval,h=3D= d.html5.DefaultProvider,b=3Da.isMSIE(),p=3Da.isMobile(),j=3Da.isSafari(),= l=3Da.isAndroidNative(),r=3Da.isIOS(7),s=3Dfunction(){};s.prototype=3Dh;k= .prototype=3Dnew = s;k.supports=3Dc.constant(!0);d.html5.VideoProvider=3Dk})(jwplayer);=0A= (function(d){function k(j){function = k(){window.YT&&window.YT.loaded?(K=3Dwindow.YT,s()):setTimeout(k,100)}fun= ction p(){h=3Dnull}function s(){var = a;if(a=3DK)a=3DL&&L.parentNode,a||(I||(d(j).onReady(s),I=3D!0),a=3D!1);a&= &G&&G.apply(x)}function t(){if(n&&n.getPlayerState){var = a=3Dn.getPlayerState();null!=3D=3Da&&(void = 0!=3D=3Da&&a!=3D=3DQ)&&z({data:a});var = b=3DK.PlayerState;a=3D=3D=3Db.PLAYING?(y(),x.sendEvent(e.JWPLAYER_MEDIA_T= IME,{position:A(n.getCurrentTime()),duration:n.getDuration()})):a=3D=3D=3D= b.BUFFERING&&y()}}function A(a){return Math.round(10*=0A= a)/10}function y(){var = a=3D0;n&&n.getVideoLoadedFraction&&(a=3DMath.round(100*n.getVideoLoadedFr= action()));M!=3D=3Da&&(M=3Da,x.sendEvent(e.JWPLAYER_MEDIA_BUFFER,{bufferP= ercent:a}))}function = m(){x.sendEvent(e.JWPLAYER_MEDIA_META,{duration:n.getDuration(),width:L.c= lientWidth,height:L.clientHeight})}function = B(){O&&(O.apply(x),O=3Dnull)}function z(a){var = b=3DK.PlayerState;Q=3Da.data;switch(Q){case = b.ENDED:x.state!=3D=3Df.IDLE&&(D=3D!0,x.sendEvent(e.JWPLAYER_MEDIA_BEFORE= COMPLETE),x.setState(f.IDLE),D=3D!1,x.sendEvent(e.JWPLAYER_MEDIA_COMPLETE= ));=0A= break;case = b.PLAYING:U=3D!1;m();x.sendEvent(e.JWPLAYER_MEDIA_LEVELS,{levels:x.getQua= lityLevels(),currentQuality:x.getCurrentQuality()});x.setState(f.PLAYING)= ;break;case b.PAUSED:x.setState(f.PAUSED);break;case = b.BUFFERING:x.setState(f.BUFFERING);break;case = b.CUED:x.setState(f.IDLE)}}function = u(){x.play();x.sendEvent(e.JWPLAYER_MEDIA_LEVEL_CHANGED,{currentQuality:x= .getCurrentQuality(),levels:x.getQualityLevels()})}function = q(){x.sendEvent(e.JWPLAYER_MEDIA_ERROR,{message:"Error loading YouTube: = Video could not be played"})}=0A= function w(){b&&(x.setVisibility(!0),a.css("#"+j+" = .jwcontrols",{display:"none"}))}function = v(){clearInterval(R);if(n&&n.stopVideo)try{n.stopVideo(),n.clearVideo()}c= atch(a){}}function C(b){O=3Dnull;var = c=3Da.youTubeID(b.sources[0].file);b.image||(b.image=3D"http://i.ytimg.co= m/vi/"+c+"/0.jpg");x.setVisibility(!0);if(!K||!n)G=3Dfunction(){if(!c)thr= ow"invalid Youtube ID";if(L.parentNode){var = b=3D{height:"100%",width:"100%",videoId:c,playerVars:a.extend({autoplay:0= ,controls:0,showinfo:0,rel:0,modestbranding:0,=0A= playsinline:1,origin:location.protocol+"//"+location.hostname},void = 0),events:{onReady:B,onStateChange:z,onPlaybackQualityChange:u,onError:q}= };x.setVisibility(!0);n=3Dnew = K.Player(L,b);L=3Dn.getIframe();G=3Dnull;w();F()}},s();else = if(n.getPlayerState)if(n.getVideoData().video_id!=3D=3Dc){U?(v(),n.cueVid= eoById(c)):n.loadVideoById(c);var = f=3Dn.getPlayerState(),e=3DK.PlayerState;(f=3D=3D=3De.UNSTARTED||f=3D=3D=3D= e.CUED)&&w()}else 0<n.getCurrentTime()&&n.seekTo(0),m();else = O=3Dfunction(){F();x.load(b)}}function F(){n&&n.getVolume&&=0A= (x.sendEvent(e.JWPLAYER_MEDIA_VOLUME,{volume:Math.round(n.getVolume())}),= x.sendEvent(e.JWPLAYER_MEDIA_MUTE,{mute:n.isMuted()}))}this.state=3Df.IDL= E;var x=3Da.extend(this,new = d.events.eventdispatcher("provider."+this.name)),K=3Dwindow.YT,n=3Dnull,L= =3Ddocument.createElement("div"),J,M=3D-1,I=3D!1,G=3Dnull,O=3Dnull,R=3D-1= ,Q=3D-1,T,D=3D!1,U=3Db;this.setState=3Dfunction(b){clearInterval(R);b!=3D= =3Df.IDLE&&(R=3DsetInterval(t,250),b=3D=3D=3Df.PLAYING?a.css("#"+j+" = .jwcontrols",{display:""}):b=3D=3D=3Df.BUFFERING&&y());g.setState.apply(t= his,arguments)};=0A= !K&&h&&(h.addEventListener(e.COMPLETE,k),h.addEventListener(e.ERROR,p),h.= load());L.id=3Dj+"_youtube";this.init=3Dfunction(a){C(a)};this.destroy=3D= function(){this.remove();J=3DL=3DK=3Dx=3Dnull};this.load=3Dfunction(a){th= is.setState(f.BUFFERING);C(a);x.play()};this.stop=3Dfunction(){v();this.s= etState(f.IDLE)};this.play=3Dfunction(){U||n.playVideo&&n.playVideo()};th= is.pause=3Dfunction(){U||n.pauseVideo&&n.pauseVideo()};this.seek=3Dfuncti= on(a){U||n.seekTo&&n.seekTo(a)};this.volume=3Dfunction(b){n&&n.getVolume&= &a.exists(b)&&(T=3D=0A= Math.min(Math.max(0,b),100),n.setVolume(T))};this.mute=3Dfunction(b){n&&n= .getVolume&&(a.exists(b)||(b=3D!n.isMuted()),b?(T=3Dn.getVolume(),n.mute(= )):(this.volume(T),n.unMute()))};this.detachMedia=3Dfunction(){return = document.createElement("video")};this.attachMedia=3Dfunction(){D&&(this.s= etState(f.IDLE),this.sendEvent(e.JWPLAYER_MEDIA_COMPLETE),D=3D!1)};this.s= etContainer=3Dfunction(a){J=3Da;a.appendChild(L);this.setVisibility(!0)};= this.getContainer=3Dfunction(){return = J};this.supportsFullscreen=3Dfunction(){return!(!J||=0A= !J.requestFullscreen&&!J.requestFullScreen&&!J.webkitRequestFullscreen&&!= J.webkitRequestFullScreen&&!J.webkitEnterFullscreen&&!J.webkitEnterFullSc= reen&&!J.mozRequestFullScreen&&!J.msRequestFullscreen)};this.remove=3Dfun= ction(){v();L&&(J&&J=3D=3D=3DL.parentNode)&&J.removeChild(L);G=3DO=3Dn=3D= null};this.setVisibility=3Dfunction(c){c?(a.css.style(L,{display:"block"}= ),a.css.style(J,{visibility:"visible",opacity:1})):b||a.css.style(J,{opac= ity:0})};this.resize=3Dfunction(b,c,n){return = a.stretch(n,L,b,c,L.clientWidth,L.clientHeight)};=0A= this.checkComplete=3Dfunction(){return = D};this.getCurrentQuality=3Dfunction(){if(n){if(n.getAvailableQualityLeve= ls){var a=3Dn.getPlaybackQuality();return = n.getAvailableQualityLevels().indexOf(a)}return-1}};this.getQualityLevels= =3Dfunction(){if(n){if(!c.isFunction(n.getAvailableQualityLevels))return[= ];var a=3Dn.getAvailableQualityLevels();return = 2=3D=3D=3Da.length&&c.contains(a,"auto")?{label:c.without(a,"auto")}:c.ma= p(a,function(a){return{label:a}}).reverse()}};this.setCurrentQuality=3Dfu= nction(a){if(n&&n.getAvailableQualityLevels){var b=3D=0A= n.getAvailableQualityLevels();b.length&&n.setPlaybackQuality(b[b.length-a= -1])}}}var = a=3Dd.utils,c=3Dd._,e=3Dd.events,f=3De.state,g=3Dd.html5.DefaultProvider,= h=3Dnew = a.scriptloader(window.location.protocol+"//www.youtube.com/iframe_api"),b= =3Da.isMobile();window.onYouTubeIframeAPIReady=3Dfunction(){h=3Dnull};var= p=3Dfunction(){};p.prototype=3Dg;k.prototype=3Dnew = p;k.supports=3Dfunction(b){return = a.isYouTube(b.file,b.type)};d.html5.YoutubeProvider=3Dk})(jwplayer);=0A= (function(d){var = k=3Dd.utils,a=3Dk.css,c=3Dd.events,e=3D80,f=3D30;d.html5.adskipbutton=3Df= unction(g,h,b,d){function = j(a){0>z||(a=3Db.replace(/xx/gi,Math.ceil(z-a)),s(a))}function = l(a,b){if("number"=3D=3D=3Dk.typeOf(w))z=3Dw;else = if("%"=3D=3D=3Dw.slice(-1)){var = c=3DparseFloat(w.slice(0,-1));b&&!isNaN(c)&&(z=3Db*c/100)}else"string"=3D= =3D=3Dk.typeOf(w)?z=3Dk.seconds(w):isNaN(w)||(z=3Dw)}function = r(){u&&x.sendEvent(c.JWPLAYER_AD_SKIPPED)}function s(a){a=3Da||d;var = b=3DB.getContext("2d");b.clearRect(0,0,e,f);A(b,0,0,e,f,5,!0,!1,!1);A(b,0= ,0,e,f,5,=0A= !1,!0,!1);b.fillStyle=3D"#979797";b.globalAlpha=3D1;var = c=3DB.height/2,g=3DB.width/2;b.textAlign=3D"center";b.font=3D"Bold 12px = Sans-Serif";a=3D=3D=3Dd&&(g-=3Dv.width,b.drawImage(v,B.width-(B.width-b.m= easureText(d).width)/2-4,(f-v.height)/2));b.fillText(a,g,c+4)}function = t(a){a=3Da||d;var = b=3DB.getContext("2d");b.clearRect(0,0,e,f);A(b,0,0,e,f,5,!0,!1,!0);A(b,0= ,0,e,f,5,!1,!0,!0);b.fillStyle=3D"#FFFFFF";b.globalAlpha=3D1;var = c=3DB.height/2,g=3DB.width/2;b.textAlign=3D"center";b.font=3D"Bold 12px = Sans-Serif";a=3D=3D=3Dd&&(g-=3Dv.width,b.drawImage(C,=0A= B.width-(B.width-b.measureText(d).width)/2-4,(f-v.height)/2));b.fillText(= a,g,c+4)}function A(a,b,c,f,e,g,j,m,h){"undefined"=3D=3D=3Dtypeof = m&&(m=3D!0);"undefined"=3D=3D=3Dtypeof = g&&(g=3D5);a.beginPath();a.moveTo(b+g,c);a.lineTo(b+f-g,c);a.quadraticCur= veTo(b+f,c,b+f,c+g);a.lineTo(b+f,c+e-g);a.quadraticCurveTo(b+f,c+e,b+f-g,= c+e);a.lineTo(b+g,c+e);a.quadraticCurveTo(b,c+e,b,c+e-g);a.lineTo(b,c+g);= a.quadraticCurveTo(b,c,b+g,c);a.closePath();m&&(a.strokeStyle=3D"white",a= .globalAlpha=3Dh?1:0.25,a.stroke());j&&(a.fillStyle=3D=0A= "#000000",a.globalAlpha=3D0.5,a.fill())}function y(a,b){var = c=3Ddocument.createElement(a);b&&(c.className=3Db);return c}var = m,B,z=3D-1,u=3D!1,q,w=3D0,v,C,F=3D!1,x=3Dk.extend(this,new = c.eventdispatcher);x.updateSkipTime=3Dfunction(b,c){l(b,c);0<=3Dz&&(a.sty= le(m,{visibility:q?"visible":"hidden"}),0<z-b?(j(b),u&&(u=3D!1,m.style.cu= rsor=3D"default")):u||(u||(u=3D!0,m.style.cursor=3D"pointer"),F?t():s()))= };this.reset=3Dfunction(a){u=3D!1;w=3Da;l(0,0);j(0)};x.show=3Dfunction(){= q=3D!0;0<z&&a.style(m,{visibility:"visible"})};x.hide=3Dfunction(){q=3D=0A= !1;a.style(m,{visibility:"hidden"})};this.element=3Dfunction(){return = m};v=3Dnew = Image;v.src=3D"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAYA= AAArzdW1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MO= mNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaU= h6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg= 6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0x= MjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZ= y8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdX= Q9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5= zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYj= IiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpb= mFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ODkzMWI3Ny04YjE5LTQzYzMtOGM2Ni0wYzdkODNmZT= llNDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDI0OTcxRkE0OEM2MTFFM0I4MTREM0Z= BQTFCNDE3NTgiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDI0OTcxRjk0OEM2MTFFM0I4= MTREM0ZBQTFCNDE3NTgiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNY= WNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paW= Q6NDA5ZGQxNDktNzdkMi00M2E3LWJjYWYtOTRjZmM2MWNkZDI0IiBzdFJlZjpkb2N1bWVudEl= EPSJ4bXAuZGlkOjQ4OTMxYjc3LThiMTktNDNjMy04YzY2LTBjN2Q4M2ZlOWU0NiIvPiA8L3Jk= ZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0ic= iI/PqAZXX0AAABYSURBVHjafI2BCcAwCAQ/kr3ScRwjW+g2SSezCi0kYHpwKLy8JCLDbWaGTM= +MAFzuVNXhNiTQsh+PS9QhZ7o9JuFMeUVNwjsamDma4K+3oy1cqX/hxyPAAAQwNKV27g9PAAA= AAElFTkSuQmCC";=0A= v.className=3D"jwskipimage jwskipout";C=3Dnew = Image;C.src=3D"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAYA= AAArzdW1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MO= mNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaU= h6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg= 6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0x= MjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZ= y8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdX= Q9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5= zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYj= IiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpb= mFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ODkzMWI3Ny04YjE5LTQzYzMtOGM2Ni0wYzdkODNmZT= llNDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDI0OTcxRkU0OEM2MTFFM0I4MTREM0Z= BQTFCNDE3NTgiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDI0OTcxRkQ0OEM2MTFFM0I4= MTREM0ZBQTFCNDE3NTgiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNY= WNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paW= Q6NDA5ZGQxNDktNzdkMi00M2E3LWJjYWYtOTRjZmM2MWNkZDI0IiBzdFJlZjpkb2N1bWVudEl= EPSJ4bXAuZGlkOjQ4OTMxYjc3LThiMTktNDNjMy04YzY2LTBjN2Q4M2ZlOWU0NiIvPiA8L3Jk= ZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0ic= iI/PvgIj/QAAABYSURBVHjadI6BCcAgDAS/0jmyih2tm2lHSRZJX6hQQ3w4FP49LKraSHV3ZL= DzAuAi3cwaqUhSfvft+EweznHneUdTzPGRmp5hEJFhAo3LaCnjn7blzCvAAH9YOSCL5RZKAAA= AAElFTkSuQmCC";=0A= C.className=3D"jwskipimage = jwskipover";m=3Dy("div","jwskip");m.id=3Dg+"_skipcontainer";B=3Dy("canvas= ");m.appendChild(B);x.width=3DB.width=3De;x.height=3DB.height=3Df;m.appen= dChild(C);m.appendChild(v);a.style(m,{visibility:"hidden",bottom:h});m.ad= dEventListener("mouseover",function(){F=3D!0;u&&t()});m.addEventListener(= "mouseout",function(){F=3D!1;u&&s()});k.isMobile()?(new = k.touch(m)).addEventListener(k.touchEvents.TAP,r):m.addEventListener("cli= ck",r)};a(".jwskip",{position:"absolute","float":"right",display:"inline-= block",=0A= width:e,height:f,right:10});a(".jwskipimage",{position:"relative",display= :"none"})})(window.jwplayer);=0A= (function(d){var = k=3Dd.html5,a=3Dd.utils,c=3Dd.events,e=3Dc.state,f=3Dd.parsers,g=3Da.css,= h=3Da.isAndroid(4,!0),b=3D"playing";k.captions=3Dfunction(g,j){function = k(b){a.log("CAPTIONS("+b+")")}function = r(a){(I=3Da.fullscreen)?(s(),setTimeout(s,500)):m(!0)}function s(){var = a=3Dw.offsetHeight,b=3Dw.offsetWidth;0!=3D=3Da&&0!=3D=3Db&&F.resize(b,Mat= h.round(0.94*a))}function t(b,c){a.ajax(b,function(a){var = b=3Da.responseXML?a.responseXML.firstChild:null;L++;if(b){"xml"=3D=3D=3Df= .localName(b)&&(b=3Db.nextSibling);for(;b.nodeType=3D=3D=3Db.COMMENT_NODE= ;)b=3D=0A= b.nextSibling}b=3Db&&"tt"=3D=3D=3Df.localName(b)?new d.parsers.dfxp:new = d.parsers.srt;try{var = g=3Db.parse(a.responseText);K<n.length&&(n[c].data=3Dg);m(!1)}catch(e){k(= e.message+": = "+n[c].file)}L=3D=3D=3Dn.length&&(0<J&&(z(J),J=3D-1),y())},A,!0)}function= A(a){L++;k(a);L=3D=3D=3Dn.length&&(0<J&&(z(J),J=3D-1),y())}function = y(){for(var = a=3D[],b=3D0;b<n.length;b++)a.push(n[b]);G.sendEvent(c.JWPLAYER_CAPTIONS_= LOADED,{captionData:a})}function = m(a){n.length?x=3D=3D=3Db&&0<M?(F.show(),I?r({fullscreen:!0}):(B(),a&&set= Timeout(B,500))):F.hide():=0A= F.hide()}function B(){F.resize()}function = z(a){0<a?(K=3Da-1,M=3DMath.floor(a),K>=3Dn.length||(n[K].data?F.populate(= n[K].data):L=3D=3D=3Dn.length?(k("file not loaded: = "+n[K].file),0!=3D=3DM&&u(c.JWPLAYER_CAPTIONS_CHANGED,n,0),M=3D0):J=3Da,m= (!1))):(M=3D0,m(!1))}function = u(a,b,c){G.sendEvent(a,{type:a,tracks:b,track:c})}function q(){for(var = a=3D[{label:"Off"}],b=3D0;b<n.length;b++)a.push({label:n[b].label});retur= n a}var = w,v=3D{back:!0,color:"#FFFFFF",fontSize:15,fontFamily:"Arial,sans-serif",= fontOpacity:100,backgroundColor:"#000",=0A= backgroundOpacity:100,edgeStyle:null,windowColor:"#FFFFFF",windowOpacity:= 0},C=3D{fontStyle:"normal",fontWeight:"normal",textDecoration:"none"},F,x= ,K,n=3D[],L=3D0,J=3D-1,M=3D0,I=3D!1,G=3Dnew = c.eventdispatcher;a.extend(this,G);this.element=3Dfunction(){return = w};this.getCaptionsList=3Dfunction(){return = q()};this.getCurrentCaptions=3Dfunction(){return = M};this.setCurrentCaptions=3Dfunction(b){0<=3Db&&(M!=3D=3Db&&b<=3Dn.lengt= h)&&(z(b),b=3Dq(),a.saveCookie("captionLabel",b[M].label),u(c.JWPLAYER_CA= PTIONS_CHANGED,b,M))};w=3Ddocument.createElement("div");=0A= w.id=3Dg.id+"_caption";w.className=3D"jwcaptions";g.jwAddEventListener(c.= JWPLAYER_PLAYER_STATE,function(a){switch(a.newstate){case = e.IDLE:x=3D"idle";m(!1);break;case = e.PLAYING:x=3Db,m(!1)}});g.jwAddEventListener(c.JWPLAYER_PLAYLIST_ITEM,fu= nction(){K=3D0;n=3D[];F.update(0);L=3D0;for(var = b=3Dg.jwGetPlaylist()[g.jwGetPlaylistIndex()].tracks,f=3D[],e=3D0,j=3D"",= d=3D0,j=3D"",e=3D0;e<b.length;e++)j=3Db[e].kind.toLowerCase(),("captions"= =3D=3D=3Dj||"subtitles"=3D=3D=3Dj)&&f.push(b[e]);M=3D0;if(!h){for(e=3D0;e= <f.length;e++)if(j=3Df[e].file)f[e].label||=0A= (f[e].label=3De.toString()),n.push(f[e]),t(n[e].file,e);for(e=3D0;e<n.len= gth;e++)if(n[e]["default"]){d=3De+1;break}b=3Da.getCookies();if(j=3Db.cap= tionLabel){b=3Dq();for(e=3D0;e<b.length;e++)if(j=3D=3D=3Db[e].label){d=3D= e;break}}0<d&&z(d);m(!1);u(c.JWPLAYER_CAPTIONS_LIST,q(),M)}});g.jwAddEven= tListener(c.JWPLAYER_MEDIA_ERROR,k);g.jwAddEventListener(c.JWPLAYER_ERROR= ,k);g.jwAddEventListener(c.JWPLAYER_READY,function(){a.foreach(v,function= (a,b){j&&(void 0!=3D=3Dj[a]?b=3Dj[a]:void = 0!=3D=3Dj[a.toLowerCase()]&&(b=3Dj[a.toLowerCase()]));C[a]=3D=0A= b});F=3Dnew = d.html5.captions.renderer(C,w);m(!1)});g.jwAddEventListener(c.JWPLAYER_ME= DIA_TIME,function(a){F.update(a.position)});g.jwAddEventListener(c.JWPLAY= ER_FULLSCREEN,r);g.jwAddEventListener(c.JWPLAYER_RESIZE,function(){m(!1)}= )};g(".jwcaptions",{position:"absolute",cursor:"pointer",width:"100%",hei= ght:"100%",overflow:"hidden"})})(jwplayer);=0A= (function(d){var = k=3Dd.utils,a=3Dk.css.style;d.html5.captions.renderer=3Dfunction(c,e){fun= ction = f(b){b=3Db||"";A=3D"hidden";a(j,{visibility:A});r.innerHTML=3Db;b.length&= &(A=3D"visible",setTimeout(g,16))}function = g(){if("visible"=3D=3D=3DA){var = b=3Dj.clientWidth,e=3DMath.pow(b/400,0.6),f=3Dc.fontSize*e;a(r,{maxWidth:= b+"px",fontSize:Math.round(f)+"px",lineHeight:Math.round(1.4*f)+"px",padd= ing:Math.round(1*e)+"px = "+Math.round(8*e)+"px"});c.windowOpacity&&a(l,{padding:Math.round(5*e)+"p= x",borderRadius:Math.round(5*e)+"px"});a(j,=0A= {visibility:A})}}function d(){for(var = a=3D-1,b=3D0;b<p.length;b++)if(p[b].begin<=3Dt&&(b=3D=3D=3Dp.length-1||p[= b+1].begin>=3Dt)){a=3Db;break}-1=3D=3D=3Da?f(""):a!=3D=3Ds&&(s=3Da,f(p[b]= .text))}function = b(a,b,c){c=3Dk.hexToRgba("#000000",c);"dropshadow"=3D=3D=3Da?b.textShadow= =3D"0 2px 1px "+c:"raised"=3D=3D=3Da?b.textShadow=3D"0 0 5px "+c+", 0 = 1px 5px "+c+", 0 2px 5px "+c:"depressed"=3D=3D=3Da?b.textShadow=3D"0 = -2px 1px "+c:"uniform"=3D=3D=3Da&&(b.textShadow=3D"-2px 0 1px "+c+",2px = 0 1px "+c+",0 -2px 1px "+c+",0 2px 1px "+c+",-1px 1px 1px "+c+",1px 1px = 1px "+=0A= c+",1px -1px 1px "+c+",1px 1px 1px "+c)}var = p,j,l,r,s,t,A=3D"visible",y=3D-1;this.hide=3Dfunction(){clearInterval(y);= a(j,{display:"none"})};this.populate=3Dfunction(a){s=3D-1;p=3Da;d()};this= .resize=3Dfunction(){g()};this.show=3Dfunction(){a(j,{display:"block"});g= ();clearInterval(y);y=3DsetInterval(g,250)};this.update=3Dfunction(a){t=3D= a;p&&d()};var = m=3Dc.fontOpacity,B=3Dc.windowOpacity,z=3Dc.edgeStyle,u=3Dc.backgroundCol= or,q=3D{display:"inline-block"},w=3D{color:k.hexToRgba(k.rgbHex(c.color),= m),display:"inline-block",fontFamily:c.fontFamily,=0A= fontStyle:c.fontStyle,fontWeight:c.fontWeight,textAlign:"center",textDeco= ration:c.textDecoration,wordWrap:"break-word"};B&&(q.backgroundColor=3Dk.= hexToRgba(k.rgbHex(c.windowColor),B));b(z,w,m);c.back?w.backgroundColor=3D= k.hexToRgba(k.rgbHex(u),c.backgroundOpacity):null=3D=3D=3Dz&&b("uniform",= w);j=3Ddocument.createElement("div");l=3Ddocument.createElement("div");r=3D= document.createElement("span");a(j,{display:"block",height:"auto",positio= n:"absolute",bottom:"20px",textAlign:"center",width:"100%"});a(l,q);a(r,w= );l.appendChild(r);=0A= j.appendChild(l);e.appendChild(j)}})(jwplayer);=0A= (function(d,k,a){function c(a){return a?parseInt(a.width,10)+"px = "+parseInt(a.height,10)+"px":"0 0"}var = e=3Dd.jwplayer,f=3De.html5,g=3De.utils,h=3De._,b=3De.events,p=3Db.state,j= =3Dg.css,l=3Dg.transitionStyle,r=3Dg.isMobile(),s=3Dg.isAndroid(4,!0),t=3D= d.top!=3D=3Dd.self,A=3D"button",y=3D"text",m=3D"slider",B=3D{display:"non= e"},z=3D{display:"block"},u=3D{display:""};f.controlbar=3Dfunction(q,l){f= unction v(a,b,c){return{name:a,type:b,className:c}}function = C(a){j.block($);var = b=3Da.duration=3D=3D=3DNumber.POSITIVE_INFINITY,c=3D0=3D=3D=3Da.duration&= &0!=3D=3Da.position&&=0A= g.isSafari()&&!r;b||c?(V.setText(q.jwGetPlaylist()[q.jwGetPlaylistIndex()= ].title||"Live = broadcast"),D(!1)):(E.elapsed&&(b=3Dg.timeFormat(a.position),E.elapsed.in= nerHTML=3Db),E.duration&&(b=3Dg.timeFormat(a.duration),E.duration.innerHT= ML=3Db),0<a.duration?pa(a.position/a.duration):pa(0),la=3Da.duration,ma||= V.setText())}function F(){var = a=3Dq.jwGetMute();Ma=3Dq.jwGetVolume()/100;aa("mute",a||0=3D=3D=3DMa);Ta(= a?0:Ma)}function x(){j.style([E.hd,E.cc],B);$a();ba()}function = K(a){Ga=3DMath.floor(a.currentQuality);E.hd&&(E.hd.querySelector("button"= ).className=3D=0A= 2=3D=3D=3Dia.length&&0=3D=3D=3DGa?"off":"");qa&&0<=3DGa&&qa.setActive(a.c= urrentQuality)}function = n(a){da&&(Na=3DMath.floor(a.track),E.cc&&(E.cc.querySelector("button").cl= assName=3D2=3D=3D=3Dda.length&&0=3D=3D=3DNa?"off":""),ra&&0<=3DNa&&ra.set= Active(a.track))}function = L(a){E.cast&&(g.canCast()?g.addClass(E.cast,"jwcancast"):g.removeClass(E.= cast,"jwcancast"));J(a||Oa)}function = J(a){Oa=3Da;aa("cast",a.active);ba()}function = M(){ta=3Dg.extend({},ea,Y.getComponentSettings("controlbar"),l);fa=3DS("b= ackground").height;var a=3Dua?0:ta.margin;j.style(W,=0A= {height:fa,bottom:a,left:a,right:a,"max-width":ua?"":ta.maxwidth});j(I(".= jwtext"),{font:ta.fontsize+"px/"+S("background").height+"px = "+ta.font,color:ta.fontcolor,"font-weight":ta.fontweight});j(I(".jwoverla= y"),{bottom:fa})}function I(a){return"#"+$+(a?" "+a:"")}function = G(){return k.createElement("span")}function O(a,b,e,f,n){var = m=3DG(),d=3DS(a);f=3Df?" left center":" center";var = h=3Dc(d);m.className=3D"jw"+a;m.innerHTML=3D"\x26nbsp;";if(d&&d.src)retur= n e=3De?{background:'url("'+d.src+'") repeat-x '+f,"background-size":h,=0A= height:n?d.height:""}:{background:'url("'+d.src+'") = no-repeat'+f,"background-size":h,width:d.width,height:n?d.height:""},m.sk= in=3Dd,j(I((n?".jwvertical = ":"")+".jw"+a),g.extend(e,b)),E[a]=3Dm}function = R(a,b,e,f){b&&b.src&&(j(a,{width:b.width,background:"url("+b.src+") = no-repeat = center","background-size":c(b)}),e.src&&!r&&j(a+":hover,"+a+".off:hover",= {background:"url("+e.src+") no-repeat = center","background-size":c(e)}),f&&f.src&&j(a+".off",{background:"url("+= f.src+") no-repeat center","background-size":c(f)}))}=0A= function Q(a){return = function(c){rb[a]&&(rb[a](),r&&V.sendEvent(b.JWPLAYER_USER_ACTION));c.pre= ventDefault&&c.preventDefault()}}function = T(b){g.foreach(kb,function(c,e){c!=3D=3Db&&("cc"=3D=3D=3Dc&&(clearTimeout= (Ha),Ha=3Da),"hd"=3D=3D=3Dc&&(clearTimeout(Ia),Ia=3Da),e.hide())})}functi= on = D(b){W&&E.alt&&(b=3D=3D=3Da&&(b=3DW.parentNode&&320<=3DW.parentNode.clien= tWidth),b&&!ma?j.style(Ua,u):j.style(Ua,B))}function = U(){!ua&&!ma&&(j.block($),na.show(),Ja("volume",na),T("volume"))}function= aa(a,b){h.isBoolean(b)||(b=3D!fb[a]);E[a]&&(b?g.addClass(E[a],=0A= "jwtoggle"):g.removeClass(E[a],"jwtoggle"),g.addClass(E[a],"jwtoggling"),= setTimeout(function(){g.removeClass(E[a],"jwtoggling")},100));fb[a]=3Db}f= unction = Z(){ia&&2<ia.length&&(Ka&&(clearTimeout(Ka),Ka=3Da),j.block($),qa.show(),= Ja("hd",qa),T("hd"))}function = ca(){da&&2<da.length&&(lb&&(clearTimeout(lb),lb=3Da),j.block($),ra.show()= ,Ja("cc",ra),T("cc"))}function = ha(b){0<=3Db&&b<ia.length&&(q.jwSetCurrentQuality(b),clearTimeout(Ia),Ia=3D= a,qa.hide())}function = oa(b){0<=3Db&&b<da.length&&(q.jwSetCurrentCaptions(b),clearTimeout(Ha),=0A= Ha=3Da,ra.hide())}function = Da(){2=3D=3D=3Dda.length&&oa((Na+1)%2)}function = H(){2=3D=3D=3Dia.length&&ha((Ga+1)%2)}function = Fa(a){a.preventDefault();k.onselectstart=3Dfunction(){return!1}}function = za(a){Ca();Aa=3Da;d.addEventListener("mouseup",ab,!1);d.addEventListener(= "mousemove",ab,!1)}function = Ca(){d.removeEventListener("mouseup",ab);d.removeEventListener("mousemove= ",ab);Aa=3Dnull}function = Sa(){E.timeRail.className=3D"jwrail";q.jwGetState()!=3D=3Dp.IDLE&&(q.jwSe= ekDrag(!0),za("time"),Va(),V.sendEvent(b.JWPLAYER_USER_ACTION))}=0A= function jb(a){if(Aa){var = c=3DE[Aa].querySelector(".jwrail"),c=3Dg.bounds(c),c=3Da.x/c.width;100<c&= &(c=3D100);a.type=3D=3D=3Dg.touchEvents.DRAG_END?(q.jwSeekDrag(!1),E.time= Rail.className=3D"jwrail",Ca(),gb.time(c),Wa()):(pa(c),a=3D(new = Date).getTime(),500<a-mb&&(mb=3Da,gb.time(c)));V.sendEvent(b.JWPLAYER_USE= R_ACTION)}}function pb(a){var = c=3DE.time.querySelector(".jwrail"),c=3Dg.bounds(c);a=3Da.x/c.width;100<a= &&(a=3D100);q.jwGetState()!=3D=3Dp.IDLE&&(gb.time(a),V.sendEvent(b.JWPLAY= ER_USER_ACTION))}function Pa(a){return function(b){b.button||=0A= (E[a+"Rail"].className=3D"jwrail","time"=3D=3D=3Da?q.jwGetState()!=3D=3Dp= .IDLE&&(q.jwSeekDrag(!0),za(a)):za(a))}}function = ab(a){if(Aa&&!a.button){var = b=3DE[Aa].querySelector(".jwrail"),c=3Dg.bounds(b),b=3DAa,c=3DXa()?E[b].v= ertical?(100*c.bottom-a.pageY)/(100*c.height):(a.pageX-100*c.left)/(100*c= .width):E[b].vertical?(c.bottom-a.pageY)/c.height:(a.pageX-c.left)/c.widt= h;"mouseup"=3D=3D=3Da.type?("time"=3D=3D=3Db&&q.jwSeekDrag(!1),E[b+"Rail"= ].className=3D"jwrail",Ca(),gb[b.replace("H","")](c)):("time"=3D=3D=3DAa?= pa(c):Ta(c),a=3D(new Date).getTime(),=0A= 500<a-mb&&(mb=3Da,gb[Aa.replace("H","")](c)));return!1}}function = Va(a){a&&bb.apply(this,arguments);ja&&(la&&!ua&&!r)&&(j.block($),ja.show(= ),Ja("time",ja))}function Wa(){ja&&ja.hide()}function = bb(a){xa=3Dg.bounds(W);if((Qa=3Dg.bounds(va))&&0!=3D=3DQa.width){var = b;Xa()?(a=3Da.pageX?a.pageX-100*Qa.left:a.x,b=3D100*Qa.width):(a=3Da.page= X?a.pageX-Qa.left:a.x,b=3DQa.width);ja.positionX(Math.round(a));qb(la*a/b= )}}function P(){g.foreach(hb,function(a,b){var = c=3D{};"%"=3D=3D=3Db.position.toString().slice(-1)?c.left=3Db.position:0<= la?=0A= (c.left=3D(100*b.position/la).toFixed(2)+"%",c.display=3Dnull):(c.left=3D= 0,c.display=3D"none");j.style(b.element,c)})}function = Ea(){lb=3DsetTimeout(ra.hide,500)}function = sa(){Ka=3DsetTimeout(qa.hide,500)}function cb(a,b,c,e){if(!r){var = f=3Da.element();b.appendChild(f);b.addEventListener("mousemove",c,!1);e?b= .addEventListener("mouseout",e,!1):b.addEventListener("mouseout",a.hide,!= 1);j.style(f,{left:"50%"})}}function Ya(c,e,f,n){if(r){var = j=3Dc.element();e.appendChild(j);(new = g.touch(e)).addEventListener(g.touchEvents.TAP,=0A= function(){var = e=3Df;"cc"=3D=3D=3Dn?(2=3D=3D=3Dda.length&&(e=3DDa),Ha?(clearTimeout(Ha),= Ha=3Da,c.hide()):(Ha=3DsetTimeout(function(){c.hide();Ha=3Da},4E3),e()),V= .sendEvent(b.JWPLAYER_USER_ACTION)):"hd"=3D=3D=3Dn&&(2=3D=3D=3Dia.length&= &(e=3DH),Ia?(clearTimeout(Ia),Ia=3Da,c.hide()):(Ia=3DsetTimeout(function(= ){c.hide();Ia=3Da},4E3),e()),V.sendEvent(b.JWPLAYER_USER_ACTION))})}}func= tion ya(a){var b=3DG();b.className=3D"jwgroup = jw"+a;Ba[a]=3Db;if(ka[a]){var = b=3Dka[a],e=3DBa[a];if(b&&0<b.elements.length)for(var = n=3D0;n<b.elements.length;n++){var d;a:{d=3Db.elements[n];=0A= var h=3Da;switch(d.type){case y:h=3Dvoid 0;d=3Dd.name;var = h=3D{},q=3DS(("alt"=3D=3D=3Dd?"elapsed":d)+"Background");if(q.src){var = l=3DG();l.id=3D$+"_"+d;"elapsed"=3D=3D=3Dd||"duration"=3D=3D=3Dd?(l.class= Name=3D"jwtext jw"+d+" jwhidden",Ua.push(l)):l.className=3D"jwtext = jw"+d;h.background=3D"url("+q.src+") repeat-x = center";h["background-size"]=3Dc(S("background"));j.style(l,h);l.innerHTM= L=3D"alt"!=3D=3Dd?"00:00":"";h=3DE[d]=3Dl}else h=3Dnull;d=3Dh;break = a;case = A:if("blank"!=3D=3Dd.name){d=3Dd.name;q=3Dh;if(!S(d+"Button").src||r&&("m= ute"=3D=3D=3Dd||0=3D=3D=3Dd.indexOf("volume"))||=0A= s&&/hd|cc/.test(d))d=3Dnull;else{var h=3DG(),l=3DG(),t=3Dvoid = 0,t=3Dga,p=3DO(t.name);p||(p=3DG(),p.className=3D"jwblankDivider");t.clas= sName&&(p.className+=3D" = "+t.className);t=3Dp;p=3Dk.createElement("button");h.style+=3D" = display:inline-block";h.className=3D"jw"+d;"left"=3D=3D=3Dq?(h.appendChil= d(l),h.appendChild(t)):(h.appendChild(t),h.appendChild(l));r?"hd"!=3D=3Dd= &&"cc"!=3D=3Dd&&(new = g.touch(p)).addEventListener(g.touchEvents.TAP,Q(d)):p.addEventListener("= click",Q(d),!1);p.innerHTML=3D"\x26nbsp;";p.tabIndex=3D-1;l.appendChild(p= );q=3DS(d+=0A= "Button");l=3DS(d+"ButtonOver");t=3DS(d+"ButtonOff");R(I(".jw"+d+" = button"),q,l,t);(q=3Dxb[d])&&R(I(".jw"+d+".jwtoggle = button"),S(q+"Button"),S(q+"ButtonOver"));fb[d]?g.addClass(h,"jwtoggle"):= g.removeClass(h,"jwtoggle");d=3DE[d]=3Dh}break a}break;case m:h=3Dvoid = 0;t=3Dd.name;if(r&&0=3D=3D=3Dt.indexOf("volume"))h=3Dvoid = 0;else{d=3DG();var = l=3D"volume"=3D=3D=3Dt,v=3Dt+("time"=3D=3D=3Dt?"Slider":"")+"Cap",q=3Dl?"= Top":"Left",h=3Dl?"Bottom":"Right",p=3DO(v+q,null,!1,!1,l),x=3DO(v+h,null= ,!1,!1,l),K;K=3Dt;var = w=3Dl,L=3Dq,Z=3Dh,u=3DG(),C=3D["Rail","Buffer","Progress"],=0A= J=3Dvoid 0,D=3Dvoid 0;u.className=3D"jwrail";for(var = U=3D0;U<C.length;U++){var = D=3D"time"=3D=3D=3DK?"Slider":"",z=3DK+D+C[U],F=3DO(z,null,!w,0=3D=3D=3DK= .indexOf("volume"),w),M=3DO(z+"Cap"+L,null,!1,!1,w),Ka=3DO(z+"Cap"+Z,null= ,!1,!1,w),H=3DS(z+"Cap"+L),T=3DS(z+"Cap"+Z);if(F){var = N=3DG();N.className=3D"jwrailgroup = "+C[U];M&&N.appendChild(M);N.appendChild(F);Ka&&(N.appendChild(Ka),Ka.cla= ssName+=3D" = jwcap"+(w?"Bottom":"Right"));j(I(".jwrailgroup."+C[U]),{"min-width":w?"":= H.width+T.width});N.capSize=3Dw?H.height+T.height:H.width+T.width;j(I("."= +=0A= F.className),{left:w?"":H.width,right:w?"":T.width,top:w?H.height:"",bott= om:w?T.height:"",height:w?"auto":""});2=3D=3D=3DU&&(J=3DN);2=3D=3D=3DU&&!= w?(F=3DG(),F.className=3D"jwprogressOverflow",F.appendChild(N),E[z]=3DF,u= .appendChild(F)):(E[z]=3DN,u.appendChild(N))}}if(L=3DO(K+D+"Thumb",null,!= 1,!1,w))j(I("."+L.className),{opacity:"time"=3D=3D=3DK?0:1,"margin-top":w= ?L.skin.height/-2:""}),L.className+=3D" = jwthumb",(w&&J?J:u).appendChild(L);r?(w=3Dnew = g.touch(u),w.addEventListener(g.touchEvents.DRAG_START,Sa),w.addEventList= ener(g.touchEvents.DRAG,=0A= jb),w.addEventListener(g.touchEvents.DRAG_END,jb),w.addEventListener(g.to= uchEvents.TAP,pb)):(J=3DK,"volume"=3D=3D=3DJ&&!w&&(J+=3D"H"),u.addEventLi= stener("mousedown",Pa(J),!1));"time"=3D=3D=3DK&&!r&&(u.addEventListener("= mousemove",Va,!1),u.addEventListener("mouseout",Wa,!1));K=3DE[K+"Rail"]=3D= u;u=3DS(v+q);v=3DS(v+q);d.className=3D"jwslider = jw"+t;p&&d.appendChild(p);d.appendChild(K);x&&(l&&(x.className+=3D" = jwcapBottom"),d.appendChild(x));j(I(".jw"+t+" = .jwrail"),{left:l?"":u.width,right:l?"":v.width,top:l?u.height:"",bottom:= l?=0A= v.height:"",width:l?"100%":"",height:l?"auto":""});E[t]=3Dd;d.vertical=3D= l;"time"=3D=3D=3Dt?(ja=3Dnew f.overlay($+"_timetooltip",Y),Ra=3Dnew = f.thumbs($+"_thumb"),ib=3Dk.createElement("div"),ib.className=3D"jwoverla= ytext",Za=3Dk.createElement("div"),h=3DRa.element(),Za.appendChild(h),Za.= appendChild(ib),ja.setContents(Za),va=3DK,qb(0),h=3Dja.element(),K.append= Child(h),E.timeSliderRail||j.style(E.time,B),E.timeSliderThumb&&j.style(E= .timeSliderThumb,{"margin-left":S("timeSliderThumb").width/-2}),h=3DS("ti= meSliderCue"),q=3D{"z-index":1},=0A= h&&h.src?(O("timeSliderCue"),q["margin-left"]=3Dh.width/-2):q.display=3D"= none",j(I(".jwtimeSliderCue"),q),wa(0),pa(0),pa(0),wa(0)):0=3D=3D=3Dt.ind= exOf("volume")&&(t=3Dd,p=3D"volume"+(l?"":"H"),x=3Dl?"vertical":"horizont= al",j(I(".jw"+p+".jw"+x),{width:S(p+"Rail",l).width+(l?0:S(p+"Cap"+q).wid= th+S(p+"RailCap"+q).width+S(p+"RailCap"+h).width+S(p+"Cap"+h).width),heig= ht:l?S(p+"Cap"+q).height+S(p+"Rail").height+S(p+"RailCap"+q).height+S(p+"= RailCap"+h).height+S(p+"Cap"+h).height:""}),t.className+=3D" = jw"+x);h=3Dd}d=3Dh;break a}d=3D=0A= void 0}d&&("volume"=3D=3D=3Db.elements[n].name&&d.vertical?(na=3Dnew = f.overlay($+"_volumeOverlay",Y),na.setContents(d)):e.appendChild(d))}}}fu= nction Xa(){return t&&g.isIE()&&q.jwGetFullscreen()}function = ba(){clearTimeout(sb);sb=3DsetTimeout(V.redraw,0)}function = $a(){!nb&&1<q.jwGetPlaylist().length&&(!k.querySelector("#"+q.id+" = .jwplaylist")||q.jwGetFullscreen())?(j.style(E.next,u),j.style(E.prev,u))= :(j.style(E.next,B),j.style(E.prev,B))}function = Ja(a,b){xa||(xa=3Dg.bounds(W));b.constrainX(xa,!0)}function = wa(a){E.timeSliderBuffer&&=0A= (a=3DMath.min(Math.max(0,a),1),j.style(E.timeSliderBuffer,{width:(100*a).= toFixed(1)+"%",opacity:0<a?1:0}))}function La(a,b){if(E[a]){var = c=3DE[a].vertical,e=3Da+("time"=3D=3D=3Da?"Slider":""),f=3D100*Math.min(M= ath.max(0,b),1)+"%",d=3DE[e+"Progress"],e=3DE[e+"Thumb"],g;d&&(g=3D{},c?(= g.height=3Df,g.bottom=3D0):g.width=3Df,"volume"!=3D=3Da&&(g.opacity=3D0<b= ||Aa?1:0),j.style(d,g));e&&(g=3D{},c?g.top=3D0:g.left=3Df,j.style(e,g))}}= function Ta(a){La("volume",a);La("volumeH",a)}function = pa(a){La("time",a)}function S(b){var c=3D"controlbar",e=3Db;=0A= 0=3D=3D=3Db.indexOf("volume")&&(0=3D=3D=3Db.indexOf("volumeH")?e=3Db.repl= ace("volumeH","volume"):c=3D"tooltip");return(b=3DY.getSkinElement(c,e))?= b:{width:0,height:0,src:"",image:a,ready:!1}}function N(a){a=3D(new = e.parsers.srt).parse(a.responseText,!0);if(!h.isArray(a))return = X("Invalid data");V.addCues(a)}function X(a){g.log("Cues failed to load: = "+a)}l=3Dl||{};var = Y,ga=3Dv("divider","divider"),ea=3D{margin:8,maxwidth:800,font:"Arial,san= s-serif",fontsize:11,fontcolor:15658734,fontweight:"bold",layout:{left:{p= osition:"left",=0A= elements:[v("play",A),v("prev",A),v("next",A),v("elapsed",y)]},center:{po= sition:"center",elements:[v("time",m),v("alt",y)]},right:{position:"right= ",elements:[v("duration",y),v("hd",A),v("cc",A),v("mute",A),v("volume",m)= ,v("volumeH",m),v("cast",A),v("fullscreen",A)]}}},ta,ka,E,fa,W,$,la,ia,Ga= ,da,Na,Ma,Oa=3D{},na,xa,va,Qa,ja,Za,Ra,ib,Ka,Ia,qa,lb,Ha,ra,sb,db=3D-1,ua= =3D!1,ma=3D!1,nb=3D!1,ob=3D!1,Aa=3Dnull,mb=3D0,hb=3D[],eb,xb=3D{play:"pau= se",mute:"unmute",cast:"casting",fullscreen:"normalscreen"},fb=3D{play:!1= ,mute:!1,cast:!1,=0A= fullscreen:l.fullscreen||!1},rb=3D{play:function(){fb.play?q.jwPause():q.= jwPlay()},mute:function(){var = a=3D!fb.mute;q.jwSetMute(a);!a&&0=3D=3D=3DMa&&q.jwSetVolume(20);F()},full= screen:function(){q.jwSetFullscreen()},next:function(){q.jwPlaylistNext()= },prev:function(){q.jwPlaylistPrev()},hd:H,cc:Da,cast:function(){Oa.activ= e?q.jwStopCasting():q.jwStartCasting()}},gb=3D{time:function(a){eb?(a=3De= b.position,a=3D"%"=3D=3D=3Da.toString().slice(-1)?la*parseFloat(a.slice(0= ,-1))/100:parseFloat(a)):a*=3Dla;q.jwSeek(a)},volume:function(a){Ta(a);=0A= 0.1>a&&(a=3D0);0.9<a&&(a=3D1);q.jwSetVolume(100*a)}},kb=3D{},Ua=3D[],V=3D= g.extend(this,new = b.eventdispatcher),qb,tb,yb=3Dfunction(a){j.style(ja.element(),{width:a})= ;Ja("time",ja)};qb=3Dfunction(a){var = b=3DRa.updateTimeline(a,yb);if(eb){if((a=3Deb.text)&&a!=3D=3Dtb)tb=3Da,j.= style(ja.element(),{width:32<a.length?160:""})}else = a=3Dg.timeFormat(a),b||j.style(ja.element(),{width:""});ib.innerHTML!=3D=3D= a&&(ib.innerHTML=3Da);Ja("time",ja)};V.setText=3Dfunction(a){j.block($);v= ar b=3DE.alt,c=3DE.time;E.timeSliderRail?j.style(c,a?B:z):j.style(c,=0A= B);b&&(j.style(b,a?z:B),b.innerHTML=3Da||"");ba()};var = Ba=3D{};V.redraw=3Dfunction(a){j.block($);a&&V.visible&&V.show(!0);M();va= r = b=3Dt&&g.isMSIE();a=3DOa.active;j.style(E.fullscreen,{display:ua||a||ob||= b?"none":""});j.style(E.volumeH,{display:ua||ma?"block":"none"});(b=3DMat= h.floor(ta.maxwidth))&&W.parentNode&&g.isIE()&&(!ua&&W.parentNode.clientW= idth>b+2*Math.floor(ta.margin)?j.style(W,{width:b}):j.style(W,{width:""})= );na&&j.style(na.element(),{display:!ua&&!ma?"block":"none"});j.style(E.h= d,{display:!ua&&!a&&=0A= !ma&&ia&&1<ia.length&&qa?"":"none"});j.style(E.cc,{display:!ua&&!ma&&da&&= 1<da.length&&ra?"":"none"});P();j.unblock($);V.visible&&(a=3DS("capLeft")= ,b=3DS("capRight"),a=3DXa()?{left:Math.round(g.parseDimension(62*Ba.left.= offsetWidth)+a.width),right:Math.round(g.parseDimension(86*Ba.right.offse= tWidth)+b.width)}:{left:Math.round(g.parseDimension(Ba.left.offsetWidth)+= a.width),right:Math.round(g.parseDimension(Ba.right.offsetWidth)+b.width)= },j.style(Ba.center,a))};V.audioMode=3Dfunction(b){b!=3D=3Da&&b!=3D=3Dua&= &(ua=3D!!b,=0A= ba());return = ua};V.instreamMode=3Dfunction(b){b!=3D=3Da&&b!=3D=3Dma&&(ma=3D!!b,j.style= (E.cast,ma?B:u));return = ma};V.adMode=3Dfunction(a){if(h.isBoolean(a)&&a!=3D=3Dnb){if(nb=3Da){var = b=3DUa,c=3Dh.indexOf(b,E.elapsed);-1<c&&b.splice(c,1);b=3DUa;c=3Dh.indexO= f(b,E.duration);-1<c&&b.splice(c,1)}else = b=3DUa,c=3DE.elapsed,-1=3D=3D=3Dh.indexOf(b,c)&&b.push(c),b=3DUa,c=3DE.du= ration,-1=3D=3D=3Dh.indexOf(b,c)&&b.push(c);j.style([E.cast,E.elapsed,E.d= uration],a?B:u);$a()}return = nb};V.hideFullscreen=3Dfunction(b){b!=3D=3Da&&b!=3D=3Dob&&(ob=3D!!b,ba())= ;return ob};V.element=3D=0A= function(){return W};V.margin=3Dfunction(){return = parseInt(ta.margin,10)};V.height=3Dfunction(){return = fa};V.show=3Dfunction(a){if(!V.visible||a)V.visible=3D!0,j.style(W,{displ= ay:"inline-block"}),xa=3Dg.bounds(W),D(),j.block($),F(),ba(),clearTimeout= (db),db=3D-1,db=3DsetTimeout(function(){j.style(W,{opacity:1})},0)};V.sho= wTemp=3Dfunction(){this.visible||(W.style.opacity=3D0,W.style.display=3D"= inline-block")};V.hideTemp=3Dfunction(){this.visible||(W.style.display=3D= "none")};V.addCues=3Dfunction(a){g.foreach(a,function(a,b){if(b.text){var= c=3D=0A= b.begin,e=3Db.text;if(/^[\d\.]+%?$/.test(c.toString())){var = f=3DO("timeSliderCue"),d=3DE.timeSliderRail,g=3D{position:c,text:e,elemen= t:f};f&&d&&(d.appendChild(f),f.addEventListener("mouseover",function(){eb= =3Dg},!1),f.addEventListener("mouseout",function(){eb=3Dnull},!1),hb.push= (g))}P()}})};V.hide=3Dfunction(){if(V.visible&&(!ma||!r||!q.jwGetControls= ()))V.visible=3D!1,j.style(W,{opacity:0}),clearTimeout(db),db=3D-1,db=3Ds= etTimeout(function(){j.style(W,{display:"none"})},250)};E=3D{};$=3Dq.id+"= _controlbar";la=3D0;W=3DG();W.id=3D=0A= $;W.className=3D"jwcontrolbar";Y=3Dq.skin;ka=3DY.getComponentLayout("cont= rolbar");ka||(ka=3Dea.layout);g.clearCss(I());j.block($+"build");M();var = ub=3DO("capLeft"),vb=3DO("capRight"),wb=3DO("background",{position:"absol= ute",left:S("capLeft").width,right:S("capRight").width,"background-repeat= ":"repeat-x"},!0);wb&&W.appendChild(wb);ub&&W.appendChild(ub);ya("left");= ya("center");ya("right");W.appendChild(Ba.left);W.appendChild(Ba.center);= W.appendChild(Ba.right);E.hd&&(qa=3Dnew = f.menu("hd",$+"_hd",Y,ha),r?Ya(qa,E.hd,=0A= Z,"hd"):cb(qa,E.hd,Z,sa),kb.hd=3Dqa);E.cc&&(ra=3Dnew = f.menu("cc",$+"_cc",Y,oa),r?Ya(ra,E.cc,ca,"cc"):cb(ra,E.cc,ca,Ea),kb.cc=3D= ra);E.mute&&(E.volume&&E.volume.vertical)&&(na=3Dnew = f.overlay($+"_volumeoverlay",Y),na.setContents(E.volume),cb(na,E.mute,U),= kb.volume=3Dna);j.style(Ba.right,{right:S("capRight").width});vb&&W.appen= dChild(vb);j.unblock($+"build");q.jwAddEventListener(b.JWPLAYER_MEDIA_TIM= E,C);q.jwAddEventListener(b.JWPLAYER_PLAYER_STATE,function(a){switch(a.ne= wstate){case p.BUFFERING:case p.PLAYING:E.timeSliderThumb&&=0A= j.style(E.timeSliderThumb,{opacity:1});aa("play",!0);break;case = p.PAUSED:Aa||aa("play",!1);break;case = p.IDLE:aa("play",!1),E.timeSliderThumb&&j.style(E.timeSliderThumb,{opacit= y:0}),E.timeRail&&(E.timeRail.className=3D"jwrail"),wa(0),C({position:0,d= uration:0})}});q.jwAddEventListener(b.JWPLAYER_PLAYLIST_ITEM,function(a){= if(!ma){a=3Dq.jwGetPlaylist()[a.index].tracks;var = b=3D!1,c=3DE.timeSliderRail;g.foreach(hb,function(a,b){c.removeChild(b.el= ement)});hb.length=3D0;if(h.isArray(a)&&!r)for(var = e=3D0;e<a.length;e++)if(!b&&=0A= (a[e].file&&a[e].kind&&"thumbnails"=3D=3D=3Da[e].kind.toLowerCase())&&(Ra= .load(a[e].file),b=3D!0),a[e].file&&a[e].kind&&"chapters"=3D=3D=3Da[e].ki= nd.toLowerCase()){var = f=3Da[e].file;f?g.ajax(f,N,X,!0):hb.length=3D0}b||Ra.load()}});q.jwAddEve= ntListener(b.JWPLAYER_MEDIA_MUTE,F);q.jwAddEventListener(b.JWPLAYER_MEDIA= _VOLUME,F);q.jwAddEventListener(b.JWPLAYER_MEDIA_BUFFER,function(a){wa(a.= bufferPercent/100)});q.jwAddEventListener(b.JWPLAYER_FULLSCREEN,function(= a){aa("fullscreen",a.fullscreen);$a();V.visible&&V.show(!0)});=0A= q.jwAddEventListener(b.JWPLAYER_PLAYLIST_LOADED,x);q.jwAddEventListener(b= .JWPLAYER_MEDIA_LEVELS,function(a){ia=3Da.levels;if(!ma&&ia&&1<ia.length&= &qa){j.style(E.hd,u);qa.clearOptions();for(var = b=3D0;b<ia.length;b++)qa.addOption(ia[b].label,b);K(a)}else = j.style(E.hd,B);ba()});q.jwAddEventListener(b.JWPLAYER_MEDIA_LEVEL_CHANGE= D,K);q.jwAddEventListener(b.JWPLAYER_CAPTIONS_LIST,function(a){da=3Da.tra= cks;if(!ma&&da&&1<da.length&&ra){j.style(E.cc,u);ra.clearOptions();for(va= r b=3D0;b<da.length;b++)ra.addOption(da[b].label,=0A= b);n(a)}else = j.style(E.cc,B);ba()});q.jwAddEventListener(b.JWPLAYER_CAPTIONS_CHANGED,n= );q.jwAddEventListener(b.JWPLAYER_RESIZE,function(){xa=3Dg.bounds(W);0<xa= .width&&V.show(!0)});q.jwAddEventListener(b.JWPLAYER_CAST_AVAILABLE,L);q.= jwAddEventListener(b.JWPLAYER_CAST_SESSION,J);r||(W.addEventListener("mou= seover",function(){d.addEventListener("mousedown",Fa,!1)},!1),W.addEventL= istener("mouseout",function(){d.removeEventListener("mousedown",Fa);k.ons= electstart=3Dnull},!1));setTimeout(F,0);x();V.visible=3D=0A= !1;L()};j("span.jwcontrolbar",{position:"absolute",margin:"auto",opacity:= 0,display:"none"});j("span.jwcontrolbar = span",{height:"100%"});g.dragStyle("span.jwcontrolbar = span","none");j("span.jwcontrolbar = .jwgroup",{display:"inline"});j("span.jwcontrolbar span, = span.jwcontrolbar .jwgroup button,span.jwcontrolbar = .jwleft",{position:"relative","float":"left"});j("span.jwcontrolbar = .jwright",{position:"relative","float":"right"});j("span.jwcontrolbar = .jwcenter",{position:"absolute"});j("span.jwcontrolbar button",=0A= {display:"inline-block",height:"100%",border:"none",cursor:"pointer"});j(= "span.jwcontrolbar .jwcapRight,span.jwcontrolbar = .jwtimeSliderCapRight,span.jwcontrolbar = .jwvolumeCapRight",{right:0,position:"absolute"});j("span.jwcontrolbar = .jwcapBottom",{bottom:0,position:"absolute"});j("span.jwcontrolbar = .jwtime",{position:"absolute",height:"100%",width:"100%",left:0});j("span= .jwcontrolbar = .jwthumb",{position:"absolute",height:"100%",cursor:"pointer"});j("span.j= wcontrolbar .jwrail",{position:"absolute",=0A= cursor:"pointer"});j("span.jwcontrolbar = .jwrailgroup",{position:"absolute",width:"100%"});j("span.jwcontrolbar = .jwrailgroup span",{position:"absolute"});j("span.jwcontrolbar = .jwdivider+.jwdivider",{display:"none"});j("span.jwcontrolbar = .jwtext",{padding:"0 5px","text-align":"center"});j("span.jwcontrolbar = .jwcast",{display:"none"});j("span.jwcontrolbar = .jwcast.jwcancast",{display:"block"});j("span.jwcontrolbar = .jwalt",{display:"none",overflow:"hidden"});j("span.jwcontrolbar = .jwalt",{position:"absolute",=0A= left:0,right:0,"text-align":"left"},!0);j("span.jwcontrolbar = .jwoverlaytext",{padding:3,"text-align":"center"});j("span.jwcontrolbar = .jwvertical *",{display:"block"});j("span.jwcontrolbar .jwvertical = .jwvolumeProgress",{height:"auto"},!0);j("span.jwcontrolbar = .jwprogressOverflow",{position:"absolute",overflow:"hidden"});l("span.jwc= ontrolbar","opacity .25s, background .25s, visibility = .25s");l("span.jwcontrolbar button","opacity .25s, background .25s, = visibility .25s");l("span.jwcontrolbar .jwtoggling",=0A= "none")})(window,document);=0A= (function(d){var = k=3Dd.utils,a=3Dd.events,c=3Da.state,e=3Dd.playlist;d.html5.controller=3D= function(f,g){function h(){return f.getVideo()}function = b(a){x.sendEvent(a.type,a)}function p(c){l(!0);switch(k.typeOf(c)){case = "string":var g=3Dnew = e.loader;g.addEventListener(a.JWPLAYER_PLAYLIST_LOADED,function(a){p(a.pl= aylist)});g.addEventListener(a.JWPLAYER_ERROR,function(a){p([]);a.message= =3D"Could not load playlist: "+a.message;b(a)});g.load(c);break;case = "object":case "array":f.setPlaylist(new d.playlist(c));break;=0A= case "number":f.setItem(c)}}function j(b){if(k.exists(b)&&!b)return = r();try{0<=3Du&&(p(u),u=3D-1);if(!q&&(q=3D!0,x.sendEvent(a.JWPLAYER_MEDIA= _BEFOREPLAY),q=3D!1,C)){C=3D!1;w=3Dnull;return}if(s()){if(0=3D=3D=3Df.pla= ylist.length)return!1;h().load(f.playlist[f.item])}else = f.state=3D=3D=3Dc.PAUSED&&h().play();return!0}catch(e){x.sendEvent(a.JWPL= AYER_ERROR,e),w=3Dnull}return!1}function l(b){w=3Dnull;try{return = s()?b||(v=3D!0):h().stop(),q&&(C=3D!0),!0}catch(c){x.sendEvent(a.JWPLAYER= _ERROR,c)}return!1}function r(b){w=3Dnull;if(k.exists(b)&&=0A= !b)return j();switch(f.state){case c.PLAYING:case = c.BUFFERING:try{h().pause()}catch(e){return = x.sendEvent(a.JWPLAYER_ERROR,e),!1}break;default:q&&(C=3D!0)}return!0}fun= ction s(){return f.state=3D=3D=3Dc.IDLE}function = t(a){k.css.block(f.id+"_next");p(a);j();k.css.unblock(f.id+"_next")}funct= ion A(){t(f.item+1)}function = y(){s()&&(v?v=3D!1:(w=3Dy,f.repeat?A():f.item=3D=3D=3Df.playlist.length-1= ?(u=3D0,l(!0),setTimeout(function(){x.sendEvent(a.JWPLAYER_PLAYLIST_COMPL= ETE)},0)):A()))}function m(a){return function(){var = b=3DArray.prototype.slice.call(arguments,=0A= 0);z?B(a,b):F.push({method:a,arguments:b})}}function = B(a,b){a.apply(this,b)}var = z=3D!1,u=3D-1,q=3D!1,w,v=3D!1,C,F=3D[],x=3Dk.extend(this,new = a.eventdispatcher(f.id,f.config.debug));this.play=3Dm(j);this.pause=3Dm(r= );this.seek=3Dm(function(a){f.state!=3D=3Dc.PLAYING&&j(!0);h().seek(a)});= this.stop=3Dfunction(){s()&&(v=3D!0);m(l)()};this.load=3Dm(p);this.next=3D= m(A);this.prev=3Dm(function(){t(f.item-1)});this.item=3Dm(t);this.setVolu= me=3Dm(f.setVolume);this.setMute=3Dm(f.setMute);this.setFullscreen=3Dm(fu= nction(a){g.fullscreen(a)});this.detachMedia=3D=0A= function(){try{return f.getVideo().detachMedia()}catch(a){k.log("Error = calling detachMedia",a)}return = null};this.attachMedia=3Dfunction(a){try{f.getVideo().attachMedia(a)}catc= h(b){k.log("Error calling = detachMedia",b);return}"function"=3D=3D=3Dtypeof = w&&w()};this.setCurrentQuality=3Dm(function(a){h().setCurrentQuality(a)})= ;this.getCurrentQuality=3Dfunction(){return = h()?h().getCurrentQuality():-1};this.getQualityLevels=3Dfunction(){return= = h()?h().getQualityLevels():null};this.setCurrentAudioTrack=3Dfunction(a){= h().setCurrentAudioTrack(a)};=0A= this.getCurrentAudioTrack=3Dfunction(){return = h()?h().getCurrentAudioTrack():-1};this.getAudioTracks=3Dfunction(){retur= n = h()?h().getAudioTracks():null};this.setCurrentCaptions=3Dm(function(a){g.= setCurrentCaptions(a)});this.getCurrentCaptions=3Dfunction(){return = g.getCurrentCaptions()};this.getCaptionsList=3Dfunction(){return = g.getCaptionsList()};this.checkBeforePlay=3Dfunction(){return = q};this.playerReady=3Dfunction(a){if(!z){g.completeSetup();x.sendEvent(a.= type,a);d.utils.exists(d.playerReady)&&d.playerReady(a);=0A= f.addGlobalListener(b);g.addGlobalListener(b);x.sendEvent(d.events.JWPLAY= ER_PLAYLIST_LOADED,{playlist:d(f.id).getPlaylist()});x.sendEvent(d.events= .JWPLAYER_PLAYLIST_ITEM,{index:f.item});p();f.autostart&&!k.isMobile()&&j= ();for(z=3D!0;0<F.length;)a=3DF.shift(),B(a.method,a.arguments)}};f.addEv= entListener(a.JWPLAYER_MEDIA_BUFFER_FULL,function(){h().play()});f.addEve= ntListener(a.JWPLAYER_MEDIA_COMPLETE,function(){setTimeout(y,25)});f.addE= ventListener(a.JWPLAYER_MEDIA_ERROR,function(b){b=3Dk.extend({},b);b.type= =3D=0A= a.JWPLAYER_ERROR;x.sendEvent(b.type,b)})}})(jwplayer);(function(d){var = k;d.html5.defaultskin=3Dfunction(){return = k=3Dk||d.utils.parseXML('\x3c?xml version\x3d"1.0" ?\x3e\x3cskin = author\x3d"JW Player" name\x3d"Six" target\x3d"6.7" = version\x3d"3.0"\x3e\x3ccomponents\x3e\x3ccomponent = name\x3d"controlbar"\x3e\x3csettings\x3e\x3csetting name\x3d"margin" = value\x3d"10"/\x3e\x3csetting name\x3d"maxwidth" = value\x3d"800"/\x3e\x3csetting name\x3d"fontsize" = value\x3d"11"/\x3e\x3csetting name\x3d"fontweight" = value\x3d"normal"/\x3e\x3csetting name\x3d"fontcase" = value\x3d"normal"/\x3e\x3csetting name\x3d"fontcolor" = value\x3d"0xd2d2d2"/\x3e\x3c/settings\x3e\x3celements\x3e\x3celement = name\x3d"background" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAYAAADtlXT= HAAAANklEQVR4AWMUFRW/x2RiYqLI9O3bNwam////MzAxAAGcAImBWf9RuRAxnFyEUQgDCLKA= TLCDAFb+JfgLDLOxAAAAAElFTkSuQmCC"/\x3e\x3celement name\x3d"capLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAeCAYAAAARgF8= NAAAAr0lEQVR4AWNhAAJRUXEFIFUOxNZAzMOABFiAkkpAeh0fH5+IgoKCKBsQoCgA4lJeXl5R= eXl5qb9//zJ8+/aNAV2Btbi4uOifP39gYhgKeFiBAEjjUAAFlCn4/5+gCf9pbwVhNwxhKxAm/= KdDZA16E778/v37DwsLKwsuBUdfvXopISUlLYpLQc+vX78snz17yigqKibAAgQoCuTlFe4+fP= ggCKio9OnTJzZAMW5kBQAEFD9DdqDrQQAAAABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement= name\x3d"capRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAeCAYAAAARgF8= NAAAArklEQVR4Ad2TMQrCQBBF/y5rYykEa++QxibRK3gr0dt4BPUSLiTbKMYUSlgt3IFxyogJ= sRHFB6/7/A+7jIqiYYZnvLgV56IzcRyPUOMuOOcGVVWNAcxUmk4ZNZRS0Fojz/O9936lkmTCa= ICIgrV2Z9CCMaYHoK/RQWfAMHcEAP7QxPsNAP/BBDN/+7N+uoEoEIBba0NRHM8A1i8vSUJZni= 4hhAOAZdPxXsWNuBCzB0E+V9jBVxF8AAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"playButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAeCAQAAACcJxZ= uAAAAtElEQVR4AWOgLRgFnAyiDPwMzMRrkHuwuCSdQZ14Tbpv9v/cf2UN8ZoMHu5/uP/l/h9E= azK4sx8Cn+7/RpQmg+v74RBo11eCmgwu7keFd/d/wavJ4PR+THhj/6f9N1ZODWTgxKLhyH7sc= MvK3iCsGvbtx4Tz1oZn4HTSjv2ocObakAy8nt60HwGnrA3KIBisa/dD4IS1/lDFBJLGiv0r9v= es9YUpJpz4Ji72hiomNXnTH4wCAAxXpSnKMgKaAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"playButtonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAeCAQAAACcJxZ= uAAAAtElEQVR4AWOgLRgFPAwyDCIMLMRr0Hhws6SLwYR4TTZv/v/8f+UZ8ZocHv5/+P/l/x9E= a3K48x8Cn/7/RpQmh+v/4RBo11eCmhwu/keFd/9/wavJ4fR/THjj/6f/Nx5OzWHgwaLhyH/sc= Muj3lysGvb9x4Tznod343TSjv+ocObzkG68nt70HwGnPA/qJhisa/9D4ITn/lDFBJLGiv8r/v= c894UpJpz4Jt7yhiomNXnTH4wCAHC8wQF60KqlAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"pauseButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAeCAQAAACcJxZ= uAAAAYElEQVR4AWOgNRgFPAwqDAZAqAJkofPhgBFJg8r/2VDBVIY7GHwoYEG24RmchcnHpoHh= DxDj4WNq+I0m+ZvqGn6hSf6iuoafaJI/SbaB7hroHw9f/sBZ6HzSkzdtwSgAADNtJoABsotOA= AAAAElFTkSuQmCC"/\x3e\x3celement name\x3d"pauseButtonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAeCAQAAACcJxZ= uAAAAWklEQVR4AWOgNRgFAgwGDA5AaABkofOxAoP/UMBggMGHAxZkG57BWeh87BoY/gAxHj6m= ht9okr+pruEXmuQvqmv4iSb5k2Qb6K6B/vHw4Q+chc4nPXnTFowCADYgMi8+iyldAAAAAElFT= kSuQmCC"/\x3e\x3celement name\x3d"prevButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAeCAQAAACLBYa= nAAAAmElEQVR4AWMYMDAKeBgkgBgGmBn4GUQZONEVqfzfz6ACV6Bekv5gMYMcuiKDR/sZDGAK= rqz5sf/lfgZdDEW39jPYQxR82/94/y0gZDDAUHR+f3rpjZWf99/efx4CsSk6sj+pbMvKI/vhE= JuiXWDrQjNmr921HwyxKVoPd3hAxsS16/evx+JwleUoQeCbMRkRBIQDk/5gFAAAvD5I9xunLg= 8AAAAASUVORK5CYII\x3d"/\x3e\x3celement name\x3d"prevButtonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAeCAQAAACLBYa= nAAAAmUlEQVR4AWMYMDAKBBgUgBgGWBhEGGQYeNAVGfz/z2AAV2BS0vXgJoMGuiKHR/8ZHGAK= rjz78f/lfwYbDEW3/jOEQBR8+//4/y0gZHDAUHT+f/qcGw8//7/9/zwEYlN05H/S3C2PjvyHQ= 2yKdoGtC+2e/XzXfzDEpmg93OEB3ROfr/+/HovDDZajBIFv9+RbDBpEByb9wSgAAHeuVc8xgA= 8jAAAAAElFTkSuQmCC"/\x3e\x3celement name\x3d"nextButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAeCAQAAABgMj2= kAAAAlUlEQVR4AWOgAxgFnAyiDPwMzHA+D4MEEKMAuQeLS9IZ1OHKVP7vZ1BBVaL7cv+P/VfW= wJUZPNrPYICqxODW/lv7H+//BlNmfwtTyfn9EHh7/+f9N1aml57HVHJkPwJuWZlUdgRTya79E= Dh7bWgGyKJdGEp01+9fv3/i2oAMmHPXYyiRm7zYNwPZ08vBniYcdDQHowAA/MZI93f1cSkAAA= AASUVORK5CYII\x3d"/\x3e\x3celement name\x3d"nextButtonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAeCAQAAABgMj2= kAAAAlUlEQVR4AWOgAxgFPAwyDCIMLHC+AIMCEKMAjQc3S7oYTODKDP7/ZzBAVWLz8v+P/1ee= wZU5PPrP4ICqxOHW/1v/H///BlMWcgtTyfn/EHj7/+f/Nx6mzzmPqeTIfwTc8ihp7hFMJbv+Q= +Ds56HdIIt2YSixWf9//f+JzwO6Yc5dj6FEY/It325kTy8He5pw0NEcjAIAWP9Vz4mR7dgAAA= AASUVORK5CYII\x3d"/\x3e\x3celement name\x3d"elapsedBackground" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAeCAYAAAAPSW+= +AAAAD0lEQVQoU2NgGAWjYKQAAALuAAGL6/H9AAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"durationBackground" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAeCAYAAAAPSW+= +AAAAD0lEQVQoU2NgGAWjYKQAAALuAAGL6/H9AAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"timeSliderCapLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAeCAYAAADpYKT= 6AAAAFElEQVR42mP4//8/AwwzjHIGhgMAcFgNAkNCQTAAAAAASUVORK5CYII\x3d"/\x3e\x3= celement name\x3d"timeSliderCapRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAeCAYAAADpYKT= 6AAAAFElEQVR42mP4//8/AwwzjHIGhgMAcFgNAkNCQTAAAAAASUVORK5CYII\x3d"/\x3e\x3= celement name\x3d"timeSliderRail" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAYAAADtlXT= HAAAALklEQVQI12NgIBmIior/ZxIVFWNgAgI4wcjAxMgI4zIyMkJYYMUM////5yXJCgBxnwX/= 1bpOMAAAAABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement = name\x3d"timeSliderRailCapLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS= 9AAAAnUlEQVR42t3NSwrCMBSF4TsQBHHaaklJKRTalKZJ+lAXoTPBDTlyUYprKo6PN4F2D3rg= m/yQG/rfRdHuwp5smsNdCImiKKFUAx/OaSpR1xpNYwKK4/2rLBXa1s1CnIxxsLZbhGhtD+eGB= SWJePt7fX9YUFXVVylzdN2IYTgGBGCVZfmDQWuDcTyB/ACsOdz8Kf7jQ/P8C7ZhW/rlfQGDz0= pa/ncctQAAAABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement = name\x3d"timeSliderRailCapRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS= 9AAAAn0lEQVR42t3MTwqCQBTH8bcIgmirJYoiCOowzh8ds0PULjpRqw5VdCZr/WueMJfwC5/N= ezOP1lcUHWbv5V0o1LYSVVUjTXP4xYM4KTWYEB2ybFlcSSmLoK4F4vj4JmN6BFpbHs5krUNgz= MDDLw3DCQHfTZL0Q85NYH0/Is9LNI240Tie0XUaRVGyJ4AN+Rs//qKUuQPYEgdg7+2WF2voDz= qVSl5A2koAAAAAAElFTkSuQmCC"/\x3e\x3celement name\x3d"timeSliderBuffer" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAYAAADtlXT= HAAAAKElEQVQI12NgIA/IyMj9Z2JhYWFgAgIGJkZGRhDBwMDEwMAI5TKQDwCHIAF/C8ws/gAA= AABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement = name\x3d"timeSliderBufferCapLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS= 9AAAAY0lEQVR42uXJyxGAIAxFUfrgI5CgzajdqlWxQffxaeiCzJyZ5MYMNtb6zTl/OhfuP2BZ= Q4h1mpLEmOWPCMd3pESSM2vE0YiKdBqJuDEXUT0yzydIp7GUZYMKAhr7Y4cLHjPGvMB5JcRMs= OVwAAAAAElFTkSuQmCC"/\x3e\x3celement name\x3d"timeSliderBufferCapRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS= 9AAAAYElEQVQoz+WLyxGAIAwF6YM/CdqMlCtdcRHvMSIw9sCb2ctuIsQaU8pUpfQppT6mdC6Q= tZ6McYUPUpMhIHkP9EYOuUmASAOOV5OIkQYAWLvc6Mf3HuNOncKkIW8mT7HOHpUUJcPzmTX0A= AAAAElFTkSuQmCC"/\x3e\x3celement name\x3d"timeSliderProgress" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAQAAABHnLx= MAAAAH0lEQVQI12NgIAT+/2e6x8D0k4HpOxj9AJM/CWpjAACWQgi68LWdTgAAAABJRU5ErkJg= gg\x3d\x3d"/\x3e\x3celement name\x3d"timeSliderProgressCapLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAQAAABOdxw= 2AAAARUlEQVQYV2NkgANG+jP/+zJkMtgCmf99vi38KPQTJPpq6xsvqIKznxh4ocwjCOaebQye= UOZmX4YFDEJQw9b4QQ2DAfoyAVkTEmC7RwxJAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"timeSliderProgressCapRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAQAAABOdxw= 2AAAASklEQVQYV8XLIRKAMAxE0R4QbhrXoQqJxWJxCGZqaKs/m1yi+80TSUqzRmNjCd48jMoq= XnhvEU+iTzyImrgT+UFG1exv1q2YY95+oTIxx/xENX8AAAAASUVORK5CYII\x3d"/\x3e\x3c= element name\x3d"timeSliderThumb" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAeCAQAAACP8Fa= aAAABMElEQVR4AeWSv0rzYBjFfy1NlU5RKC3dCjqZDwRXEapOuuik+BfbNLdUeg86pHSrm1Z3= G3w7VAdbB+sNFFKIZ1FCjTjL95wQOOd3IC/vE/6vSZEmQ5Z5KUtGLhWjshYLbHCIKx2wLmcp/= cJzOFTb/vtoGk7D8bDtc4GjNP2J/+ENzFv0FBnpORpHA4OnVBWwKFANTD96jKkfBYYqRVFyVC= 5bCr/pqsWmKDZHd8Okwv2IY1HyuL0wqRCE1EUp/lR4mFAT1XNym/iJ7pBTCpBnp5l4yGaLXVF= sVqh1zCzuGGoiNuQoUcG7NjPYU1oSxVKrzDZuw+++BtPe5Oal4eOypdQWRVfNoswa+5xTl87Y= kysrjW3DpsQyDquSw5KcjXB83TlFeYoU9LbltO7ff5i/Mh+pOuncDFLYKwAAAABJRU5ErkJgg= g\x3d\x3d"/\x3e\x3celement name\x3d"timeSliderCue" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAeCAYAAAAl+Z4= RAAAAcUlEQVQ4y2NgGAWjYBTgBaKi4llAfASKs0jWbGNj96S1tf03CIPYJBkCsrW6uu53bm7+= fxAGsUFiJBmQlpbxOzMz5z8Ig9hAsaMkecHIyORJUlLq78TElN8gNlAsm9RwyAbZCsSHgDhzN= FmNglGAHwAAo/gvURVBmFAAAAAASUVORK5CYII\x3d"/\x3e\x3celement = name\x3d"hdButtonOff" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAeCAYAAADQBxW= hAAABf0lEQVR42u2VvUoDQRSFA0awMIVCsv+z/1oE8yOE9MYmtb2P4AspSOyECFZqtU9gbZvK= 6CNoNZ6zMMuSQpxdEAJbHC737pz59mbmblpSyn9XA22gDXRLod2uMYfWkKwh+uc60LVtO9J1R= WXBn4N1oNL3QxkEEcwuzYybOWMh07QJ4xqK/ryuBQ3DWEZRoowdx3FfhAgkI3NVp7IsO5xMpn= PDsFae59NHvzaURgWlWpblPEOSkbmqQzfQK2DT8fj0HB0rrz40jlOqgA4Go1m/f3LJWIYC8uQ= 4nkSX94vF3S5qX8qrDU2SlCqgOMMrAK4Zy1B27nlCIj4i34G+lbcC9ChXuSNeFEbmpZe5RZdv= +BU4ZjM8V159aJoe5yp3JIS/eaZcv7dcPhzghc6Qr3DZlLc6FOelRoTn9OvI4DKxw2rQXs/84= KzRyLPhTSSQGzIyV2OBdYzIYz4rgKxjn88/Q4fD0QUNNT6BBL5zH50Pfhvahzo1RH+7+WtroA= 10O6E/bVCWtAEB8p4AAAAASUVORK5CYII\x3d"/\x3e\x3celement = name\x3d"hdButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAeCAQAAAB6Dt0= qAAABPUlEQVR4Ae2SsUrDUBiF/0EFfYK8Rl4g5BUUHGILRWghUHAQHJzaUcjSgB1EtCApliDo= UApSKggZRFSUQsVAawspElz1OunxhwtZcm0Ht9LzQfLByVluLs145lkkjXQyyPwTg3uNv0tFK= zuR+MAkIlF2eJyKPhBjRBMZYyBIp1SMEV6nMgIZlIoZQkJuIw7RiMll36XN5e31k0AkramYdi= GhQjPsohlSgT13GTy8WXurR0mrmt5BQla+ZJ/mS2SxF8+GT7joLRRvvmWrnAaQULbi1R4rHmX= Zi/VhAO9laev6R7bKaQcSsv3+Lfw+2ey548B/t/Yz3pVs1dMWJORW4xaqfEzsfEwrO2te5ytp= FVPjHJJntPnZ5jc708M9muwS1c/Ra8LHNGrKK6FlnENRxyQOPjcc0v5z/Wc68/wCXWlzVKUYI= C4AAAAASUVORK5CYII\x3d"/\x3e\x3celement name\x3d"ccButtonOff" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAeCAYAAADQBxW= hAAABzUlEQVR42u1Uu0oDQRQVTCMopMjmtZvdJPswKCQbC6tYCEqMBDUGrf2NCDF+gmXEyiZW= iTb+gMTGxtrGwmh8IOKjUoLjueNGfCBk10rYC4eZOey5Z+7M3O1zww033Og5BCGQA9oAcw6uz= 9kxbYfDIpMk2TGg58Z2TJmixFg0GueIRBQWDIZ5BX5/kIli5AcfCIS6PIH0nLdlGoupLB7XmC= xHyegymTSXa7UdoVBYHBVFqQEDMjozzfRCvd7w5fNzKfD74ElHevumEHKEQiJD4nmYz4JvwWi= rWt30YiO36fTYNKotgj8Hv1GprPvAP1obtm+qqjqBhC/l8toAkh18uqs7rK8ZY/0Yj8AT90o8= 0LG09k01TQe48Bnw4O6asqzw5DjGXVR2Qt9iPLb4Dh07NnGvqhq0jkwNQvehTCYSI0tIeIWqt= q1jfAA/bhiJFcxvcPzVUmlVwPwJVZLWvqmuD3MgGYlbGHPN5qE3m52JYU0PifhTGEwRn8lMaF= jvYVNdrXNT7BjGX1tGkvgL/dYyxMv0vTNTahH02ocY1cBEpTbgeL8z41eeNKSn6+jZNJUyiyT= 4y28Q+gvK07MpWsEDDAJDzsH1nj433HDjX8YbqHFYmhICTLsAAAAASUVORK5CYII\x3d"/\x3= e\x3celement name\x3d"ccButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAeCAQAAAB6Dt0= qAAABWElEQVR4AWMY5mAUsDJIMBgy2DE44IR2QHkJoDoMINHQ/eTbl//44JNvDd1AzRjA8N63= p/+f4IVP/9/7BrQZA9g9/H+fIHz4H+hsDOBw6z8EnvqZsJ6vznDCkke3/h/9Hr2ap9Z08oqnM= FkGByxaL/+HwMiVafNufFl+hWvmiR+BC/IX3/yy4Bz/nJN/wbLYtZ75D4In/3GV7n56/v+1/z= d/H/rGkHPgJYh94/fp/2B57FqP/AfBg/84SlY/O/L/8P+JLze/Z8je8PrI/0P/Jrza+Rcsj13= r3v8guO9/+LKEhZu+9lzmn7zrl++c9BWbv7WfE5iy/S9YHrvWbf8hcP+P0FVsVSo9y57s+L/v= m/9ytiqtvhVANlgWq1a79f8hcDPQR9eBAbIHyN7y/yyQfQnEhkCskWM4/9uq/4TgfKxJQiK6e= /a3pf/xwZlfo4AJkZLkP6zBKAAAGMt/2TouFxQAAAAASUVORK5CYII\x3d"/\x3e\x3celeme= nt name\x3d"muteButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAQAAACY0sZ= TAAABZ0lEQVR4AWMYjGAUMDEwMzCSpoUxju+kDQMXAW1AaRYGdiCGsFjchd/OWmELFMGrhd1a= 4UUTAy+QzXLSdKMhA1+Z/tuF0qIMTLjdz9tp+27ly/0M4kBbWGdqv1/gJcMgdLz6YAA2u9gYh= BgkGGR2pH3ZfWf/1f0Mshdsk8UZBDYlXMthEJhqfbuVgQ9Tk9D//SD4dv/F/eeBkEHuaNjjeg= YBT/k78xiEOcWuLWIQxtQkcWI/MmSQYhC/shioUPjUAhB5cgFWTQf3I0MGaQ6JwyBNIofBmsA= kpvN27UeGDPI349dXMghEKu2byyAsKLZ/IYMQzoBoTNm4e8v+LcCA2GBoKsQgcDFjcRqDwBr7= dU0MfLiDnCfaavHKdaAgZ2ZgXWd4cZ6eJIPQ5YYZXgzseCNXQ35GPSRyt+lVaTLwTTA9NJdTm= IGJ2GTEzMCSKPZifoklpj14jTDj6jJj4CI5nYOzxkCCUQAAMVp+znQAUSsAAAAASUVORK5CYI= I\x3d"/\x3e\x3celement name\x3d"muteButtonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAQAAACY0sZ= TAAABfUlEQVR4AWMYjGAUsDJwMLCQpoXRTnZZIoM0AzMBZQzcDCIMXEAWC5Dk0tZ6fK0uFyiC= BzAziCh5Xd7PoAJkc64I7QxhUPWLf/yQ3xjoTByAjUExrvzB+5f/GewYOBn4cgOf3ddxYNDft= H1OCza7BBgMGBwYfCas/fjnzv+r/xn8NiXYGTJoTZ25ZymDTn7W8UMMapiaDP6Dwdv/F/+fB0= KGgJXtF3YyaGp7XLrLYMhqce4hgyGmJocT/5EhgxuD7ZknDEYMJgcfMBgzGB8AkZiaDv5Hhgz= uLPa7nwBNN90N1gQmMZ236z8yZAjcN3H+JgZNM+8tQOdxWm17yGCAMyBSV6//s+X/lv8Mvv2B= ChoM2hsXd89n0GnKn7+PQRV3kCvYlsx6v+4/gy0DOwNvU8SJO1LWDAb791bUMgjji1xhMc/u3= QzKoMid6hPtxaCakrbzDqsBAytxyYgZmFQ5bfXu3Q1Lx7QHrxHykgWRDFJAA0gCLAzsQC0DCU= YBAC3AlmbNhvr6AAAAAElFTkSuQmCC"/\x3e\x3celement name\x3d"unmuteButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAQAAACY0sZ= TAAAAiklEQVR4AWMYWWAUMDKwMLADMUla2K0VnjUx8BKvhYmBt83m3cp3+xnEiFHOxiDEIMEg= sz3l6+5H++/sB7KJAEL/94Pgu/1X918GQuI0SZzcjwSJ1XRgPxIk1nnb9iNBoCYSAqI6ZdXOt= fvXAjWREuQ84VZzVi4DBjmJkassN7GegZe8ZDQSwSgAAJ/LQok1XVtuAAAAAElFTkSuQmCC"/= \x3e\x3celement name\x3d"unmuteButtonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAQAAACY0sZ= TAAAAjUlEQVR4AWMYWWAUMDJwM4gwcJGihZlBRMnr0l4GZeK1sDEoxpQ+eP/uP4MVMcoFGAwY= HBh8+ld/+vPo/53/QDYRwOA/GLz7f/X/ZSAkTpPDyf9IkFhNB/4jQWKdt+0/EgRqIiEgElct/= 7P2/1qgJlKCXMG6eNL7Zf8ZLEmLXGFhj5bdDMrkJaORCEYBAOZEUGMjl+JZAAAAAElFTkSuQm= CC"/\x3e\x3celement name\x3d"castButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8= bAAABuUlEQVR42mNggAA2IBYCYgkKsBDUHDAQevr06X5KMdRQMJDYvXs3SECLTNdpQfVLwA3c= uXMnigCJAEO/xPbt2ykyEF2/8NatW0ECwuQaCNUPNpAZiAVqamqsgTQXuQZu2rQJYqCXl5cQ0= LkpjY2Nbuzs7BJQQ5lINXD9+vUQA8PDwyWPHz++4/Lly/uvXr26btmyZUkCAgKiQElWIGYk1s= C1a9fCvczNwcEhHxER4T59+vTuEydO7APiqS4uLkpQQ4kycNWqVRADQ0JCxIAu7JgwYUI0Cwu= LWlpaWtDmzZu3AsVmqaurSwIVsRBj4IoVKyAGurm5iQKdO/fUqVP7Tp48Odfe3t4wNjbWG2jo= 3o0bN5YAFfES4XUJYFDBvQyKBBmgIX5r1qzZBHTZAh4eHrWOjo6GPXv27ARaqApVI4wvpyxZs= gRiIDDsZM6cOTPT19fXLDIy0hvo2n3z5s1L8fT0tF66dOm+uXPnxldXV+vdunVrPz68aNEiSF= 4OCgqSBUU50GXTgQLSU6dOnbFt27YpIFfPnj17JdCCalA6JeBClNKGHYgFgZgfiDmhYcYL9Sa= I5iEyYsAAACZV+irLroZ6AAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"castButtonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8= bAAABuUlEQVR42mNggAAOIJYAYgUKsATUHDCQePr06X9KMdRQMFDYvXs3SMCCTNdZQPUrwA3c= uXMnigCJAEO/wvbt2ykyEF2/1NatW0ECUuQaCNUPNpAFiEVramr8gTQfuQZu2rQJYqCXl5cE0= LltjY2Ncezs7CAbeIGYmVQD169fDzEwPDxc8fjx498uX778/+rVqy+WLVvWLCAgIAOUZAdiRm= INXLt2LdzL/BwcHFoRERHx06dP33nixIl/QHzcxcVFF2ooUQauWrUKYmBISIgs0IXbJkyYUMn= CwmKclpaWt3nz5k9AsXPq6upKQEWsxBi4YsUKiIFubm4yQOdeOnXq1L+TJ09etLe3d4yNjU0B= Gvpn48aNs4GKBInwugIwqOBeBsWsGtCQjDVr1rwFuuwqDw+PcUdHx+o9e/Z8B1poBFUjiS+nL= FmyBGIgMOxUzwCBr6+vR2RkZArQtf/mzZvX6unp6b906dJ/c+fOra+urra7devWf3x40aJFkL= wcFBSkDopyoMtOAQVUpk6denrbtm3HQK6ePXv2I6AFS4BsMQIuRCltOIFYHIhFgJgHiIWgmBd= KCxAZMWAAABFDD0iNkbKIAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"castingButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8= bAAAB60lEQVR42mNggAAOIJYAYgUKsATUHDCQ+E8FADUUDBRevXoFEnAAYgsoTSwGq4fqV4Ab= +OLFC5CABZkus4DqRxj49OlTsAtBNKkYpg/ZQKmHDx+CBCxBNKkYZCCUBhvIDMQis2fP9gfSK= jdv3vx07969/6RgkIFQGmwg35kzZ+omTpwYxcPDo6mmpmaybNmy6devX/9569at/8RgkIFQGm= yg8Nu3b39++/bt/9evX1/u3r27lYuLSy87Ozvy1KlTz65du/afEAYZCKXBBvKKiIhol5WVpe3= cuXMX0PB/z58/P+3u7m4dFxfnD3T9x0uXLv3Hh0EGQmmwgYJPnjzZvGTJkkpOTk6TysrKbKB3= P718+fKKvLy8QUNDQ965c+f+48MgA6E02EChy5cv33z37t3/N2/eXA4ODnYrKipKuXr16s8LF= y4sAsprAl1+6vTp0/9xYVA6hNIQLwOxWnFxcd7Zs2ffvn79+q6cnJz5ggULFj148OBXUFCQNV= BeCYjN8eWU48ePww0Uef/+/en09HRfYESkAJ3+Z//+/f1OTk7uR44cAbG7qqurCeYgoFp4XhY= DBSgwL14FpcNNmzYdunHjxkWQq4FevXb+/PmNQLY4EEsSW9pwQDWIAjEPKJJA4QoNCiEon5WB= SAAAryiVoYy0dtoAAAAASUVORK5CYII\x3d"/\x3e\x3celement = name\x3d"castingButtonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8= bAAAB60lEQVR42mNggAAOIJYAYgUKsATUHDCQ+E8FADUUDBRevXoFEnAAYgsoTSwGq4fqV4Ab= +OLFC5CABZkus4DqRxj49OlTsAtBNKkYpg/ZQKmHDx+CBCxBNKkYZCCUBhvIDMQis2fP9gfSK= jdv3vx07969/6RgkIFQGmwg35kzZ+omTpwYxcPDo6mmpmaybNmy6devX/9569at/8RgkIFQGm= yg8Nu3b39++/bt/9evX1/u3r27lYuLSy87Ozvy1KlTz65du/afEAYZCKXBBvKKiIhol5WVpe3= cuXMX0PB/z58/P+3u7m4dFxfnD3T9x0uXLv3Hh0EGQmmwgYJPnjzZvGTJkkpOTk6TysrKbKB3= P718+fKKvLy8QUNDQ965c+f+48MgA6E02EChy5cv33z37t3/N2/eXA4ODnYrKipKuXr16s8LF= y4sAsprAl1+6vTp0/9xYVA6hNIQLwOxWnFxcd7Zs2ffvn79+q6cnJz5ggULFj148OBXUFCQNV= BeCYjN8eWU48ePww0Uef/+/en09HRfYESkAJ3+Z//+/f1OTk7uR44cAbG7qqurCeYgoFp4XhY= DBSgwL14FpcNNmzYdunHjxkWQq4FevXb+/PmNQLY4EEsSW9pwQDWIAjEPKJJA4QoNCiEon5WB= SAAAryiVoYy0dtoAAAAASUVORK5CYII\x3d"/\x3e\x3celement = name\x3d"trackButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6= fAAAB3ElEQVR42u2VP0sCYRzHLwiFUm4oIcUGz4ZMsRqkhhan2hzyBWSvwMXhAsGlFxA46y2J= eJpDIeEfDnV1UhdX/+Du5mS/LzyC2F09KDjdAx94nuf3fZ6PPj53CovFQtglgik0habwX+Fas= xDHhJfwM7xsDjUbcUZc6YB5G69wj7C7XK5AqVSSR6NRfj6f1wD6xWLxBTXKXNMazQhIeYX2SC= QSnk6naqfTySYSiZgkSXcAfZpTUAuFQrHxeKwZwSu04NNPJhM1k8m80thHiMQ+A30fasPh8EM= UxQiNw0SUeFrhgTjhER6pqio3Gg2FySzC74Y5H2WyyFL/Zpsj9Xa73Xw8Hn9m38aoiZSJIUv9= +16vp63DKwz0+/2G2+1+pL6HONCRYc6DDLLUv2U3M7rJkQaazWY9l8u9z2azCo0lHaGEGjKtV= quONezbbHSkF7TR52Aw0NrtNhYFdYRB1JCh7BfWYHP6TbVVeIX+arVaq1QqGmBHtd6ulnVk2Q= th/SXA/eCf04NdK5fLGjASLuvIYo3RzeIROlOpVLpQKGiAxpc6+1wu68lk8g2XYxuh1eFwBGR= ZTiuK8m10aVBDhrI4Tus2QoFt4CROiUOdfQ5ZzfmXjEto/gGbQlO4c+EPA9e3TyseGL0AAAAA= SUVORK5CYII\x3d"/\x3e\x3celement name\x3d"trackButtonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6= fAAAB3ElEQVR42u2VvUsCYRzHj4awhq5AF3Mol5bSFjMSstYabGusuaVbHBwEsf9DpMDBF4QG= B8FBhSYnvQahIfTEtsIg6AWevt94hLCzDoWm+8EHfi/fe74+j/eiCCGU/0SxDW1D2/BPw5Fwg= GXgBzsSv+xxtgg2wZ4J7C9aNZwBS263O1QoFC673e79qwzm+Xz+ijNo9sUvQVOrhkuRSOS43+= 8bjUZDj0ajSa/Xe0SYo3fLWSAQSBqGIcZh1dDBX9/r9YxUKnWNOgicYFbCPMhZp9N5UFX1DPU= x0EDiG6dgxYqhO5fLXVYqlVtp5lB+BntBaHRqkR9Mc6T+ZrN5r2nahdzNuHBCk6QW+Umr1RKj= WDUM6br+4fF4zpGvgwUTM/bWqaEW+aG8M7VJjjRUrVbfM5nM3WAweEa9YWK4wRk1tVrtndfI3= Ux0pNtY6LHdbot6vc7GronhLmfUQPvEa7g4/lPxHauGO+Vy+a1UKgkij2o09oZzauULYfQlYP= nB38KD/VosFgUZZzicU4s6MO7OsmK4mkgkbrLZrCCowybrhIfzeDxe5c0xjeG8y+UKxWKxm3Q= 6/YLaZ7KOjzNqoOVxzk1j+GXKnYI1oJqso8rZqtQqExvaH2Db0Db8d8NP8a/SZovcDd8AAAAA= SUVORK5CYII\x3d"/\x3e\x3celement name\x3d"fullscreenButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAeCAQAAACC7ib= dAAAA5ElEQVR4Ae3KsUrzYBhH8RPIFAJ5O3/ig5COgVyHW7N09x7aXSrESafuHeLi0A6iGEX+= Y3edLMqnpe7egfbFMZCMXfo762GH9gIijIx8W0rcMQ9tU/3oL9KOGXdYLOuNfOS0CrGLyVr/f= Z1zMht9a6VXqV6JjFa9efmiZ43PDoqnCqMh8BGS4IjpT8vTMYY7NiIaooHhsNnovqRPTA9HSO= CjwT6ro+Jy8qV3PZT0aJUt9VavdadbnY9IaJUv9KiF5jqZYIQd87V80/rfAEdAq/RKvht9VEP= rmmNS8m0ZRkTAzuz9AlNJVl+tEWchAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"fullscreenButtonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAeCAQAAACC7ib= dAAAA5klEQVR4Ae3MIUzDUACE4b8VlU1FaQWEBPlQna+oxqHm0dTicShQcyWZwSBWEgohEIKc= B8UKAZbhcZXHmsw1eZUz+357OdZow8HHkJItSwiwcodmUWuFpO852s2nzUJtZFh5mPNyrq+23= nE4Lv4007templIsYon1ZtedXKzkz/XGDocXBw8QiICBqPq9JJ9ogODT4d/aIgw4+KhYkBAzB= be6qLD/NR7+UX5q089VsRYpVN9NHPd605nBSFWWaknlZroqMTg9Yyv1TZqto+JcLBKrtR2q+9= 6aHCxCkjIlqUYfBzWZuMfAHJlDLF+xFEAAAAASUVORK5CYII\x3d"/\x3e\x3celement = name\x3d"normalscreenButton" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAeCAQAAACC7ib= dAAAA50lEQVR4Ae3KsU6DUBhA4QMNAtsNFcJLyKBx8mXYmNxkculDuJG4OOOmcbr/QNS1xKaJ= qxJjTJpUk84KuHW4d+nY76yHvV1zxlx8AiZYeJeHBKgmX14wte1qXZ1l98VG/8iyJMQo+ZJVv= dGddPohx8co7eRThvWmQOFa5ncZWtSnRwQ4GEVvMvQh62oW2+YDItK+BIW3PTt4KJJxiPrVyJ= nF39Wv/EdkmQlOsqd6IUOkGLmou+JVv0ifdfabfKVbaXVTt0KCUfhczmWur4rj7LFCYTRhelt= e5yiC8xgPbHuIj4sztrdbfxJjV3K8mZ7yAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"normalscreenButtonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAeCAQAAACC7ib= dAAAA7ElEQVR4Ae3Sr07DUBzF8e+daKaaiaYNAoH8uc43pK+AmsHimETxDAQBQZVkCQhAUFMB= ewkUCG4W/ib4haTykCYzmFszuc+xX3lYtw3HAEdEQsqQHvGekWKz6qFh3Jfbl9+Znta/Wmrek= BFU/GjRLvWuN11UJASVXh/yetVxjRH1xM/qNm+3D0lxBOVP6vaiTz8xBgSNyCkpKTBiHP84Yo= yiC8gZETSY2LfXCjlBjnRretk26kZJUISd1I+679YbJ7NqoTvd6Ly9FQVB2ay51pX262x65jG= ChoyPmoMKI901YujLMxKi1TnXa+MPEjlkhvYbWGMAAAAASUVORK5CYII\x3d"/\x3e\x3cele= ment name\x3d"volumeCapLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAeCAYAAADpYKT= 6AAAAFElEQVR42mP4//8/AwwzjHIGhgMAcFgNAkNCQTAAAAAASUVORK5CYII\x3d"/\x3e\x3= celement name\x3d"volumeCapRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAeCAYAAADpYKT= 6AAAAFElEQVR42mP4//8/AwwzjHIGhgMAcFgNAkNCQTAAAAAASUVORK5CYII\x3d"/\x3e\x3= celement name\x3d"volumeRail" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAeCAYAAABaKIz= gAAAASElEQVRYCe3BsQ3AMAwDQRIW4Cqlkf031AZKVkg6An8nAQCAH3zOPQpQe28lqJcS1FpL= CcpWhJKsBGVbCaq7lcAzcwkAAHz0AE0SB2llBfTtAAAAAElFTkSuQmCC"/\x3e\x3celement= name\x3d"volumeRailCapLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAeCAYAAAALvL+= DAAAAeElEQVR42tWKQQqDMBBFB3cFt9oQQ0wniW51b5f2ti30ZLX1AN+ZQA/hhwfz/zw6eZrm= moWn8NUyCh9jLJzzoLY1L2sd+v6GEBikmh7MCTHmYvyYI1LKBeo69/Y+SBkKtCz3SaztPxKAa= l0fs5ry2Emjo3ARajpNDtqHL/b2HUUVAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"volumeRailCapRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAeCAYAAAALvL+= DAAAAeUlEQVQYV9WKOw7CMBBEV3RItAmWYzlmbUMLfSjDbUHiZASFfpj1LTLSW+18RLarrjt+= yZPUFoQQ4ZwHgw+5SEqKcTzB+4C+dy/JuUK1wAouVimlwlDNtvgxOMOIMWEYwrsFZtgu03S/C= p/Vmnl+3ADshOdA9s1sSn8goC/6ib5oHgAAAABJRU5ErkJggg\x3d\x3d"/\x3e\x3celemen= t name\x3d"volumeProgress" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAeCAQAAADwIUR= rAAAALElEQVRIx2NgGAWjYBSMRMD4/z/1DWW5TQOXsnwdMoZ+GyouHQWjYBSMTAAAnO8GxIQ7= mhMAAAAASUVORK5CYII\x3d"/\x3e\x3celement name\x3d"volumeProgressCapLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAeCAQAAAChtXc= IAAAANUlEQVQY02NkgAJGOjH+9zEkAxm/JrzJ/wYSufTxLx9Y6shHBghj10SGPKji9RMYkhjp= 6EIAcaIN1SJ2FnYAAAAASUVORK5CYII\x3d"/\x3e\x3celement = name\x3d"volumeProgressCapRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAeCAQAAAChtXc= IAAAANklEQVQYV2NgoCP4//F/H5hx5/+z/78mABnn/5//f+kzkHHkPxCCGLv+A+FEIGP9p/Ug= FXQFAHkZGwN2fDIsAAAAAElFTkSuQmCC"/\x3e\x3c/elements\x3e\x3c/component\x3e= \x3ccomponent name\x3d"display"\x3e\x3csettings\x3e\x3csetting = name\x3d"bufferrotation" value\x3d"90"/\x3e\x3csetting = name\x3d"bufferinterval" value\x3d"125"/\x3e\x3csetting = name\x3d"fontcase" value\x3d"normal"/\x3e\x3csetting name\x3d"fontcolor" = value\x3d"0xffffff"/\x3e\x3csetting name\x3d"fontsize" = value\x3d"11"/\x3e\x3csetting name\x3d"fontweight" = value\x3d"normal"/\x3e\x3c/settings\x3e\x3celements\x3e\x3celement = name\x3d"background" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAA0CAYAAACQGfi= 1AAAAYklEQVR4Ae2VwQ2AMAwD/cgKVRbJuAyH+mOBfMMQyBKCuwWsxoaLtfKQkaiqtAZ0t5yE= zMSMOUCa15+IAGZqgO+AFTFTSmZFnyyZv+kfjEYH+ABlIhz7Cx4n4GROtPd5ycgNe0AqrojAB= CoAAAAASUVORK5CYII\x3d"/\x3e\x3celement name\x3d"backgroundOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAA0CAYAAACQGfi= 1AAAAY0lEQVR4Ae2VsQ2AQAwDXWSFF91Pkf1rxkAZIm0YAllCcF7Aiu3/i7WOU0ZFZm6rQXfL= aiCzYkbuC+b1EWHATM3iHbAiZkrJrIiSP/ObQjQ6gAcg8w/AsV/w2AEmE1HVVTLqBmJaKtrlU= vCnAAAAAElFTkSuQmCC"/\x3e\x3celement name\x3d"capLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAA0CAYAAACHO2h= 8AAAA4UlEQVR4Ae2XwUoDMRRFT17GTscIMoWOqwF1WUSFIv6Autf/X5TuxG6FBkOeHfAHpk+G= LnI+4HBzLzyI44/l8uoBeAVugJqRuIMA4L1t24+u685DCGci4hhJBdwPkr7vL3POLsaIqnKM6= G2xaJuUksPAILquqtlMFayiuYhzYDMJIygi+2qonloi0CkTldXK/NOXXVYrZRs6UgyUjsrxL6= d28sP2b4n0xJ62z1nVHbCutolx/4MRH8LFt6o+Nc28tqTyq9Xd5273RUrpVsSL915gvNCt188= MbLebR+Dl2K/oL+WmRveI4jXNAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"capLeftOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAA0CAYAAACHO2h= 8AAAA5ElEQVR4Ae2XMU7DQBBF346sIDAUDoqprNBCm4Im3IPcAE7EEbgId6BF6akQjheZGTYS= F7DXQi7mSdM+zf4vjbSBP1arqy2wA26BUwZSJAHAY1VVT3VdX5RluZDEYBGwPUqaprlUVYkxY= maMEe2Wy+q873shgwK4KYrFiRnkis5EgkCeScjHRQNaw2xuG4HNYiNvzeufPmxvzcPOz8jIwD= Py4++n9t8P22Qb2cye1qqahhAkt7W3GLvvKep/+Uyo/igYY0fW6+vXtv16/kgcDl2nagkYOmG= zuePIfv9+DzyM/Yr+AujSfWZZzzLnAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"capRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAA0CAYAAACHO2h= 8AAAA20lEQVR4Ae2XQUrEQBBFX4e29QJDVgFv4Cb7wSt4Ps8wLtw5B3A97mfmAFlkkbaZMpAy= nkBiBRGpd4Ci6j/4UGGzqR9ZjgBn4AV4A4ht29YsZJomzTnXXdfd9X2/A55iKYWlhJmU0nXTN= Al4mIedwnZ7/4wBkcvH8Xh6jaqYiDFdAbcRFAtVFQJwU7ESPuh7zPrX3wj0T2zk1lz/+mG7NQ= /bnpFixDPy8veq/dViW20j/W+drTOAmK2JXEbgbDrt628bhqEA+x+dpjMiMuY8lFLed8DB+or= ugQPAJ8i7bEsKl1PuAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"capRightOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAA0CAYAAACHO2h= 8AAAA2UlEQVR4Ae3XwUkEMRTG8X8eIaLgwYXF0xRgKYsVWIIVrR1sI3uwANkSvMxhDhOzRoZ5= pgOZSZiDvF8Bjy/vgwdx+/3jO8tdgQtwAs4A7nB4/mShuYgx5r7v4zAMR+DNp5RYyjknIYTbr= utugNcy7ENYQVUpoZimSXa7h3vgxatSxfsQgCcPdZNEnAB3QiM26G/V9bdPBLp9ImvN6t9y2d= aaLbtiR0ol25Edfzu1mx62Zon0v91sVZ2Bq1Ap5+8f4FL1tLkYC+C06mla5CLGcUzp6wicm31= FfwHzmG90m7lXIAAAAABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement = name\x3d"bufferIcon" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAA0CAQAAABI31K= IAAABGElEQVR4Ae3Rr0pEQRSA8Zl1b1uDQTAt4j8QES1qURZvEf8lfYJVsfoAisYFq9mgyfUF= VptgMtk3CAaD6DN8HoYbFhk9w9x0Yc6XDsv8LrNj0vgnTZo05LzzyR7m/wxafQC+sDHQENkv6= DsG2uFV2i62nDc+2C82SybVwqAX+tIzxlOdzBUEPTnosTy0wgM9lryQpS7pVwutetAiN3RZU4= 81mJYaf0PX9KR7rALNMCtNaVC3PLTALXesYpSGlatFVDFonnNOmfQeGKHFOqNhUIcr6cwLtdi= VNkIgy6WDLrxQ7qBNrApJy0J1mCu2CY6k4qKMCbJFM/TPHvzeASfS8cBvtbhXazvosPzzN2lL= 4/GQXoISlKAqQz+eXnU2Tp6C2QAAAABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement = name\x3d"bufferIconOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAA0CAQAAABI31K= IAAABGElEQVR4Ae3Rr0pEQRSA8Zl1b1uDQTAt4j8QES1qURZvEf8lfYJVsfoAisYFq9mgyfUF= VptgMtk3CAaD6DN8HoYbFhk9w9x0Yc6XDsv8LrNj0vgnTZo05LzzyR7m/wxafQC+sDHQENkv6= DsG2uFV2i62nDc+2C82SybVwqAX+tIzxlOdzBUEPTnosTy0wgM9lryQpS7pVwutetAiN3RZU4= 81mJYaf0PX9KR7rALNMCtNaVC3PLTALXesYpSGlatFVDFonnNOmfQeGKHFOqNhUIcr6cwLtdi= VNkIgy6WDLrxQ7qBNrApJy0J1mCu2CY6k4qKMCbJFM/TPHvzeASfS8cBvtbhXazvosPzzN2lL= 4/GQXoISlKAqQz+eXnU2Tp6C2QAAAABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement = name\x3d"errorIcon" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAA0CAQAAABI31K= IAAAB3ElEQVR42u2Tv0sCYRzGv5WFJIVgkEVLSy1ObWGDUE0OgdRYtBZC/QENFv0DDTW0FEYJ= GkgEBUZCEFxYlJpnEMSpUxpBNAkiT++rlb+uvNOpuOcz3Pt+j3vgeN8PkRYtWv5Z2qmb0d58k= Xl7ZXuFzM3W6E3jybfUW+8E6ZupaaXB3ZNnPGPnlAbZruF02ebTuRRSSOds89TVaE0bWYJiEh= IjiaBIFjZpKKaF1TSePknDuUamRmo6dKPRzCNKRDO6UepQW9NCAxseCXHGlHvKzZ8SNjw0wN6= oSqfFIWXvwSE72YsrKWtxkEHdsQ/5hRjuCpCNbMVVDEdXNKzmGhhnlqT8DYrwoq+1lJ9ZIqNy= u0aERAhXn/Cir3UIQoJGlJpndm2KuPyGF5V2IlxbyszTmybi7xcowYvK9/H3/sn65hXsEnBeB= i8q3wuKzGN2PeQCKIcff+Xkoa55zK4zMYCTCubcs+7KSQBn3DzdL3Ytrt3iuIpXRvXsFs516v= nFruuMH8oI/Whewa4gDmsY8435aqfBH81jdoWzXtTi8Dm8cvOwrHkFu/zwyJDBi+yc/aCMecy= uUH4f6rjOTy9Xm9cXiRxgTyX7iESor7LIQENk5XdYFVb2lYG0aNHyF/MB+x5LQiE6gt8AAAAA= SUVORK5CYII\x3d"/\x3e\x3celement name\x3d"errorIconOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAA0CAQAAABI31K= IAAAB3ElEQVR42u2Tv0sCYRzGv5WFJIVgkEVLSy1ObWGDUE0OgdRYtBZC/QENFv0DDTW0FEYJ= GkgEBUZCEFxYlJpnEMSpUxpBNAkiT++rlb+uvNOpuOcz3Pt+j3vgeN8PkRYtWv5Z2qmb0d58k= Xl7ZXuFzM3W6E3jybfUW+8E6ZupaaXB3ZNnPGPnlAbZruF02ebTuRRSSOds89TVaE0bWYJiEh= IjiaBIFjZpKKaF1TSePknDuUamRmo6dKPRzCNKRDO6UepQW9NCAxseCXHGlHvKzZ8SNjw0wN6= oSqfFIWXvwSE72YsrKWtxkEHdsQ/5hRjuCpCNbMVVDEdXNKzmGhhnlqT8DYrwoq+1lJ9ZIqNy= u0aERAhXn/Cir3UIQoJGlJpndm2KuPyGF5V2IlxbyszTmybi7xcowYvK9/H3/sn65hXsEnBeB= i8q3wuKzGN2PeQCKIcff+Xkoa55zK4zMYCTCubcs+7KSQBn3DzdL3Ytrt3iuIpXRvXsFs516v= nFruuMH8oI/Whewa4gDmsY8435aqfBH81jdoWzXtTi8Dm8cvOwrHkFu/zwyJDBi+yc/aCMecy= uUH4f6rjOTy9Xm9cXiRxgTyX7iESor7LIQENk5XdYFVb2lYG0aNHyF/MB+x5LQiE6gt8AAAAA= SUVORK5CYII\x3d"/\x3e\x3celement name\x3d"playIcon" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAA0CAQAAABI31K= IAAABHUlEQVR4Ae2Vu0oDQRRAB2xSWVmmtQncLzFREUUsnW/wJ0SCWgQV8TUQBBEsjlgIFoJF= CsFCCT5QgwZFtPGtncUWIcTZnd2pAnNOf2Bn5t5VgUCge8mpPtWrevxD+cbi1KTq948VXvjlb= MM/Jk2aPPPjHZM7Ip88Y3JLy0e+M8fkmnYfMsbkkk7v+Uodkzr/2+AzVUxOsXvDh3NMToj3in= enmByT7AVviTGp4WadV85XK0WVs4SOcHd3rVyyhg5xc91M6NhPOyDZFTOuEw97n3iXzZh2uv4= 97C6YUe38ILFQMSM61Yjs0Om8Gdaph3abdmfNkM60RrZoWTaDOvNi2yRyxpQsETcKVapMm6JH= JCI/tzTgEfH4QXYxgUDgD+1pwmmFlV3oAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"playIconOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAA0CAQAAABI31K= IAAABHklEQVR4Ae2VvUpDQRBGt7BMaekD5AEsU0zvL6KI76CdL6FDUItgIYJNEERIoVgIFoKF= hWChBBNRYwwZRBv/tfostgghuXf37lSBPac/cHd35ppIJDK45MyIGTZDRk2+UVteNaP6WOEVf= 7hu62PUQgsv+FXHqAnrszJGD+go+AmO0R26bQfGqI5en/CdOUZV9LeBr0wxukKy9/j0jtEl0r= 3Fh1eMLuC2hndnjM7hZxVvuHksLZpcQugM/h42i0uJoVP4uSMLnPppJ3C7LfPsPOxjpLslc+x= 1/UdIdlNm2ftBHqC/JZnhTCNSQa8bMs2Zh3Yf3a7JFAetkT10LMokBy+2XVhZJgIjlkIZZazI= uCJiya/Xx9QR/Q8yEokMFv9/Ax7UXjl24wAAAABJRU5ErkJggg\x3d\x3d"/\x3e\x3celeme= nt name\x3d"replayIcon" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAA0CAQAAABI31K= IAAADOElEQVR4Ae2VUWhbVRjH/0nqdk0m0eTGITVZNsmiZCLTlooNPoWlbk27lzmGSIeyh7Yg= FSYaGO2yDZk4GMi65kG9d6kkbfCuyf1bqZmmlsYxCK51KwxkrpM4qBRla18cIngvw0qgN7ea1= /z+L4fDn4/vO+c730G9NGjQQIALj8CKumn+afjIQWyDHRbUxTO/8w/Ojux9Bc0Q6gn27B3eoR= ZM5Zm2l7EVm/5bMAsEiPAjiFiFun7hXa5MjJ7Y1gI3mjYaxA5vZzSdmJeWlfvqz/xHFd7jr5+= fP+rYgU0wpQlibE8peV+9yyVWeJuLVapwleU4tsCEh9B8sn8lt8SbBprJvHUEXrOMmuCVj61o= 9h81fXEhEY/GHAf09QOVlaF3N4fgNDsjCzxnBn7jDU3T2TfexE64IeC5G9Q1lz/7/vY2iBs5a= HtndCm/wAXmUtvb8ShsD/pogdf46bm2CJ7Qr16THY87t0Iwzsf77ch1/sBCdmcYjrVuaZ4813= UAPjwMC3SXsztS+ujqWTxp1E9CV8ct9Sq/56EeOGGpemtb1t6a9bXdq7nbvKV2dRjlJKaOl1l= m+gICsME47x1jsu5LHYeIdfEXpCu8wsE43KiFezCu+woS/FiX4KxSYon7YhBQC2FfTPfNKghi= XUIldYYzdLfChlpYxRbd952KkEGgr9Uii3z6JbNAnhbd941hoOBF5RIv8WC3SWmbuzt130XD0= vyfSFOc4gfvwIVauD48qvs+Njxs8URikpOckmtevw2Br2Tdd9Lw+oVIR15VeZl91Q1Z3UXOvp= 7LVJlXI4YNaYHvdHKCE7ye3fXvE6l2OHaFr43rntNJ+IxHrj0czeQVFjifCrbDCRuqi3IG2+d= TBSrM5MNR2GuOkcMD48xymotZrcAAXBBghQ0C3Aj09Sxmp5nlOA8PwAOLyWDrPZbhGL/kMufk= kff2xx5rferFQ/vPx+fkZW13jBn2D8KrOc1H7av9ci7NNIu8yVX+xT95T1sVqe/J+dffhldzY= UPD/4U9Q8lR9TNWa5RDyeej8BhkY/Qd7Y72Jk5Jw4qkSuqwckrqTbTuhc/44zb/IEOagtpK/N= 8fdoMGDf4G6kd7103/csoAAAAASUVORK5CYII\x3d"/\x3e\x3celement = name\x3d"replayIconOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAA0CAQAAABI31K= IAAADTElEQVR4Ae2VX2xTZRjGH1iBzDMrU6lxLdOFhLJ/CepwTWCJiUSTDTdilikxJmAo2GlJ= 9I7EsCgkw6jRG5ALtZNJy7QDiwxK0dZllSypssqatCHIMKdzM4uEnUUrtj2P57uAULNzOtltf= 8/Nl3OevHnf73u/70WJxVKiRAWqcD/KsGjsvyScb6EBZizFoth4nX9zJNn6KtZCwhLcNU9Ncp= JasPw3o80vogbl/y/YUkiwoRHNcMsUSvMGlX/6zz3SCiuWLzSIGXVbnN5gXJ7566b6K29J5ix= ///PwMWk9ylGUZVj93M5o6qZ6g9OUeY0TBZI5x9ggKlGEFbDvP6Jkp3lFR8PX93yEOpQXy6a2= L6Bo9suaTv/2tv/ZPdLey7ylWKZnYEULLFhWbG+q3/f8waSmiPLKB3gSVkh4OkmhsdyHkZoO2= Bay0eYtzulcggl+PVXTiYdggmBjgpf42XjzDqwRRy+OAo/eVwNJP5+675Pj/JkhZW0XVt7uFv= vQePte1ONezSFclo4d0fjFH7FOr9Ol9l1X1Yv8idt6Ybmj6SRUofL2XSt76Zm57DVeVdt36eV= kO3o2xhi9k9gAE/TzXn88LXxHz8KGeWkMyaMc5T4/rDDCus8vfCEZjZgXx0gmyijb3JBghNTm= Fr6RDByYl5ZofpjDfKANJhhR9mCr8P2QR4tOoG/zYYa57vligVa1Ct93uoEcJzLneZ4vvIEKG= HFPx+vCd0K3tMZP5SCDfNeLKhjx8HvHhO8T3c22vRMc4hCDaTQZFGdC07m08O3XPX5p8+6Aeo= oX2F3QkAUsgaW79wJPMaBu3g1Jr9XqD6ZO8iTHlYY7rkhBmJUNXZdmhedgCvX6w8C8yenLDTL= E+JS9ExaY/lOUxd4ZnwpxkL7cJifMhs/Ids8Av2SEE4pWYBOqIKEMJlTAiqbu3gklov0d4HYP= qo2H03LUugI+HucZznAs/fFXW92VbWu2bnvzsH8sPcMz2h8fXzuNWs1Z/KntOtKX9dLLMK9wj= nlmOautwhTf+nIvf446zYUFPf5P7OxJ9atfsFD97Ek97kS1TjZ64+gxpyt4QD6U8age9VDmgO= wKbnChXn9wFxuQDrRocmir1ai4y+lfokSJfwEhAcqxd5L4JgAAAABJRU5ErkJggg\x3d\x3d"= /\x3e\x3c/elements\x3e\x3c/component\x3e\x3ccomponent = name\x3d"dock"\x3e\x3csettings\x3e\x3csetting name\x3d"iconalpha" = value\x3d"1"/\x3e\x3csetting name\x3d"iconalphaactive" = value\x3d"1"/\x3e\x3csetting name\x3d"iconalphaover" = value\x3d"1"/\x3e\x3c/settings\x3e\x3celements\x3e\x3celement = name\x3d"button" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAgCAYAAABpRpp= 6AAAAxklEQVR4Ae2YsQ3CMBBF7+yIximQSERSMgYNI1AxJgswAaMkLREpEnQ2Z6Chooqwpf+k= 65+evhtzXW8LIjrp7fUcpcmod9U7v2Sbpjm2bVtaa5kSRERC13V13/ePIpatqk05zzOHEChFW= ImOKnyIwk7EMyXMJyTrOUOZAeGlKd4byUtYCZjEN9gwCuPRYRKYBCbx18JLJ0bh3IQJk/gFHh= 0Ko3BWwqOID8YYpoTx3ofoap0r18y0WymspCo7DLf7NE2X7L5bnyz7UgI6sO7WAAAAAElFTkS= uQmCC"/\x3e\x3celement name\x3d"buttonOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAgCAYAAABpRpp= 6AAAAzklEQVR4Ae2YMU7FMBAFx04osQvyRQIX4nfcgRZOAxW3oMqRkhKbBkWyjVfiCiD7a0dK= Pxq9dZHxdLq9Al6AB8DRJl/ACryOwPM8z0/LsvhhGCwNklLK27bd7fv+LcLnabrxx3HYUgotY= oyx4liFH0XYpZQtDfMb0orrSGeo8L8Il9Jd4dL5JFRYN6xHp5PQSegkLuwd/uPEWrg3YXQSen= RaWAtfVOGYUs62QsPkiriK8Brj571z3ot0q7IxhgB8iPBbCMHU7wxcN/679f0HQzRYj4Eg/3A= AAAAASUVORK5CYII\x3d"/\x3e\x3celement name\x3d"buttonActive" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAgCAYAAABpRpp= 6AAAAwUlEQVR4Ae2YsQ3CMBBFD8e0CVESUcFMpGMKapgAKvagymKWiF3RxMe/IUDn6J70I5dP= X98u4odhvyWiG3JCdqSTiEzI3eNz7fv+0nVdW1WVI4VkEEI4IB8RHjXLCg6II4TPXmbgADOTZ= hwQV0+F4ekPmDBzcQ2zTcKEC9+wXTqbhE3CJrGyd5jpp1jDxb0SNgm7dNawNbyqhudlydkBUk= wG4irCU0rzsa6bVqt0BinFN44vEX7EGDfIiHOj/Hfr8wvCZ0/Xf6TpeQAAAABJRU5ErkJggg\= x3d\x3d"/\x3e\x3celement name\x3d"divider" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAgCAYAAAA1zNl= eAAAAD0lEQVQoU2NgGAWjADcAAAIgAAEeEYatAAAAAElFTkSuQmCC"/\x3e\x3c/elements\= x3e\x3c/component\x3e\x3ccomponent = name\x3d"playlist"\x3e\x3csettings\x3e\x3csetting = name\x3d"backgroundcolor" value\x3d"0x3c3c3e"/\x3e\x3csetting = name\x3d"fontcolor" value\x3d"0x848489"/\x3e\x3csetting = name\x3d"fontsize" value\x3d"11"/\x3e\x3csetting name\x3d"fontweight" = value\x3d"normal"/\x3e\x3csetting name\x3d"activecolor" = value\x3d"0xb2b2b6"/\x3e\x3csetting name\x3d"overcolor" = value\x3d"0xb2b2b6"/\x3e\x3csetting name\x3d"titlecolor" = value\x3d"0xb9b9be"/\x3e\x3csetting name\x3d"titlesize" = value\x3d"12"/\x3e\x3csetting name\x3d"titleweight" = value\x3d"bold"/\x3e\x3csetting name\x3d"titleactivecolor" = value\x3d"0xececf4"/\x3e\x3csetting name\x3d"titleovercolor" = value\x3d"0xececf4"/\x3e\x3c/settings\x3e\x3celements\x3e\x3celement = name\x3d"item" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABMAQMAAAASt2o= TAAAAA1BMVEU8PD44mUV6AAAAFklEQVR4AWMYMmAUjIJRMApGwSgYBQAHuAABIqNCjAAAAABJ= RU5ErkJggg\x3d\x3d"/\x3e\x3celement name\x3d"itemActive" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABMAQMAAAASt2o= TAAAAA1BMVEUvLzHXqQRQAAAAFklEQVR4AWMYMmAUjIJRMApGwSgYBQAHuAABIqNCjAAAAABJ= RU5ErkJggg\x3d\x3d"/\x3e\x3celement name\x3d"itemImage" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAA2CAMAAAAPkWz= gAAAAk1BMVEU0NDcVFRcWFhgXFxknJyozMzYyMjUlJSgrKy4jIyYZGRssLC8YGBobGx0kJCcu= LjAiIiQaGhwjIyUpKSwkJCYaGh0nJykiIiUgICIwMDMqKi0cHB8lJScdHSAtLTAuLjEdHR8VF= RgxMTQvLzIvLzEoKCsZGRwqKiwbGx4gICMoKCofHyImJigmJikhISMeHiAhISRWJqoOAAAA/k= lEQVR4Ae3VNYLDMBQG4X8kme2QwwzLfP/TbeO0qfQ6zQW+coRxQqYl4HEJSEACEvA8NQamRkC= oF40kNUxMgC3gc0lrtiZAB1BKuSOPDIzcXroB0EtL3hQXuIHLNboDC+aRgRnQ6GUAjtBEBmrg= dcwA/OCyuMATraOvBiB3HBQTOJ8KZp5QwwXoA3xFBdrVjpPnHVgBfQfjqMChZSoAugDMwCsqU= MFeAHwEwMFnXKDkshGAz5YAEOIC2fpbAqhUAMDG4AcO3HUAahkAHYykOQATC6Bsf7M7UNotsw= LwmR2wAviTHVAAHA2BMXCWIaDC7642wIMSkIAEJCABxv0D1B4Kmtm5dvAAAAAASUVORK5CYII= \x3d"/\x3e\x3celement name\x3d"divider" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAAABCAIAAAAkUWe= UAAAAEUlEQVR42mPQ1zccRaOIzggAmuR1T+nadMkAAAAASUVORK5CYII\x3d"/\x3e\x3cele= ment name\x3d"sliderRail" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABCAYAAADErm6= rAAAAHklEQVQI12NgIABERcX/Kymp/FdWVkXBIDGQHCH9AAmVCvfMHD66AAAAAElFTkSuQmCC= "/\x3e\x3celement name\x3d"sliderCapTop" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAKCAYAAACuaZ5= oAAAAEUlEQVQoU2NgGAWjYBQMfQAAA8oAAZphnjsAAAAASUVORK5CYII\x3d"/\x3e\x3cele= ment name\x3d"sliderCapBottom" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAKCAYAAACuaZ5= oAAAAEUlEQVQoU2NgGAWjYBQMfQAAA8oAAZphnjsAAAAASUVORK5CYII\x3d"/\x3e\x3cele= ment name\x3d"sliderRailCapTop" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAECAYAAACUY/8= YAAAAX0lEQVR42q2P4QqAIAyEewktLUy3pKevVwvpAdZO+q9Qgw+OO25jQ88YM2blUAp4dW71= epfvyuXcLCGsFWh4yD4fsHY6vV8kRpKUGFQND9kfHxQsJNqEOYOq4Wl2t/oPXdoiX8vd60IAA= AAASUVORK5CYII\x3d"/\x3e\x3celement name\x3d"sliderRailCapBottom" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAECAYAAACUY/8= YAAAAXElEQVQY02NgIADExCQ+KSmp/FdWVkXBIDGg3BcGSoG0tMxGWVl5DAtAYiA5ii2wsbE1= ALr0A8hAkKtBGMQGiYHkKLbg////TK6uboYg1wIN/QzCIDZIDCRHSD8AB2YrZ5n2CLAAAAAAS= UVORK5CYII\x3d"/\x3e\x3celement name\x3d"sliderThumb" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAABCAAAAADhxTF= 3AAAAAnRSTlMA/1uRIrUAAAAUSURBVHjaY/oPA49unT+yaz2cCwAcKhapymVMMwAAAABJRU5E= rkJggg\x3d\x3d"/\x3e\x3celement name\x3d"sliderThumbCapBottom" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAECAQAAAA+aje= TAAAAMElEQVQI12NgwACPPt76f/7/kf+7/q//yEAMeNQH19DHQBy41Xf+/ZH3u4hVjh8AAJAY= GojU8tLHAAAAAElFTkSuQmCC"/\x3e\x3celement name\x3d"sliderThumbCapTop" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAECAQAAAA+aje= TAAAANUlEQVQI12NgoAbY2rf+49KPs/uIVH54wrH/h/7v+L/y//QJRGm4/PHa/7NALdv+L/6M= KQsAZV8ZczFGWjAAAAAASUVORK5CYII\x3d"/\x3e\x3c/elements\x3e\x3c/component\= x3e\x3ccomponent name\x3d"tooltip"\x3e\x3csettings\x3e\x3csetting = name\x3d"fontcase" value\x3d"normal"/\x3e\x3csetting name\x3d"fontcolor" = value\x3d"0xacacac"/\x3e\x3csetting name\x3d"fontsize" = value\x3d"11"/\x3e\x3csetting name\x3d"fontweight" = value\x3d"normal"/\x3e\x3csetting name\x3d"activecolor" = value\x3d"0xffffff"/\x3e\x3csetting name\x3d"overcolor" = value\x3d"0xffffff"/\x3e\x3c/settings\x3e\x3celements\x3e\x3celement = name\x3d"background" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAACCAYAAABsfz2= XAAAAEUlEQVR4AWOwtnV8RgomWQMAWvcm6W7AcF8AAAAASUVORK5CYII\x3d"/\x3e\x3cele= ment name\x3d"arrow" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAADCAYAAACnI+4= yAAAAEklEQVR42mP4//8/AymYgeYaABssa5WUTzsyAAAAAElFTkSuQmCC"/\x3e\x3celemen= t name\x3d"capTop" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAECAYAAAC6Jt6= KAAAAHUlEQVR42mMUFRU/wUACYHR1935GkgZrW0faagAAqHQGCWgiU9QAAAAASUVORK5CYII\= x3d"/\x3e\x3celement name\x3d"capBottom" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAECAYAAAC6Jt6= KAAAAGElEQVR42mOwtnV8RgpmoL0GUVHxE6RgAO7IRsl4Cw8cAAAAAElFTkSuQmCC"/\x3e\x= 3celement name\x3d"capLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAACCAYAAACUn8Z= gAAAAFklEQVR42mMQFRU/YW3r+AwbZsAnCQBUPRWHq8l/fAAAAABJRU5ErkJggg\x3d\x3d"/= \x3e\x3celement name\x3d"capRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAACCAYAAACUn8Z= gAAAAFklEQVR42mOwtnV8hg2LioqfYMAnCQBwXRWHw2Rr1wAAAABJRU5ErkJggg\x3d\x3d"/= \x3e\x3celement name\x3d"capTopLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAYAAABCxiV= 9AAAAPklEQVR4XmMQFRVnBeIiIN4FxCeQMQOQU6ijq3/VycXjiau79zNkDJLcZWvv9MTGzumZ= ta0jCgZJnkAXhPEBnhkmTDF7/FAAAAAASUVORK5CYII\x3d"/\x3e\x3celement = name\x3d"capTopRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAYAAABCxiV= 9AAAAPklEQVR42mMQFRU/gYZ3A3ERELMyuLp7P0PGTi4eT3R09a8CJbMYrG0dnyFjGzunZ7b2= Tk+AkrswJGEYZAUA8XwmRnLnEVMAAAAASUVORK5CYII\x3d"/\x3e\x3celement = name\x3d"capBottomLeft" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAYAAABCxiV= 9AAAAMUlEQVR4AWMQFRU/YW3r+AwbBknusrSye4JLslBdQ/uqpbX9E2ySrEBcBMS7QVYgYwAW= ViWcql/T2AAAAABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement = name\x3d"capBottomRight" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAYAAABCxiV= 9AAAANUlEQVR42mOwtnV8hg2LioqfYMAmYWll9wQouQtD0tLa/om6hvZVoGQ2A0g7Gt4NxEVA= zAoAZzolltlSH50AAAAASUVORK5CYII\x3d"/\x3e\x3celement = name\x3d"menuOption" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAARCAYAAADkIz3= lAAAAcklEQVQoz2NgGLFAVFRcDoh3AfFnKC2HVaGYmMQeSUnp/7Kycv9BNJB/AJeJn+XlFf8r= Kir/V1BQ+g/k/8SqEGjKPhkZuf/Kyqr/QTSQfwirQm9vX3WQYqCVX0G0p6e3BlaF////ZwJiL= iDmgdJMwzr2ANEWKw6VGUzBAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"menuOptionOver" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAARCAYAAADkIz3= lAAAAcklEQVQoz2NgGLFAVFRcDoh3AfFnKC2HVaGYmMQeSUnp/7Kycv9BNJB/AJeJn+XlFf8r= Kir/V1BQ+g/k/8SqEGjKPhkZuf/Kyqr/QTSQfwirQm9vX3WQYqCVX0G0p6e3BlaF////ZwJiL= iDmgdJMwzr2ANEWKw6VGUzBAAAAAElFTkSuQmCC"/\x3e\x3celement = name\x3d"menuOptionActive" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAARCAQAAABOKvV= uAAAAdElEQVR4AWOgJ5BhcGQIBWIZhJCsW+6jS7+/P7rklssgBxN0un/59f+n/1//f3SVwQUm= GPrs+6P/IPj8N0M4TNBl/+Vr/0Hw4FUGN5igkm3ursvnf+y6bJ/LoAwTZGZQY/BgCANiNSCbA= SHMwcANxMy09DcAxqMsxkMxUYIAAAAASUVORK5CYII\x3d"/\x3e\x3celement = name\x3d"volumeCapTop" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAFCAYAAAB1j90= SAAAAE0lEQVR42mP4//8/AzmYYQRoBADgm9EvDrkmuwAAAABJRU5ErkJggg\x3d\x3d"/\x3e= \x3celement name\x3d"volumeCapBottom" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAFCAYAAAB1j90= SAAAAE0lEQVR42mP4//8/AzmYYQRoBADgm9EvDrkmuwAAAABJRU5ErkJggg\x3d\x3d"/\x3e= \x3celement name\x3d"volumeRailCapTop" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAECAYAAAC+0w6= 3AAAAXklEQVR42n2NWwqAIBRE3YSmJT4KafW1tZAWMN2RPkSojwPDPO5VAFSP1lMRDqG+UJex= N4524bJ2hvehQU2P2efQGHs6tyCEhBhzg5oes7+PlcWUVuS8Nah5QLK77z7Bcm/CZuJM1AAAA= ABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement name\x3d"volumeRailCapBottom" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAECAYAAAC+0w6= 3AAAAWklEQVQI12NgQAJiYhKfVFXV/6upaaBgkBhQ7gsDLiAtLbNRXl4RQyNIDCSHU6ONja0B= 0OQPIIUgW0AYxAaJgeRwavz//z+Tq6ubIch0oOLPIAxig8RAcshqARVfK+sjJ8UzAAAAAElFT= kSuQmCC"/\x3e\x3celement name\x3d"volumeRail" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAA0CAYAAAC6qQk= aAAAAXklEQVR42mP5//8/AwyIiUn85+bmZmBkZGRABiA1X79+ZXj16gVcgoUBDaBrwiWGoZFY= MCg0MpKnkZFxCPlxVONw0MjIyDgaOCM7AdC7lBuNjtGiY1TjqMbRwooijQBUhw3jnmCdzgAAA= ABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement name\x3d"volumeProgress" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAA0CAAAAACfwlb= GAAAAAnRSTlMA/1uRIrUAAAAmSURBVHgBY/gPBPdunT+yaw2IBeY+BHHXwbmPQNz1w5w7yh3l= AgBeJpPWLirUWgAAAABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement = name\x3d"volumeProgressCapTop" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAECAQAAAAU2sY= 8AAAANElEQVQI12NgIA5s7Vv/cenH2X1YpA5POPb/0P8d/1f+nz4BQ/Lyx2v/zwKlt/1f/Bkm= BgDJshlzy7m4BgAAAABJRU5ErkJggg\x3d\x3d"/\x3e\x3celement = name\x3d"volumeProgressCapBottom" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAECAQAAAAU2sY= 8AAAAL0lEQVQI12NggIJHH2/9P///yP9d/9d/ZkAHjybCJScyYIJbE85/OvJp1wQG4gAADBka= ms/Cpm0AAAAASUVORK5CYII\x3d"/\x3e\x3celement name\x3d"volumeThumb" = src\x3d"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAQAAACMnYa= xAAAA/klEQVR4AYXQoW7CUBjF8f9IYWkgq2l2k8llrmJBTOBxsyQlJENs4236CDhEywNUIEGh= 12WZuYDC4W9A3B2zhTVLds8VJ+fnPv5/FzQIaHGptNQaWn4ooM0DA56VgVpbi1hEk2vSvNjbo= zu6vc0LUi1NCQFXDBflwW/9p7L1B78oGRJJCOnN8o3/OMvGz3J6EiLStdX0K2tLKiFm8n6qY3= XiVYL5C98cLxL90dLWcWkZSYjpZ0Uds4K+hIg7nqblOU1LxlojCDF0GWfz1a5ylVvtsrmoi5E= Q0OGGhEdNE2WslmjpSND5VAy3mu6VRM1o0fm+Dx8SEWOUWC3UIvoCCFqphCwr/x8AAAAASUVO= RK5CYII\x3d"/\x3e\x3c/elements\x3e\x3c/component\x3e\x3c/components\x3e\x= 3c/skin\x3e')}})(jwplayer);=0A= (function(d){var = k=3Dd.html5,a=3Dd.utils,c=3Dd.events,e=3Dc.state,f=3Da.css,g=3Da.isMobile= (),h=3D".jwpreview",b=3D{showicons:!0,bufferrotation:45,bufferinterval:10= 0,fontcolor:"#ccc",overcolor:"#fff",fontsize:15,fontweight:""};k.display=3D= function(d,j){function = l(b){if(D&&(d.jwGetControls()||d.jwGetState()=3D=3D=3De.PLAYING))D(b);els= e = if((!g||!d.jwGetControls())&&T.sendEvent(c.JWPLAYER_DISPLAY_CLICK),d.jwGe= tControls()){var f=3D(new = Date).getTime();U&&500>f-U?(d.jwSetFullscreen(),U=3Dvoid 0):U=3D(new = Date).getTime();var = h=3Da.bounds(u.parentNode.querySelector(".jwcontrolbar")),=0A= j=3Da.bounds(u),f=3Dh.left-10-j.left,n=3Dh.left+30-j.left,m=3Dj.bottom-40= ,k=3Dj.bottom,l=3Dh.right-30-j.left,h=3Dh.right+10-j.left;if(g&&!(b.x>=3D= f&&b.x<=3Dn&&b.y>=3Dm&&b.y<=3Dk)){if(b.x>=3Dl&&b.x<=3Dh&&b.y>=3Dm&&b.y<=3D= k){d.jwSetFullscreen();return}T.sendEvent(c.JWPLAYER_DISPLAY_CLICK);if(M)= return}switch(d.jwGetState()){case e.PLAYING:case = e.BUFFERING:d.jwPause();break;default:d.jwPlay()}}}function = r(a,b){Q.showicons&&(a||b?(G.setRotation("buffer"=3D=3D=3Da?parseInt(Q.bu= fferrotation,10):0,parseInt(Q.bufferinterval,10)),G.setIcon(a),=0A= G.setText(b)):G.hide())}function = s(a){C!=3D=3Da?(C&&z(h,!1),(C=3Da)?(a=3Dnew = Image,a.addEventListener("load",y,!1),a.src=3DC):(f("#"+u.id+" = "+h,{"background-image":""}),z(h,!1),F=3Dx=3D0)):C&&!M&&z(h,!0);A(d.jwGet= State())}function = t(a){clearTimeout(aa);aa=3DsetTimeout(function(){A(a.newstate)},100)}func= tion = A(a){a=3DO?O:d?d.jwGetState():e.IDLE;if(a!=3D=3DR)switch(R=3Da,G&&G.setRo= tation(0),a){case = e.IDLE:!L&&!J&&(C&&!K&&z(h,!0),a=3D!0,d._model&&!1=3D=3D=3Dd._model.confi= g.displaytitle&&(a=3D!1),r("play",v&&a?v.title:""));break;case = e.BUFFERING:L=3D=0A= !1;n.error&&n.error.setText();J=3D!1;r("buffer");break;case = e.PLAYING:r();break;case e.PAUSED:r("play")}}function = y(){F=3Dthis.width;x=3Dthis.height;A(d.jwGetState());B();C&&f("#"+u.id+" = "+h,{"background-image":"url("+C+")"})}function = m(a){L=3D!0;r("error",a.message)}function = B(){0<u.clientWidth*u.clientHeight&&a.stretch(d.jwGetStretching(),q,u.cli= entWidth,u.clientHeight,F,x)}function z(a,b){f("#"+u.id+" = "+a,{opacity:b?1:0,visibility:b?"visible":"hidden"})}var = u,q,w,v,C,F,x,K=3D!1,n=3D{},L=3D!1,J=3D!1,M,I,G,O,R,=0A= Q=3Da.extend({},b,d.skin.getComponentSettings("display"),j),T=3Dnew = c.eventdispatcher,D,U;a.extend(this,T);this.clickHandler=3Dl;var = aa;this.forceState=3Dfunction(a){O=3Da;A(a);this.show()};this.releaseStat= e=3Dfunction(a){O=3Dnull;A(a);this.show()};this.hidePreview=3Dfunction(a)= {K=3Da;z(h,!a);a&&(M=3D!0)};this.setHiding=3Dfunction(){M=3D!0};this.elem= ent=3Dfunction(){return = u};this.redraw=3DB;this.show=3Dfunction(a){if(G&&(a||(O?O:d?d.jwGetState(= ):e.IDLE)!=3D=3De.PLAYING))clearTimeout(I),I=3Dvoid = 0,u.style.display=3D"block",G.show(),M=3D=0A= !1};this.hide=3Dfunction(){G&&(G.hide(),M=3D!0)};this.setAlternateClickHa= ndler=3Dfunction(a){D=3Da};this.revertAlternateClickHandler=3Dfunction(){= D=3Dnull};u=3Ddocument.createElement("div");u.id=3Dd.id+"_display";u.clas= sName=3D"jwdisplay";q=3Ddocument.createElement("div");q.className=3D"jwpr= eview = jw"+d.jwGetStretching();u.appendChild(q);d.jwAddEventListener(c.JWPLAYER_= PLAYER_STATE,t);d.jwAddEventListener(c.JWPLAYER_PLAYLIST_ITEM,function(){= L=3D!1;n.error&&n.error.setText();var = a=3D(v=3Dd.jwGetPlaylist()[d.jwGetPlaylistIndex()])?=0A= v.image:"";R=3Dvoid = 0;s(a)});d.jwAddEventListener(c.JWPLAYER_PLAYLIST_COMPLETE,function(){J=3D= !0;r("replay");var = a=3Dd.jwGetPlaylist()[0];s(a.image)});d.jwAddEventListener(c.JWPLAYER_MED= IA_ERROR,m);d.jwAddEventListener(c.JWPLAYER_ERROR,m);d.jwAddEventListener= (c.JWPLAYER_PROVIDER_CLICK,l);g?(w=3Dnew = a.touch(u),w.addEventListener(a.touchEvents.TAP,l)):u.addEventListener("c= lick",l,!1);w=3D{font:Q.fontweight+" = "+Q.fontsize+"px/"+(parseInt(Q.fontsize,10)+3)+"px Arial, Helvetica, = sans-serif",color:Q.fontcolor};G=3D=0A= new = k.displayicon(u.id+"_button",d,w,{color:Q.overcolor});u.appendChild(G.ele= ment());t({newstate:e.IDLE})};f(".jwdisplay",{position:"absolute",width:"= 100%",height:"100%",overflow:"hidden"});f(".jwdisplay = "+h,{position:"absolute",width:"100%",height:"100%",background:"#000 = no-repeat = center",overflow:"hidden",opacity:0});a.transitionStyle(".jwdisplay, = .jwdisplay *","opacity .25s, color .25s")})(jwplayer);=0A= (function(d){var = k=3Dd.utils,a=3Dk.css,c=3Ddocument,e=3D"none",f=3D"100%";d.html5.displayi= con=3Dfunction(g,h,b,p){function j(a,b,e,d){var = f=3Dc.createElement("div");f.className=3Da;b&&b.appendChild(f);m&&l(f,a,"= ."+a,e,d);return f}function l(b,c,e,d,f){var = g=3Dr(c);"replayIcon"=3D=3D=3Dc&&!g.src&&(g=3Dr("playIcon"));g.src?(d=3Dk= .extend({},d),0<c.indexOf("Icon")&&(x=3Dg.width|0),d.width=3Dg.width,d["b= ackground-image"]=3D"url("+g.src+")",d["background-size"]=3Dg.width+"px = "+g.height+"px",d["float"]=3D"none",f=3Dk.extend({},f),g.overSrc&&(f["bac= kground-image"]=3D=0A= "url("+g.overSrc+")"),k.isMobile()||a("#"+h.id+" .jwdisplay:hover = "+e,f),a.style(m,{display:"table"})):a.style(m,{display:"none"});d&&a.sty= le(b,d);F=3Dg}function r(a){var = b=3Dy.getSkinElement("display",a);a=3Dy.getSkinElement("display",a+"Over"= );return = b?(b.overSrc=3Da&&a.src?a.src:"",b):{src:"",overSrc:"",width:0,height:0}}= function s(){var = b=3Dq||0=3D=3D=3Dx;a.style(w,{display:w.innerHTML&&b?"":e});n=3Db?30:0;t(= )}function t(){clearTimeout(K);0<n--&&(K=3DsetTimeout(t,33));var b=3D"px = "+f,c=3DMath.ceil(Math.max(F.width,k.bounds(m).width-=0A= u.width-z.width)),b=3D{"background-size":[z.width+b,c+b,u.width+b].join("= , = ")};m.parentNode&&(b.left=3D1=3D=3D=3Dm.parentNode.clientWidth%2?"0.5px":= "");a.style(m,b)}function A(){M=3D(M+J)%360;k.rotate(v,M)}var = y=3Dh.skin,m,B,z,u,q,w,v,C=3D{},F,x=3D0,K=3D-1,n=3D0;this.element=3Dfunct= ion(){return m};this.setText=3Dfunction(a){var = b=3Dw.style;w.innerHTML=3Da?a.replace(":",":\x3cbr\x3e"):"";b.height=3D"0= ";b.display=3D"block";if(a)for(;2<Math.floor(w.scrollHeight/c.defaultView= .getComputedStyle(w,null).lineHeight.replace("px",""));)w.innerHTML=3D=0A= w.innerHTML.replace(/(.*) = .*$/,"$1...");b.height=3D"";b.display=3D"";s()};this.setIcon=3Dfunction(a= ){var = b=3DC[a];b||(b=3Dj("jwicon"),b.id=3Dm.id+"_"+a);l(b,a+"Icon","#"+b.id);m.= contains(v)?m.replaceChild(b,v):m.appendChild(b);v=3Db};var = L,J=3D0,M;this.setRotation=3Dfunction(a,b){clearInterval(L);M=3D0;J=3Da|0= ;0=3D=3D=3DJ?A():L=3DsetInterval(A,b)};var = I=3Dthis.hide=3Dfunction(){m.style.opacity=3D0;m.style.cursor=3D""};this.= show=3Dfunction(){m.style.opacity=3D1;m.style.cursor=3D"pointer"};m=3Dj("= jwdisplayIcon");m.id=3Dg;B=3Dr("background");z=3Dr("capLeft");=0A= u=3Dr("capRight");q=3D0<z.width*u.width;var = G=3D{"background-image":"url("+z.src+"), url("+B.src+"), = url("+u.src+")","background-position":"left,center,right","background-rep= eat":"no-repeat",padding:"0 "+u.width+"px 0 = "+z.width+"px",height:B.height,"margin-top":B.height/-2};a("#"+g,G);k.isM= obile()||(B.overSrc&&(G["background-image"]=3D"url("+z.overSrc+"), = url("+B.overSrc+"), url("+u.overSrc+")"),a(".jw-tab-focus #"+g+", = #"+h.id+" .jwdisplay:hover = "+("#"+g),G));w=3Dj("jwtext",m,b,p);v=3Dj("jwicon",m);h.jwAddEventListene= r(d.events.JWPLAYER_RESIZE,=0A= t);I();s()};a(".jwplayer = .jwdisplayIcon",{display:"table",position:"relative","margin-left":"auto"= ,"margin-right":"auto",top:"50%","float":"none"});a(".jwplayer = .jwdisplayIcon = div",{position:"relative",display:"table-cell","vertical-align":"middle",= "background-repeat":"no-repeat","background-position":"center"});a(".jwpl= ayer .jwdisplayIcon div",{"vertical-align":"middle"},!0);a(".jwplayer = .jwdisplayIcon .jwtext",{color:"#fff",padding:"0 = 1px","max-width":"300px","overflow-y":"hidden","text-align":"center",=0A= "-webkit-user-select":e,"-moz-user-select":e,"-ms-user-select":e,"user-se= lect":e})})(jwplayer);=0A= (function(d){var = k=3Dd.html5,a=3Dd.utils,c=3Da.css,e=3Da.bounds,f=3Dwindow.top!=3D=3Dwindo= w.self,g=3D".jwdockbuttons";k.dock=3Dfunction(d,b){function = p(a){return!a||!a.src?{}:{background:"url("+a.src+") = center","background-size":a.width+"px "+a.height+"px"}}function = j(b,e){var d=3Ds(b);c(l("."+b),a.extend(p(d),{width:d.width}));return = r("div",b,e)}function l(a){return"#"+y+" "+(a?a:"")}function = r(a,b,c){a=3Ddocument.createElement(a);b&&(a.className=3Db);c&&c.appendCh= ild(a);return a}function s(a){return(a=3Dm.getSkinElement("dock",=0A= a))?a:{width:0,height:0,src:""}}function t(){c(g+" .capLeft, "+g+" = .capRight",{display:B?"block":"none"})}var = A=3Da.extend({},{iconalpha:0.75,iconalphaactive:0.5,iconalphaover:1,margi= n:8},b),y=3Dd.id+"_dock",m=3Dd.skin,B=3D0,z=3D{},u=3D{},q,w,v,C=3Dthis;C.= redraw=3Dfunction(){e(q)};C.element=3Dfunction(){return = q};C.offset=3Dfunction(a){c(l(),{"margin-left":a})};C.hide=3Dfunction(){C= .visible&&(C.visible=3D!1,q.style.opacity=3D0,clearTimeout(v),v=3DsetTime= out(function(){q.style.display=3D"none"},250))};C.showTemp=3Dfunction(){C= .visible||=0A= (q.style.opacity=3D0,q.style.display=3D"block")};C.hideTemp=3Dfunction(){= C.visible||(q.style.display=3D"none")};C.show=3Dfunction(){!C.visible&&B&= &(C.visible=3D!0,q.style.display=3D"block",clearTimeout(v),v=3DsetTimeout= (function(){q.style.opacity=3D1},0))};C.addButton=3Dfunction(b,g,j,l){if(= !z[l]){var = s=3Dr("div","divider",w),v=3Dr("div","button",w),x=3Dr("div",null,v);x.id= =3Dy+"_"+l;x.innerHTML=3D"\x26nbsp;";c("#"+x.id,{"background-image":b});"= string"=3D=3D=3Dtypeof j&&(j=3Dnew Function(j));a.isMobile()?(new = a.touch(v)).addEventListener(a.touchEvents.TAP,=0A= function(a){j(a)}):v.addEventListener("click",function(a){j(a);a.preventD= efault()});z[l]=3D{element:v,label:g,divider:s,icon:x};if(g){var p=3Dnew = k.overlay(x.id+"_tooltip",m,!0);b=3Dr("div");b.id=3Dx.id+"_label";b.inner= HTML=3Dg;c("#"+b.id,{padding:3});p.setContents(b);if(!a.isMobile()){var = A;v.addEventListener("mouseover",function(){clearTimeout(A);var = b=3Du[l],g,j;g=3De(z[l].icon);b.offsetX(0);j=3De(q);f&&a.isIE()&&d.jwGetF= ullscreen()?c("#"+b.element().id,{left:100*g.left+50+100*g.width/2}):c("#= "+b.element().id,=0A= {left:g.left-j.left+g.width/2});g=3De(b.element());j.left>g.left&&b.offse= tX(j.left-g.left+8);p.show();a.foreach(u,function(a,b){a!=3D=3Dl&&b.hide(= )})},!1);v.addEventListener("mouseout",function(){A=3DsetTimeout(p.hide,1= 00)},!1);q.appendChild(p.element());u[l]=3Dp}}B++;t()}};C.removeButton=3D= function(a){if(z[a]){w.removeChild(z[a].element);w.removeChild(z[a].divid= er);var = b=3Ddocument.getElementById(""+y+"_"+a+"_tooltip");b&&q.removeChild(b);de= lete z[a];B--;t()}};C.numButtons=3Dfunction(){return B};C.visible=3D!1;q=3D=0A= r("div","jwdock");w=3Dr("div","jwdockbuttons");q.appendChild(w);q.id=3Dy;= var = F=3Ds("button"),x=3Ds("buttonOver"),K=3Ds("buttonActive");F&&(c(l(),{heig= ht:F.height,padding:A.margin}),c(g,{height:F.height}),c(l("div.button"),a= .extend(p(F),{width:F.width,cursor:"pointer",border:"none"})),c(l("div.bu= tton:hover"),p(x)),c(l("div.button:active"),p(K)),c(l("div.button\x3ediv"= ),{opacity:A.iconalpha}),c(l("div.button:hover\x3ediv"),{opacity:A.iconal= phaover}),c(l("div.button:active\x3ediv"),{opacity:A.iconalphaactive}),=0A= c(l(".jwoverlay"),{top:A.margin+F.height}),j("capLeft",w),j("capRight",w)= ,j("divider"));setTimeout(function(){e(q)})};c(".jwdock",{opacity:0,displ= ay:"none"});c(".jwdock \x3e = *",{height:"100%","float":"left"});c(".jwdock \x3e = .jwoverlay",{height:"auto","float":"none","z-index":99});c(g+" = div.button",{position:"relative"});c(g+" \x3e = *",{height:"100%","float":"left"});c(g+" = .divider",{display:"none"});c(g+" div.button ~ = .divider",{display:"block"});c(g+" .capLeft, "+g+" = .capRight",{display:"none"});=0A= c(g+" .capRight",{"float":"right"});c(g+" div.button \x3e = div",{left:0,right:0,top:0,bottom:0,margin:5,position:"absolute","backgro= und-position":"center","background-repeat":"no-repeat"});a.transitionStyl= e(".jwdock","background .25s, opacity .25s");a.transitionStyle(".jwdock = .jwoverlay","opacity .25s");a.transitionStyle(g+" div.button = div","opacity .25s")})(jwplayer);=0A= (function(d){var = k=3Dd.html5,a=3Dd.utils,c=3Dd._,e=3Dd.events,f=3De.state,g=3Dd.playlist;k= .instream=3Dfunction(h,b,p,j){function = l(a){z(a.type,a);I&&h.jwInstreamDestroy(!1,D)}function = r(a){if(a.newstate!=3D=3DI.state)switch(I.state=3Da.newstate,I.state){cas= e f.PLAYING:D.jwInstreamPlay();break;case = f.PAUSED:D.jwInstreamPause()}}function s(a){z(a.type,a);m()}function = t(a){z(a.type,a)}function = A(a){b.sendEvent(a.type,a);z(e.JWPLAYER_FULLSCREEN,{fullscreen:a.jwstate}= )}function y(){R&&R.releaseState(D.jwGetState());G.play()}=0A= function m(){if(v&&C+1<v.length){C++;var b=3Dv[C];w=3Dnew = g.item(b);I.setPlaylist([b]);var = c;F&&(c=3DF[C]);x=3Da.extend(q,c);G.load(I.playlist[0]);K.reset(x.skipoff= set||-1);T=3DsetTimeout(function(){z(e.JWPLAYER_PLAYLIST_ITEM,{index:C},!= 0)},0)}else = T=3DsetTimeout(function(){z(e.JWPLAYER_PLAYLIST_COMPLETE,{},!0);h.jwInstr= eamDestroy(!0,D)},0)}function = B(a){a.width&&a.height&&(R&&R.releaseState(D.jwGetState()),p.resizeMedia(= ))}function = z(a,b){b=3Db||{};q.tag&&!b.tag&&(b.tag=3Dq.tag);D.sendEvent(a,b)}function= u(){O&&=0A= O.redraw();R&&R.redraw()}var = q=3D{controlbarseekable:"never",controlbarpausable:!0,controlbarstoppable= :!0,loadingmessage:"Loading = ad",playlistclickable:!0,skipoffset:null,tag:null},w,v,C=3D0,F,x=3D{contr= olbarseekable:"never",controlbarpausable:!1,controlbarstoppable:!1},K,n,L= ,J,M,I,G,O,R,Q,T=3D-1,D=3Da.extend(this,new = e.eventdispatcher);h.jwAddEventListener(e.JWPLAYER_RESIZE,u);h.jwAddEvent= Listener(e.JWPLAYER_FULLSCREEN,function(b){t(b);I&&(u(),!b.fullscreen&&a.= isIPad()&&(I.state=3D=3D=3Df.PAUSED?R.show(!0):I.state=3D=3D=3D=0A= f.PLAYING&&R.hide()))});D.init=3Dfunction(){n=3Dj.detachMedia();G=3Dnew = (d.html5.chooseProvider({}))(b.id);G.addGlobalListener(t);G.addEventListe= ner(e.JWPLAYER_MEDIA_META,B);G.addEventListener(e.JWPLAYER_MEDIA_COMPLETE= ,m);G.addEventListener(e.JWPLAYER_MEDIA_BUFFER_FULL,y);G.addEventListener= (e.JWPLAYER_MEDIA_ERROR,l);G.addEventListener(e.JWPLAYER_PLAYER_STATE,r);= G.addEventListener(e.JWPLAYER_MEDIA_TIME,function(a){K&&K.updateSkipTime(= a.position,a.duration)});G.attachMedia();G.mute(b.mute);G.volume(b.volume= );=0A= I=3Dnew = k.model({},G);I.setVolume(b.volume);I.setFullscreen(b.fullscreen);I.setMu= te(b.mute);I.addEventListener("fullscreenchange",A);M=3Db.playlist[b.item= ];L=3Dn.currentTime;j.checkBeforePlay()||0=3D=3D=3DL?(L=3D0,J=3Df.PLAYING= ):J=3Dh.jwGetState()=3D=3D=3Df.IDLE||b.getVideo().checkComplete()?f.IDLE:= f.PLAYING;J=3D=3D=3Df.PLAYING&&n.pause();R=3Dnew = k.display(D);R.forceState(f.BUFFERING);Q=3Ddocument.createElement("div");= Q.id=3DD.id+"_instream_container";a.css.style(Q,{width:"100%",height:"100= %"});Q.appendChild(R.element());O=3Dnew k.controlbar(D,=0A= {fullscreen:b.fullscreen});O.instreamMode(!0);Q.appendChild(O.element());= h.jwGetControls()?(O.show(),R.show()):(O.hide(),R.hide());p.setupInstream= (Q,O,R,I);u();D.jwInstreamSetText(q.loadingmessage)};D.load=3Dfunction(b,= d){if(a.isAndroid(2.3))l({type:e.JWPLAYER_ERROR,message:"Error loading = instream: Cannot play instream on Android = 2.3"});else{z(e.JWPLAYER_PLAYLIST_ITEM,{index:C},!0);var = j=3D10+a.bounds(Q.parentNode).bottom-a.bounds(O.element()).top;c.isArray(= b)&&(d&&(F=3Dd,d=3Dd[C]),v=3Db,b=3Dv[C]);x=3Da.extend(q,=0A= d);w=3Dnew g.item(b);I.setPlaylist([b]);K=3Dnew = k.adskipbutton(h.id,j,x.skipMessage,x.skipText);K.addEventListener(e.JWPL= AYER_AD_SKIPPED,s);K.reset(x.skipoffset||-1);h.jwGetControls()?K.show():K= .hide();j=3DK.element();Q.appendChild(j);I.addEventListener(e.JWPLAYER_ER= ROR,l);R.setAlternateClickHandler(function(a){a=3Da||{};a.hasControls=3D!= !h.jwGetControls();z(e.JWPLAYER_INSTREAM_CLICK,a);I.state=3D=3D=3Df.PAUSE= D?a.hasControls&&D.jwInstreamPlay():D.jwInstreamPause()});a.isMSIE()&&n.p= arentElement.addEventListener("click",=0A= R.clickHandler);p.addEventListener(e.JWPLAYER_AD_SKIPPED,s);G.load(I.play= list[0])}};D.jwInstreamDestroy=3Dfunction(c){if(I){I.removeEventListener(= "fullscreenchange",A);clearTimeout(T);T=3D-1;G.detachMedia();j.attachMedi= a();if(J!=3D=3Df.IDLE){var = d=3Da.extend({},M);d.starttime=3DL;b.getVideo().load(d)}else = b.getVideo().stop();D.resetEventListeners();G.resetEventListeners();I.res= etEventListeners();if(O)try{O.element().parentNode.removeChild(O.element(= ))}catch(g){}R&&(n&&n.parentElement&&n.parentElement.removeEventListener(= "click",=0A= R.clickHandler),R.revertAlternateClickHandler());z(e.JWPLAYER_INSTREAM_DE= STROYED,{reason:c?"complete":"destroyed"},!0);J=3D=3D=3Df.PLAYING&&n.play= ();p.destroyInstream(G.isAudioFile());I=3Dnull}};D.jwInstreamAddEventList= ener=3Dfunction(a,b){D.addEventListener(a,b)};D.jwInstreamRemoveEventList= ener=3Dfunction(a,b){D.removeEventListener(a,b)};D.jwInstreamPlay=3Dfunct= ion(){G.play(!0);b.state=3Df.PLAYING;R.show()};D.jwInstreamPause=3Dfuncti= on(){G.pause(!0);b.state=3Df.PAUSED;h.jwGetControls()&&(R.show(),O.show()= )};D.jwInstreamSeek=3D=0A= function(a){G.seek(a)};D.jwInstreamSetText=3Dfunction(a){O.setText(a)};D.= jwInstreamState=3Dfunction(){return = I.state};D.setControls=3Dfunction(a){a?K.show():K.hide()};D.jwPlay=3Dfunc= tion(){"true"=3D=3D=3Dx.controlbarpausable.toString().toLowerCase()&&D.jw= InstreamPlay()};D.jwPause=3Dfunction(){"true"=3D=3D=3Dx.controlbarpausabl= e.toString().toLowerCase()&&D.jwInstreamPause()};D.jwStop=3Dfunction(){"t= rue"=3D=3D=3Dx.controlbarstoppable.toString().toLowerCase()&&(h.jwInstrea= mDestroy(!1,D),h.jwStop())};D.jwSeek=3Dfunction(a){switch(x.controlbarsee= kable.toLowerCase()){case "always":D.jwInstreamSeek(a);=0A= break;case = "backwards":I.position>a&&D.jwInstreamSeek(a)}};D.jwSeekDrag=3Dfunction(a= ){I.seekDrag(a)};D.jwGetPosition=3Dfunction(){};D.jwGetDuration=3Dfunctio= n(){};D.jwGetWidth=3Dh.jwGetWidth;D.jwGetHeight=3Dh.jwGetHeight;D.jwGetFu= llscreen=3Dh.jwGetFullscreen;D.jwSetFullscreen=3Dh.jwSetFullscreen;D.jwGe= tVolume=3Dfunction(){return = b.volume};D.jwSetVolume=3Dfunction(a){I.setVolume(a);h.jwSetVolume(a)};D.= jwGetMute=3Dfunction(){return = b.mute};D.jwSetMute=3Dfunction(a){I.setMute(a);h.jwSetMute(a)};D.jwGetSta= te=3Dfunction(){return!I?=0A= f.IDLE:I.state};D.jwGetPlaylist=3Dfunction(){return[w]};D.jwGetPlaylistIn= dex=3Dfunction(){return 0};D.jwGetStretching=3Dfunction(){return = b.config.stretching};D.jwAddEventListener=3Dfunction(a,b){D.addEventListe= ner(a,b)};D.jwRemoveEventListener=3Dfunction(a,b){D.removeEventListener(a= ,b)};D.jwSetCurrentQuality=3Dfunction(){};D.jwGetQualityLevels=3Dfunction= (){return[]};D.jwGetControls=3Dfunction(){return = h.jwGetControls()};D.skin=3Dh.skin;D.id=3Dh.id+"_instream";return = D}})(window.jwplayer);=0A= (function(d){var = k=3Dd.utils,a=3Dk.css,c=3Dd.events.state,e=3Dd.html5.logo=3Dfunction(f,g)= {function = h(a){k.exists(a)&&a.stopPropagation&&a.stopPropagation();if(!s||!j.link)b= .jwGetState()=3D=3D=3Dc.IDLE||b.jwGetState()=3D=3D=3Dc.PAUSED?b.jwPlay():= b.jwPause();s&&j.link&&(b.jwPause(),b.jwSetFullscreen(!1),window.open(j.l= ink,j.linktarget))}var = b=3Df,p=3Db.id+"_logo",j,l,r=3De.defaults,s=3D!1;this.resize=3Dfunction()= {};this.element=3Dfunction(){return = l};this.offset=3Dfunction(b){a("#"+p+" = ",{"margin-bottom":b})};this.position=3Dfunction(){return j.position};=0A= this.margin=3Dfunction(){return = parseInt(j.margin,10)};this.hide=3Dfunction(a){if(j.hide||a)s=3D!1,l.styl= e.visibility=3D"hidden",l.style.opacity=3D0};this.show=3Dfunction(){s=3D!= 0;l.style.visibility=3D"visible";l.style.opacity=3D1};var = t=3D"o";b.edition&&(t=3Db.edition(),t=3D"pro"=3D=3D=3Dt?"p":"premium"=3D=3D= =3Dt?"r":"ads"=3D=3D=3Dt?"a":"free"=3D=3D=3Dt?"f":"o");if("o"=3D=3D=3Dt||= "f"=3D=3D=3Dt)r.link=3D"http://www.longtailvideo.com/jwpabout/?a\x3dl\x26= v\x3d"+d.version+"\x26m\x3dh\x26e\x3d"+t;j=3Dk.extend({},r,g);j.hide=3D"t= rue"=3D=3D=3Dj.hide.toString();l=3Ddocument.createElement("img");=0A= l.className=3D"jwlogo";l.id=3Dp;if(j.file){var = r=3D/(\w+)-(\w+)/.exec(j.position),t=3D{},A=3Dj.margin;3=3D=3D=3Dr.length= ?(t[r[1]]=3DA,t[r[2]]=3DA):t.top=3Dt.right=3DA;a("#"+p+" = ",t);l.src=3D(j.prefix?j.prefix:"")+j.file;k.isMobile()?(new = k.touch(l)).addEventListener(k.touchEvents.TAP,h):l.onclick=3Dh}else = l.style.display=3D"none";return = this};e.defaults=3D{prefix:k.repo(),file:"logo.png",linktarget:"_top",mar= gin:8,hide:!1,position:"top-right"};a(".jwlogo",{cursor:"pointer",positio= n:"absolute"})})(jwplayer);=0A= (function(d){var = k=3Dd.html5,a=3Dd.utils,c=3Da.css;k.menu=3Dfunction(d,f,g,h){function = b(a){return!a||!a.src?{}:{background:"url("+a.src+") no-repeat = left","background-size":a.width+"px "+a.height+"px"}}function = p(a,b){return function(){y(a);r&&r(b)}}function j(a,b){var = c=3Ddocument.createElement("div");a&&(c.className=3Da);b&&b.appendChild(c= );return c}function = l(a){return(a=3Dg.getSkinElement("tooltip",a))?a:{width:0,height:0,src:vo= id 0}}var r=3Dh,s=3Dnew = k.overlay(f+"_overlay",g);h=3Da.extend({fontcase:void = 0,fontcolor:"#cccccc",=0A= fontsize:11,fontweight:void = 0,activecolor:"#ffffff",overcolor:"#ffffff"},g.getComponentSettings("tool= tip"));var t,A=3D[];this.element=3Dfunction(){return = s.element()};this.addOption=3Dfunction(b,c){var = d=3Dj("jwoption",t);d.id=3Df+"_option_"+c;d.innerHTML=3Db;a.isMobile()?(n= ew = a.touch(d)).addEventListener(a.touchEvents.TAP,p(A.length,c)):d.addEventL= istener("click",p(A.length,c));A.push(d)};this.clearOptions=3Dfunction(){= for(;0<A.length;)t.removeChild(A.pop())};var = y=3Dthis.setActive=3Dfunction(a){for(var b=3D0;b<A.length;b++){var c=3D=0A= A[b];c.className=3Dc.className.replace(" = active","");b=3D=3D=3Da&&(c.className+=3D" = active")}};this.show=3Ds.show;this.hide=3Ds.hide;this.offsetX=3Ds.offsetX= ;this.positionX=3Ds.positionX;this.constrainX=3Ds.constrainX;t=3Dj("jwmen= u");t.id=3Df;var m=3Dl("menuTop"+d);d=3Dl("menuOption");var = B=3Dl("menuOptionOver"),z=3Dl("menuOptionActive");if(m&&m.image){var = u=3Dnew = Image;u.src=3Dm.src;u.width=3Dm.width;u.height=3Dm.height;t.appendChild(u= )}d&&(m=3D"#"+f+" = .jwoption",c(m,a.extend(b(d),{height:d.height,color:h.fontcolor,"padding-= left":d.width,=0A= font:h.fontweight+" "+h.fontsize+"px = Arial,Helvetica,sans-serif","line-height":d.height,"text-transform":"uppe= r"=3D=3D=3Dh.fontcase?"uppercase":void = 0})),c(m+":hover",a.extend(b(B),{color:h.overcolor})),c(m+".active",a.ext= end(b(z),{color:h.activecolor})));s.setContents(t)};c("."+"jwmenu = jwoption".replace(/ /g," = ."),{cursor:"pointer","white-space":"nowrap",position:"relative"})})(jwpl= ayer);=0A= (function(d){var = k=3Dd.html5,a=3Dd.utils,c=3Dd.events;k.model=3Dfunction(e,f){function = g(a){var b=3Ds[a.type];if(b&&b.length){for(var = c=3D!1,d=3D0;d<b.length;d++){var = e=3Db[d].split("-\x3e"),f=3De[0],e=3De[1]||f;h[e]!=3D=3Da[f]&&(h[e]=3Da[f= ],c=3D!0)}c&&h.sendEvent(a.type,a)}else h.sendEvent(a.type,a)}var = h=3Dthis,b,p=3Da.getCookies(),j=3D{controlbar:{},display:{}},l=3Da.noop,r= =3D{autostart:!1,controls:!0,fullscreen:!1,height:320,mobilecontrols:!1,m= ute:!1,playlist:[],playlistposition:"none",playlistsize:180,playlistlayou= t:"extended",repeat:!1,=0A= stretching:a.stretching.UNIFORM,width:480,volume:90},s=3D{};s[c.JWPLAYER_= MEDIA_MUTE]=3D["mute"];s[c.JWPLAYER_MEDIA_VOLUME]=3D["volume"];s[c.JWPLAY= ER_PLAYER_STATE]=3D["newstate-\x3estate"];s[c.JWPLAYER_MEDIA_BUFFER]=3D["= bufferPercent-\x3ebuffer"];s[c.JWPLAYER_MEDIA_TIME]=3D["position","durati= on"];h.setVideoProvider=3Dfunction(a){if(b){b.removeGlobalListener(g);var= = c=3Db.getContainer();c&&(b.remove(),a.setContainer(c))}b=3Da;b.volume(h.v= olume);b.mute(h.mute);b.addGlobalListener(g)};h.destroy=3Dfunction(){b&&(= b.removeGlobalListener(g),=0A= b.destroy())};h.getVideo=3Dfunction(){return = b};h.seekDrag=3Dfunction(a){b.seekDrag(a)};h.setFullscreen=3Dfunction(a){= a=3D!!a;a!=3D=3Dh.fullscreen&&(h.fullscreen=3Da,h.sendEvent(c.JWPLAYER_FU= LLSCREEN,{fullscreen:a}))};h.setPlaylist=3Dfunction(a){h.playlist=3Dd.pla= ylist.filterPlaylist(a,h.androidhls);0=3D=3D=3Dh.playlist.length?h.sendEv= ent(c.JWPLAYER_ERROR,{message:"Error loading playlist: No playable = sources = found"}):(h.sendEvent(c.JWPLAYER_PLAYLIST_LOADED,{playlist:d(h.id).getPla= ylist()}),h.item=3D-1,h.setItem(0))};h.setItem=3D=0A= function(a){var = b=3D!1;a=3D=3D=3Dh.playlist.length||-1>a?(a=3D0,b=3D!0):a=3D-1=3D=3D=3Da|= |a>h.playlist.length?h.playlist.length-1:a;if(b||a!=3D=3Dh.item)h.item=3D= a,h.sendEvent(c.JWPLAYER_PLAYLIST_ITEM,{index:h.item}),b=3Dh.playlist[a],= a=3Dk.chooseProvider(b&&b.sources&&b.sources[0]),l instanceof = a||(l=3Df||new = a(h.id),h.setVideoProvider(l)),l.init&&l.init(b)};h.setVolume=3Dfunction(= d){h.mute&&0<d&&h.setMute(!1);d=3DMath.round(d);h.mute||a.saveCookie("vol= ume",d);g({type:c.JWPLAYER_MEDIA_VOLUME,volume:d});b.volume(d)};h.setMute= =3Dfunction(d){a.exists(d)||=0A= (d=3D!h.mute);a.saveCookie("mute",d);g({type:c.JWPLAYER_MEDIA_MUTE,mute:d= });b.mute(d)};h.componentConfig=3Dfunction(a){return = j[a]};a.extend(h,new c.eventdispatcher);var = t=3Dh,A=3Da.extend({},r,p,e);a.foreach(A,function(b,c){A[b]=3Da.serialize= (c)});t.config=3DA;a.extend(h,{id:e.id,state:c.state.IDLE,duration:-1,pos= ition:0,buffer:0},h.config);h.playlist=3D[];h.setItem(0)}})(jwplayer);=0A= (function(d){var = k=3Dd.utils,a=3Dk.css,c=3Dk.transitionStyle,e=3D"top",f=3D"bottom",g=3D"r= ight",h=3D"left",b=3D{fontcase:void = 0,fontcolor:"#ffffff",fontsize:12,fontweight:void = 0,activecolor:"#ffffff",overcolor:"#ffffff"};d.html5.overlay=3Dfunction(c= ,d,l){function r(a){return"#"+B+(a?" ."+a:"")}function s(a,b){var = c=3Ddocument.createElement("div");a&&(c.className=3Da);b&&b.appendChild(c= );return c}function t(b,c){var = d;d=3D(d=3Dz.getSkinElement("tooltip",b))?d:{width:0,height:0,src:"",imag= e:void 0,ready:!1};var e=3Ds(c,q);a.style(e,=0A= A(d));return[e,d]}function A(a){return{background:"url("+a.src+") = center","background-size":a.width+"px "+a.height+"px"}}function = y(b,c){c||(c=3D"");var d=3Dt("cap"+b+c,"jwborder = jw"+b+(c?c:"")),j=3Dd[0],d=3Dd[1],m=3Dk.extend(A(d),{width:b=3D=3D=3Dh||c= =3D=3D=3Dh||b=3D=3D=3Dg||c=3D=3D=3Dg?d.width:void = 0,height:b=3D=3D=3De||c=3D=3D=3De||b=3D=3D=3Df||c=3D=3D=3Df?d.height:void= = 0});m[b]=3Db=3D=3D=3Df&&!u||b=3D=3D=3De&&u?v.height:0;c&&(m[c]=3D0);a.sty= le(j,m);j=3D{};m=3D{};d=3D{left:d.width,right:d.width,top:(u?v.height:0)+= d.height,bottom:(u?0:v.height)+d.height};c&&(j[c]=3Dd[c],j[b]=3D=0A= 0,m[b]=3Dd[b],m[c]=3D0,a(r("jw"+b),j),a(r("jw"+c),m),F[b]=3Dd[b],F[c]=3Dd= [c])}var = m=3Dthis,B=3Dc,z=3Dd,u=3Dl,q,w,v,C;c=3Dk.extend({},b,z.getComponentSettin= gs("tooltip"));var F=3D{};m.element=3Dfunction(){return = q};m.setContents=3Dfunction(a){k.empty(w);w.appendChild(a)};m.positionX=3D= function(b){a.style(q,{left:Math.round(b)})};m.constrainX=3Dfunction(b,c)= {if(m.showing&&0!=3D=3Db.width&&m.offsetX(0)){c&&a.unblock();var = d=3Dk.bounds(q);0!=3D=3Dd.width&&(d.right>b.right?m.offsetX(b.right-d.rig= ht):d.left<b.left&&m.offsetX(b.left-d.left))}};=0A= m.offsetX=3Dfunction(b){b=3DMath.round(b);var = c=3Dq.clientWidth;0!=3D=3Dc&&(a.style(q,{"margin-left":Math.round(-c/2)+b= }),a.style(C,{"margin-left":Math.round(-v.width/2)-b}));return = c};m.borderWidth=3Dfunction(){return = F.left};m.show=3Dfunction(){m.showing=3D!0;a.style(q,{opacity:1,visibilit= y:"visible"})};m.hide=3Dfunction(){m.showing=3D!1;a.style(q,{opacity:0,vi= sibility:"hidden"})};q=3Ds(".jwoverlay".replace(".",""));q.id=3DB;d=3Dt("= arrow","jwarrow");C=3Dd[0];v=3Dd[1];a.style(C,{position:"absolute",bottom= :u?void 0:0,top:u?0:=0A= void = 0,width:v.width,height:v.height,left:"50%"});y(e,h);y(f,h);y(e,g);y(f,g);= y(h);y(g);y(e);y(f);d=3Dt("background","jwback");a.style(d[0],{left:F.lef= t,right:F.right,top:F.top,bottom:F.bottom});w=3Ds("jwcontents",q);a(r("jw= contents")+" *",{color:c.fontcolor,font:c.fontweight+" "+c.fontsize+"px = Arial,Helvetica,sans-serif","text-transform":"upper"=3D=3D=3Dc.fontcase?"= uppercase":void = 0});u&&k.transform(r("jwarrow"),"rotate(180deg)");a.style(q,{padding:F.to= p+1+"px "+F.right+"px "+(F.bottom+1)+"px "+F.left+"px"});=0A= m.showing=3D!1};a(".jwoverlay",{position:"absolute",visibility:"hidden",o= pacity:0});a(".jwoverlay = .jwcontents",{position:"relative","z-index":1});a(".jwoverlay = .jwborder",{position:"absolute","background-size":"100% = 100%"},!0);a(".jwoverlay = .jwback",{position:"absolute","background-size":"100% = 100%"});c(".jwoverlay","opacity .25s, visibility .25s")})(jwplayer);=0A= (function(d){var k=3Dd.html5,a=3Dd.utils;k.player=3Dfunction(c){function = e(){for(var = a=3Dp.playlist,b=3D[],c=3D0;c<a.length;c++)b.push(f(a[c]));return = b}function f(b){var = c=3D{description:b.description,file:b.file,image:b.image,mediaid:b.mediai= d,title:b.title};a.foreach(b,function(a,b){c[a]=3Db});c.sources=3D[];c.tr= acks=3D[];0<b.sources.length&&a.foreach(b.sources,function(a,b){c.sources= .push({file:b.file,type:b.type?b.type:void = 0,label:b.label,"default":b["default"]?!0:!1})});0<b.tracks.length&&a.for= each(b.tracks,function(a,=0A= b){c.tracks.push({file:b.file,kind:b.kind?b.kind:void = 0,label:b.label,"default":b["default"]?!0:!1})});!b.file&&0<b.sources.len= gth&&(c.file=3Db.sources[0].file);return c}function = g(){b.jwPlay=3Dl.play;b.jwPause=3Dl.pause;b.jwStop=3Dl.stop;b.jwSeek=3Dl.= seek;b.jwSetVolume=3Dl.setVolume;b.jwSetMute=3Dl.setMute;b.jwLoad=3Dl.loa= d;b.jwPlaylistNext=3Dl.next;b.jwPlaylistPrev=3Dl.prev;b.jwPlaylistItem=3D= l.item;b.jwSetFullscreen=3Dl.setFullscreen;b.jwResize=3Dj.resize;b.jwSeek= Drag=3Dp.seekDrag;b.jwGetQualityLevels=3Dl.getQualityLevels;=0A= b.jwGetCurrentQuality=3Dl.getCurrentQuality;b.jwSetCurrentQuality=3Dl.set= CurrentQuality;b.jwGetAudioTracks=3Dl.getAudioTracks;b.jwGetCurrentAudioT= rack=3Dl.getCurrentAudioTrack;b.jwSetCurrentAudioTrack=3Dl.setCurrentAudi= oTrack;b.jwGetCaptionsList=3Dl.getCaptionsList;b.jwGetCurrentCaptions=3Dl= .getCurrentCaptions;b.jwSetCurrentCaptions=3Dl.setCurrentCaptions;b.jwGet= SafeRegion=3Dj.getSafeRegion;b.jwForceState=3Dj.forceState;b.jwReleaseSta= te=3Dj.releaseState;b.jwGetPlaylistIndex=3Dh("item");b.jwGetPosition=3Dh(= "position");b.jwGetDuration=3D=0A= h("duration");b.jwGetBuffer=3Dh("buffer");b.jwGetWidth=3Dh("width");b.jwG= etHeight=3Dh("height");b.jwGetFullscreen=3Dh("fullscreen");b.jwGetVolume=3D= h("volume");b.jwGetMute=3Dh("mute");b.jwGetState=3Dh("state");b.jwGetStre= tching=3Dh("stretching");b.jwGetPlaylist=3De;b.jwGetControls=3Dh("control= s");b.jwDetachMedia=3Dl.detachMedia;b.jwAttachMedia=3Dl.attachMedia;b.jwP= layAd=3Dfunction(a){var = c=3Dd(b.id).plugins;c.vast&&c.vast.jwPlayAd(a)};b.jwPauseAd=3Dfunction(){= var = a=3Dd(b.id).plugins;a.googima&&a.googima.jwPauseAd()};b.jwDestroyGoogima=3D=0A= function(){var = a=3Dd(b.id).plugins;a.googima&&a.googima.jwDestroyGoogima()};b.jwInitInst= ream=3Dfunction(){b.jwInstreamDestroy();s=3Dnew = k.instream(b,p,j,l);s.init()};b.jwLoadItemInstream=3Dfunction(a,b){if(!s)= throw"Instream player = undefined";s.load(a,b)};b.jwLoadArrayInstream=3Dfunction(a,b){if(!s)throw= "Instream player = undefined";s.load(a,b)};b.jwSetControls=3Dfunction(a){j.setControls(a);s&= &s.setControls(a)};b.jwInstreamPlay=3Dfunction(){s&&s.jwInstreamPlay()};b= .jwInstreamPause=3Dfunction(){s&&s.jwInstreamPause()};=0A= b.jwInstreamState=3Dfunction(){return = s?s.jwInstreamState():""};b.jwInstreamDestroy=3Dfunction(a,b){if(b=3Db||s= )b.jwInstreamDestroy(a||!1),b=3D=3D=3Ds&&(s=3Dvoid = 0)};b.jwInstreamAddEventListener=3Dfunction(a,b){s&&s.jwInstreamAddEventL= istener(a,b)};b.jwInstreamRemoveEventListener=3Dfunction(a,b){s&&s.jwInst= reamRemoveEventListener(a,b)};b.jwPlayerDestroy=3Dfunction(){j&&j.destroy= ();p&&p.destroy();r&&r.resetEventListeners()};b.jwInstreamSetText=3Dfunct= ion(a){s&&s.jwInstreamSetText(a)};b.jwIsBeforePlay=3Dfunction(){return = l.checkBeforePlay()};=0A= b.jwIsBeforeComplete=3Dfunction(){return = p.getVideo().checkComplete()};b.jwSetCues=3Dj.addCues;b.jwAddEventListene= r=3Dl.addEventListener;b.jwRemoveEventListener=3Dl.removeEventListener;b.= jwDockAddButton=3Dj.addButton;b.jwDockRemoveButton=3Dj.removeButton}funct= ion h(a){return function(){return p[a]}}var b=3Dthis,p,j,l,r,s;p=3Dnew = k.model(c);b.id=3Dp.id;b._model=3Dp;a.css.block(b.id);j=3Dnew = k.view(b,p);l=3Dnew k.controller(p,j);g();b.initializeAPI=3Dg;r=3Dnew = k.setup(p,j);r.addEventListener(d.events.JWPLAYER_READY,function(c){l.pla= yerReady(c);=0A= a.css.unblock(b.id)});r.addEventListener(d.events.JWPLAYER_ERROR,function= (c){a.css.unblock(b.id);d(b.id).dispatchEvent(d.events.JWPLAYER_SETUP_ERR= OR,c)});r.start()}})(window.jwplayer);=0A= (function(d){var = k=3D{size:180,backgroundcolor:"#333333",fontcolor:"#999999",overcolor:"#C= CCCCC",activecolor:"#CCCCCC",titlecolor:"#CCCCCC",titleovercolor:"#FFFFFF= ",titleactivecolor:"#FFFFFF",fontweight:"normal",titleweight:"normal",fon= tsize:11,titlesize:13},a=3Dd.html5,c=3Dd.events,e=3Dd.utils,f=3De.css,g=3D= e.isMobile();a.playlistcomponent=3Dfunction(d,b){function = p(a){return"#"+A.id+(a?" ."+a:"")}function j(a,b){var = c=3Ddocument.createElement(a);b&&(c.className=3Db);return c}function = l(a){return function(){u=3Da;r.jwPlaylistItem(a);=0A= r.jwPlay(!0)}}var = r=3Dd,s=3Dr.skin,t=3De.extend({},k,r.skin.getComponentSettings("playlist"= ),b),A,y,m,B,z=3D-1,u,q,w=3D76,v=3D{background:void 0,divider:void = 0,item:void 0,itemOver:void 0,itemImage:void 0,itemActive:void = 0},C,F=3Dthis;F.element=3Dfunction(){return = A};F.redraw=3Dfunction(){q&&q.redraw()};F.show=3Dfunction(){e.show(A)};F.= hide=3Dfunction(){e.hide(A)};A=3Dj("div","jwplaylist");A.id=3Dr.id+"_jwpl= ayer_playlistcomponent";C=3D"basic"=3D=3D=3Dr._model.playlistlayout;y=3Dj= ("div","jwlistcontainer");A.appendChild(y);e.foreach(v,=0A= function(a){v[a]=3Ds.getSkinElement("playlist",a)});C&&(w=3D32);v.divider= &&(w+=3Dv.divider.height);var = x=3D0,K=3D0,n=3D0;e.clearCss(p());f(p(),{"background-color":t.backgroundc= olor});f(p("jwlist"),{"background-image":v.background?" = url("+v.background.src+")":""});f(p("jwlist = *"),{color:t.fontcolor,font:t.fontweight+" "+t.fontsize+"px Arial, = Helvetica, sans-serif"});v.itemImage?(x=3D(w-v.itemImage.height)/2+"px = ",K=3Dv.itemImage.width,n=3Dv.itemImage.height):(K=3D4*w/3,n=3Dw);v.divid= er&&f(p("jwplaylistdivider"),{"background-image":"url("+=0A= v.divider.src+")","background-size":"100% = "+v.divider.height+"px",width:"100%",height:v.divider.height});f(p("jwpla= ylistimg"),{height:n,width:K,margin:x?x+"0 "+x+x:"0 5px 0 = 0"});f(p("jwlist = li"),{"background-image":v.item?"url("+v.item.src+")":"",height:w,overflo= w:"hidden","background-size":"100% = "+w+"px",cursor:"pointer"});x=3D{overflow:"hidden"};""!=3D=3Dt.activecolo= r&&(x.color=3Dt.activecolor);v.itemActive&&(x["background-image"]=3D"url(= "+v.itemActive.src+")");f(p("jwlist li.active"),x);f(p("jwlist li.active = .jwtitle"),=0A= {color:t.titleactivecolor});f(p("jwlist li.active = .jwdescription"),{color:t.activecolor});x=3D{overflow:"hidden"};""!=3D=3D= t.overcolor&&(x.color=3Dt.overcolor);v.itemOver&&(x["background-image"]=3D= "url("+v.itemOver.src+")");g||(f(p("jwlist li:hover"),x),f(p("jwlist = li:hover .jwtitle"),{color:t.titleovercolor}),f(p("jwlist li:hover = .jwdescription"),{color:t.overcolor}));f(p("jwtextwrapper"),{height:w,pos= ition:"relative"});f(p("jwtitle"),{overflow:"hidden",display:"inline-bloc= k",height:C?w:20,color:t.titlecolor,=0A= "font-size":t.titlesize,"font-weight":t.titleweight,"margin-top":C?"0 = 10px":10,"margin-left":10,"margin-right":10,"line-height":C?w:20});f(p("j= wdescription"),{display:"block","font-size":t.fontsize,"line-height":18,"= margin-left":10,"margin-right":10,overflow:"hidden",height:36,position:"r= elative"});r.jwAddEventListener(c.JWPLAYER_PLAYLIST_LOADED,function(){y.i= nnerHTML=3D"";for(var = b=3Dr.jwGetPlaylist(),c=3D[],d=3D0;d<b.length;d++)b[d]["ova.hidden"]||c.p= ush(b[d]);if(m=3Dc){b=3Dj("ul","jwlist");b.id=3DA.id+"_ul"+=0A= Math.round(1E7*Math.random());B=3Db;for(b=3D0;b<m.length;b++){var = h=3Db,c=3Dm[h],d=3Dj("li","jwitem"),k=3Dvoid = 0;d.id=3DB.id+"_item_"+h;0<h?(k=3Dj("div","jwplaylistdivider"),d.appendCh= ild(k)):(h=3Dv.divider?v.divider.height:0,d.style.height=3Dw-h+"px",d.sty= le["background-size"]=3D"100% "+(w-h)+"px");h=3Dj("div","jwplaylistimg = jwfill");k=3Dvoid = 0;c["playlist.image"]&&v.itemImage?k=3Dc["playlist.image"]:c.image&&v.ite= mImage?k=3Dc.image:v.itemImage&&(k=3Dv.itemImage.src);k&&!C&&(f("#"+d.id+= " .jwplaylistimg",{"background-image":k}),=0A= d.appendChild(h));h=3Dj("div","jwtextwrapper");k=3Dj("span","jwtitle");k.= innerHTML=3Dc&&c.title?c.title:"";h.appendChild(k);c.description&&!C&&(k=3D= j("span","jwdescription"),k.innerHTML=3Dc.description,h.appendChild(k));d= .appendChild(h);c=3Dd;g?(new = e.touch(c)).addEventListener(e.touchEvents.TAP,l(b)):c.onclick=3Dl(b);B.a= ppendChild(c)}z=3Dr.jwGetPlaylistIndex();y.appendChild(B);q=3Dnew = a.playlistslider(A.id+"_slider",r.skin,A,B)}});r.jwAddEventListener(c.JWP= LAYER_PLAYLIST_ITEM,function(a){0<=3Dz&&(document.getElementById(B.id+=0A= "_item_"+z).className=3D"jwitem",z=3Da.index);document.getElementById(B.i= d+"_item_"+a.index).className=3D"jwitem = active";a=3Dr.jwGetPlaylistIndex();a!=3D=3Du&&(u=3D-1,q&&q.visible()&&q.t= humbPosition(a/(r.jwGetPlaylist().length-1)))});r.jwAddEventListener(c.JW= PLAYER_RESIZE,function(){F.redraw()});return = this};f(".jwplaylist",{position:"absolute",width:"100%",height:"100%"});e= .dragStyle(".jwplaylist","none");f(".jwplaylist = .jwplaylistimg",{position:"relative",width:"100%","float":"left",margin:"= 0 5px 0 0",background:"#000",=0A= overflow:"hidden"});f(".jwplaylist = .jwlist",{position:"absolute",width:"100%","list-style":"none",margin:0,p= adding:0,overflow:"hidden"});f(".jwplaylist = .jwlistcontainer",{position:"absolute",overflow:"hidden",width:"100%",hei= ght:"100%"});f(".jwplaylist .jwlist li",{width:"100%"});f(".jwplaylist = .jwtextwrapper",{overflow:"hidden"});f(".jwplaylist = .jwplaylistdivider",{position:"absolute"});g&&e.transitionStyle(".jwplayl= ist .jwlist","top .35s")})(jwplayer);=0A= (function(d){function k(){var = a=3D[],b;for(b=3D0;b<arguments.length;b++)a.push(".jwplaylist = ."+arguments[b]);return a.join(",")}var = a=3Djwplayer.utils,c=3Da.touchEvents,e=3Da.css,f=3Ddocument,g=3Dwindow;d.= playlistslider=3Dfunction(d,b,k,j){function l(a){return"#"+w.id+(a?" = ."+a:"")}function r(a,b,c,d){var = g=3Df.createElement("div");a&&(g.className=3Da,b&&e(l(a),{"background-ima= ge":b.src?b.src:void = 0,"background-repeat":d?"repeat-y":"no-repeat",height:d?void = 0:b.height}));c&&c.appendChild(g);return g}function s(a){return(a=3D=0A= u.getSkinElement("playlist",a))?a:{width:0,height:0,src:void 0}}function = t(a){if(L)return = a=3Da?a:g.event,aa(x-(a.detail?-1*a.detail:a.wheelDelta/40)/10),a.stopPro= pagation&&a.stopPropagation(),a.preventDefault?a.preventDefault():a.retur= nValue=3D!1,a.cancelBubble=3D!0,a.cancel=3D!0,!1}function = A(a){0=3D=3Da.button&&(F=3D!0);f.onselectstart=3Dfunction(){return!1};g.a= ddEventListener("mousemove",m,!1);g.addEventListener("mouseup",z,!1)}func= tion y(a){aa(x-2*a.deltaY/q.clientHeight)}function = m(b){if(F||"click"=3D=3Db.type){var c=3D=0A= a.bounds(v),d=3DC.clientHeight/2;aa((b.pageY-c.top-d)/(c.height-d-d))}}fu= nction B(a){return = function(b){0<b.button||(aa(x+0.05*a),K=3DsetTimeout(function(){n=3DsetIn= terval(function(){aa(x+0.05*a)},50)},500))}}function = z(){F=3D!1;g.removeEventListener("mousemove",m);g.removeEventListener("mo= useup",z);f.onselectstart=3Dvoid 0;clearTimeout(K);clearInterval(n)}var = u=3Db,q=3Dj,w,v,C,F,x=3D0,K,n;b=3Da.isMobile();var = L=3D!0,J,M,I,G,O,R,Q,T,D;this.element=3Dfunction(){return = w};this.visible=3Dfunction(){return L};var U=3Dthis.redraw=3D=0A= function(){clearTimeout(D);D=3DsetTimeout(function(){if(q&&q.clientHeight= ){var = a=3Dq.parentNode.clientHeight/q.clientHeight;0>a&&(a=3D0);1<a?L=3D!1:(L=3D= !0,e(l("jwthumb"),{height:Math.max(v.clientHeight*a,O.height+R.height)}))= ;e(l(),{visibility:L?"visible":"hidden"});q&&(q.style.width=3DL?q.parentE= lement.clientWidth-I.width+"px":"")}else = D=3DsetTimeout(U,10)},0)},aa=3Dthis.thumbPosition=3Dfunction(a){isNaN(a)&= &(a=3D0);x=3DMath.max(0,Math.min(1,a));e(l("jwthumb"),{top:Q+(v.clientHei= ght-C.clientHeight)*x});j&&(j.style.top=3D=0A= Math.min(0,w.clientHeight-j.scrollHeight)*x+"px")};w=3Dr("jwslider",null,= k);w.id=3Dd;d=3Dnew = a.touch(q);b?d.addEventListener(c.DRAG,y):(w.addEventListener("mousedown"= ,A,!1),w.addEventListener("click",m,!1));J=3Ds("sliderCapTop");M=3Ds("sli= derCapBottom");I=3Ds("sliderRail");d=3Ds("sliderRailCapTop");k=3Ds("slide= rRailCapBottom");G=3Ds("sliderThumb");O=3Ds("sliderThumbCapTop");R=3Ds("s= liderThumbCapBottom");Q=3DJ.height;T=3DM.height;e(l(),{width:I.width});e(= l("jwrail"),{top:Q,bottom:T});e(l("jwthumb"),{top:Q});J=3Dr("jwslidertop"= ,=0A= J,w);M=3Dr("jwsliderbottom",M,w);v=3Dr("jwrail",null,w);C=3Dr("jwthumb",n= ull,w);b||(J.addEventListener("mousedown",B(-1),!1),M.addEventListener("m= ousedown",B(1),!1));r("jwrailtop",d,v);r("jwrailback",I,v,!0);r("jwrailbo= ttom",k,v);e(l("jwrailback"),{top:d.height,bottom:k.height});r("jwthumbto= p",O,C);r("jwthumbback",G,C,!0);r("jwthumbbottom",R,C);e(l("jwthumbback")= ,{top:O.height,bottom:R.height});U();q&&!b&&(q.addEventListener("mousewhe= el",t,!1),q.addEventListener("DOMMouseScroll",t,!1));return = this};e(k("jwslider"),=0A= {position:"absolute",height:"100%",visibility:"hidden",right:0,top:0,curs= or:"pointer","z-index":1,overflow:"hidden"});e(k("jwslider")+" = *",{position:"absolute",width:"100%","background-position":"center","back= ground-size":"100% = 100%",overflow:"hidden"});e(k("jwslidertop","jwrailtop","jwthumbtop"),{to= p:0});e(k("jwsliderbottom","jwrailbottom","jwthumbbottom"),{bottom:0})})(= jwplayer.html5);=0A= (function(d){var = k=3Djwplayer.utils,a=3Dk.css,c=3Ddocument,e=3D"none";d.rightclick=3Dfunct= ion(a,g){function h(a){var = b=3Dc.createElement("div");b.className=3Da.replace(".","");return = b}function b(){l||(r.style.display=3De)}var = p,j=3Dk.extend({aboutlink:"http://www.longtailvideo.com/jwpabout/?a\x3dr\= x26v\x3d"+d.version+"\x26m\x3dh\x26e\x3do",abouttext:"About JW Player = "+d.version+"..."},g),l=3D!1,r,s;this.element=3Dfunction(){return = r};this.destroy=3Dfunction(){c.removeEventListener("mousedown",b,!1)};p=3D= c.getElementById(a.id);=0A= r=3Dh(".jwclick");r.id=3Da.id+"_menu";r.style.display=3De;p.oncontextmenu= =3Dfunction(a){var = b,c;l||(a=3Da||window.event,b=3Da.target||a.srcElement,c=3Dk.bounds(p),b=3D= k.bounds(b),r.style.display=3De,r.style.left=3D(a.offsetX?a.offsetX:a.lay= erX)+b.left-c.left+"px",r.style.top=3D(a.offsetY?a.offsetY:a.layerY)+b.to= p-c.top+"px",r.style.display=3D"block",a.preventDefault())};r.onmouseover= =3Dfunction(){l=3D!0};r.onmouseout=3Dfunction(){l=3D!1};c.addEventListene= r("mousedown",b,!1);s=3Dh(".jwclick_item");s.innerHTML=3Dj.abouttext;s.on= click=3D=0A= function(){window.top.location=3Dj.aboutlink};r.appendChild(s);p.appendCh= ild(r)};a(".jwclick",{"background-color":"#FFF","-webkit-border-radius":5= ,"-moz-border-radius":5,"border-radius":5,height:"auto",border:"1px = solid #bcbcbc","font-family":"'MS Sans Serif', 'Geneva', = sans-serif","font-size":10,width:320,"-webkit-box-shadow":"5px 5px 7px = rgba(0,0,0,.10), 0px 1px 0px rgba(255,255,255,.3) = inset","-moz-box-shadow":"5px 5px 7px rgba(0,0,0,.10), 0px 1px 0px = rgba(255,255,255,.3) inset","box-shadow":"5px 5px 7px rgba(0,0,0,.10), = 0px 1px 0px rgba(255,255,255,.3) inset",=0A= position:"absolute","z-index":999},!0);a(".jwclick div",{padding:"8px = 21px",margin:"0px","background-color":"#FFF",border:"none","font-family":= "'MS Sans Serif', 'Geneva', = sans-serif","font-size":10,color:"inherit"},!0);a(".jwclick_item",{paddin= g:"8px = 21px","text-align":"left",cursor:"pointer"},!0);a(".jwclick_item:hover",{= "background-color":"#595959",color:"#FFF"},!0);a(".jwclick_item = a",{"text-decoration":e,color:"#000"},!0);a(".jwclick = hr",{width:"100%",padding:0,margin:0,border:"1px #e9e9e9 solid"},=0A= !0)})(jwplayer.html5);=0A= (function(d){var = k=3Dd.html5,a=3Dd.utils,c=3Dd.events,e=3D2,f=3D4;k.setup=3Dfunction(g,h){= function b(){for(var a=3D0;a<z.length;a++){var = c=3Dz[a],d;a:{if(d=3Dc.depends){d=3Dd.toString().split(",");for(var = e=3D0;e<d.length;e++)if(!t[d[e]]){d=3D!1;break = a}}d=3D!0}if(d){z.splice(a,1);try{c.method(),b()}catch(f){r(f.message)}re= turn}}0<z.length&&!m&&setTimeout(b,500)}function p(){t[e]=3D!0}function = j(a){r("Error loading skin: "+a)}function = l(){B&&(B.onload=3Dnull,B=3DB.onerror=3Dnull);clearTimeout(u);t[f]=3D!0}f= unction r(a){m=3D!0;y.sendEvent(c.JWPLAYER_ERROR,=0A= {message:a});s.setupError(a)}var s=3Dh,t=3D{},A,y=3Dnew = c.eventdispatcher,m=3D!1,B,z=3D[{name:1,method:function(){g.edition&&"inv= alid"=3D=3D=3Dg.edition()?r("Error setting up player: Invalid license = key"):t[1]=3D!0},depends:!1},{name:e,method:function(){A=3Dnew = k.skin;A.load(g.config.skin,p,j)},depends:1},{name:3,method:function(){va= r b=3Da.typeOf(g.config.playlist);"array"=3D=3D=3Db?(b=3Dnew = d.playlist(g.config.playlist),g.setPlaylist(b),0=3D=3D=3Dg.playlist.lengt= h||0=3D=3D=3Dg.playlist[0].sources.length?r("Error loading playlist: No = playable sources found"):=0A= t[3]=3D!0):r("Playlist type not supported: = "+b)},depends:1},{name:f,method:function(){var = a=3Dg.playlist[g.item].image;a&&!g.config.autostart?(B=3Dnew = Image,B.onload=3Dl,B.onerror=3Dl,B.src=3Da,clearTimeout(u),u=3DsetTimeout= (l,500)):l()},depends:3},{name:5,method:function(){s.setup(A);t[5]=3D!0},= depends:f+","+e},{name:6,method:function(){t[6]=3D!0},depends:"5,3"},{nam= e:7,method:function(){y.sendEvent(c.JWPLAYER_READY);t[7]=3D!0},depends:6}= ],u=3D-1;a.extend(this,y);this.start=3Db}})(jwplayer);=0A= (function(d){d.skin=3Dfunction(){var = k=3D{},a=3D!1;this.load=3Dfunction(c,e,f){new = d.skinloader(c,function(c){a=3D!0;k=3Dc;"function"=3D=3Dtypeof = e&&e()},function(a){"function"=3D=3Dtypeof = f&&f(a)})};this.getSkinElement=3Dfunction(c,d){c=3Dc.toLowerCase();d=3Dd.= toLowerCase();if(a)try{return = k[c].elements[d]}catch(f){jwplayer.utils.log("No such skin component / = element: ",[c,d])}return = null};this.getComponentSettings=3Dfunction(c){c=3Dc.toLowerCase();return = a&&k&&k[c]?k[c].settings:null};this.getComponentLayout=3Dfunction(c){c=3D= c.toLowerCase();=0A= if(a){var d=3Dk[c].layout;if(d&&(d.left||d.right||d.center))return = k[c].layout}return null}}})(jwplayer.html5);=0A= (function(d){var k=3Djwplayer.utils,a=3Dk.foreach,c=3D"Skin formatting = error";d.skinloader=3Dfunction(e,f,g){function = h(a){s=3Da;k.ajax(k.getAbsolutePath(B),function(a){try{k.exists(a.respons= eXML)&&p(a.responseXML)}catch(b){A(c)}},function(a){A(a)})}function = b(a,b){return a?a.getElementsByTagName(b):null}function p(a){var = c=3Db(a,"skin")[0];a=3Db(c,"component");var = d=3Dc.getAttribute("target"),c=3DparseFloat(c.getAttribute("pixelratio"))= ;0<c&&(q=3Dc);k.versionCheck(d)||A("Incompatible player = version");if(0=3D=3D=3Da.length)t(s);=0A= else for(d=3D0;d<a.length;d++){var = e=3Dr(a[d].getAttribute("name")),c=3D{settings:{},elements:{},layout:{}},= f=3Db(b(a[d],"elements")[0],"element");s[e]=3Dc;for(var = g=3D0;g<f.length;g++)l(f[g],e);if((e=3Db(a[d],"settings")[0])&&0<e.childN= odes.length){e=3Db(e,"setting");for(f=3D0;f<e.length;f++){var = g=3De[f].getAttribute("name"),h=3De[f].getAttribute("value");/color$/.tes= t(g)&&(h=3Dk.stringToColor(h));c.settings[r(g)]=3Dh}}if((e=3Db(a[d],"layo= ut")[0])&&0<e.childNodes.length){e=3Db(e,"group");for(f=3D0;f<e.length;f+= +){h=3De[f];g=3D{elements:[]};=0A= c.layout[r(h.getAttribute("position"))]=3Dg;for(var = m=3D0;m<h.attributes.length;m++){var = p=3Dh.attributes[m];g[p.name]=3Dp.value}h=3Db(h,"*");for(m=3D0;m<h.length= ;m++){p=3Dh[m];g.elements.push({type:p.tagName});for(var = u=3D0;u<p.attributes.length;u++){var = z=3Dp.attributes[u];g.elements[m][r(z.name)]=3Dz.value}k.exists(g.element= s[m].name)||(g.elements[m].name=3Dp.tagName)}}}y=3D!1;j()}}function = j(){clearInterval(m);z||(m=3DsetInterval(function(){var = b=3D!0;a(s,function(c,d){"properties"!=3Dc&&a(d.elements,function(a){(s[r= (c)]?=0A= s[r(c)].elements[r(a)]:null).ready||(b=3D!1)})});b&&!y&&(clearInterval(m)= ,t(s))},100))}function l(a,b){b=3Dr(b);var c=3Dnew = Image,d=3Dr(a.getAttribute("name")),e=3Da.getAttribute("src");if(0!=3D=3D= e.indexOf("data:image/png;base64,"))var = f=3Dk.getAbsolutePath(B),e=3D[f.substr(0,f.lastIndexOf("/")),b,e].join("/= ");s[b].elements[d]=3D{height:0,width:0,src:"",ready:!1,image:c};c.onload= =3Dfunction(){var = a=3Db,e=3Ds[r(a)]?s[r(a)].elements[r(d)]:null;e?(e.height=3DMath.round(c.= height/q*u),e.width=3DMath.round(c.width/q*u),e.src=3Dc.src,=0A= e.ready=3D!0,j()):k.log("Loaded an image for a missing element: = "+a+"."+d)};c.onerror=3Dfunction(){z=3D!0;j();A("Skin image not found: = "+this.src)};c.src=3De}function r(a){return a?a.toLowerCase():""}var = s=3D{},t=3Df,A=3Dg,y=3D!0,m,B=3De,z=3D!1,u=3D(jwplayer.utils.isMobile(),1= ),q=3D1;"string"!=3Dtypeof = B||""=3D=3D=3DB?p(d.defaultskin()):"xml"!=3Dk.extension(B)?A("Skin not a = valid file type"):new d.skinloader("",h,A)}})(jwplayer.html5);=0A= (function(d){var = k=3Dd.utils,a=3Dd.events,c=3Dk.css;d.html5.thumbs=3Dfunction(e){function = f(a){l=3Dnull;try{a=3D(new = d.parsers.srt).parse(a.responseText,!0)}catch(b){g(b.message);return}if("= array"!=3D=3Dk.typeOf(a))return g("Invalid data");p=3Da}function = g(a){l=3Dnull;k.log("Thumbnails could not be loaded: "+a)}function = h(a,d,e){a.onload=3Dnull;d.width||(d.width=3Da.width,d.height=3Da.height)= ;d["background-image"]=3Da.src;c.style(b,d);e&&e(d.width)}var = b,p,j,l,r,s=3D{},t,A=3Dnew = a.eventdispatcher;k.extend(this,A);b=3Ddocument.createElement("div");=0A= b.id=3De;this.load=3Dfunction(a){c.style(b,{display:"none"});l&&(l.onload= =3Dnull,l.onreadystatechange=3Dnull,l.onerror=3Dnull,l.abort&&l.abort(),l= =3Dnull);t&&(t.onload=3Dnull);a?(j=3Da.split("?")[0].split("/").slice(0,-= 1).join("/"),l=3Dk.ajax(a,f,g,!0)):(p=3Dr=3Dt=3Dnull,s=3D{})};this.elemen= t=3Dfunction(){return = b};this.updateTimeline=3Dfunction(a,b){if(p){for(var = c=3D0;c<p.length&&a>p[c].end;)c++;c=3D=3D=3Dp.length&&c--;c=3Dp[c].text;a= :{var = d=3Dc;if(d&&d!=3D=3Dr){r=3Dd;0>d.indexOf("://")&&(d=3Dj?j+"/"+d:d);var = e=3D{display:"block",margin:"0 auto",=0A= "background-position":"0 = 0",width:0,height:0};if(0<d.indexOf("#xywh"))try{var = f=3D/(.+)\#xywh=3D(\d+),(\d+),(\d+),(\d+)/.exec(d),d=3Df[1];e["background= -position"]=3D-1*f[2]+"px = "+-1*f[3]+"px";e.width=3Df[4];e.height=3Df[5]}catch(k){g("Could not = parse thumbnail");break a}var l=3Ds[d];l?h(l,e,b):(l=3Dnew = Image,l.onload=3Dfunction(){h(l,e,b)},s[d]=3Dl,l.src=3Dd);t&&(t.onload=3D= null);t=3Dl}}return c}}}})(jwplayer);=0A= (function(d){var = k=3Dd.jwplayer,a=3Dk.html5,c=3Dk.utils,e=3Dk.events,f=3De.state,g=3Dc.css= ,h=3Dc.bounds,b=3Dc.isMobile(),p=3Dc.isIPad(),j=3Dc.isIPod(),l=3D"aspectM= ode",r=3D["fullscreenchange","webkitfullscreenchange","mozfullscreenchang= e","MSFullscreenChange"],s=3D"hidden",t=3D"none",A=3D"block";a.view=3Dfun= ction(y,m){function = B(a){a=3Dc.between(m.position+a,0,this.getDuration());this.seek(a)}functi= on = z(a){a=3Dc.between(this.getVolume()+a,0,100);this.setVolume(a)}function = u(a){var b;b=3Da.ctrlKey||a.metaKey?!1:m.controls?!0:!1;if(!b)return!0;=0A= N.adMode()||(ca(),L());b=3Dk(y.id);switch(a.keyCode){case = 27:b.setFullscreen(!1);break;case 13:case 32:b.play();break;case = 37:N.adMode()||B.call(b,-5);break;case = 39:N.adMode()||B.call(b,5);break;case 38:z.call(b,10);break;case = 40:z.call(b,-10);break;case 77:b.setMute();break;case = 70:b.setFullscreen();break;default:if(48<=3Da.keyCode&&59>=3Da.keyCode){v= ar = c=3D(a.keyCode-48)/10*b.getDuration();b.seek(c)}}if(/13|32|37|38|39|40/.t= est(a.keyCode))return a.preventDefault(),!1}function = q(){xa=3D!0;va.sendEvent(e.JWPLAYER_VIEW_TAB_FOCUS,=0A= {hasFocus:!1})}function w(){var = a=3D!xa;xa=3D!1;a&&va.sendEvent(e.JWPLAYER_VIEW_TAB_FOCUS,{hasFocus:!0});= N.adMode()||(ca(),L())}function = v(){xa=3D!1;va.sendEvent(e.JWPLAYER_VIEW_TAB_FOCUS,{hasFocus:!1})}functio= n C(){var = a=3Dh(P),c=3DMath.round(a.width),f=3DMath.round(a.height);if(document.bod= y.contains(P)){if(c&&f&&(c!=3D=3D$a||f!=3D=3DJa))$a=3Dc,Ja=3Df,X&&X.redra= w(),clearTimeout(da),da=3DsetTimeout(D,50),va.sendEvent(e.JWPLAYER_RESIZE= ,{width:c,height:f})}else = d.removeEventListener("resize",C),b&&d.removeEventListener("orientationch= ange",=0A= C);return a}function = F(a){a&&(a.element().addEventListener("mousemove",M,!1),a.element().addEv= entListener("mouseout",I,!1))}function x(){}function = K(){clearTimeout(ya);ya=3DsetTimeout(za,Xa)}function n(a,b){var = c=3Ddocument.createElement(a);b&&(c.className=3Db);return c}function = L(){clearTimeout(ya);ya=3DsetTimeout(za,Xa)}function = J(){clearTimeout(ya);var = a=3Dy.jwGetState();if(a=3D=3D=3Df.PLAYING||a=3D=3D=3Df.PAUSED||S)Ca(),Na|= |(ya=3DsetTimeout(za,Xa))}function M(){clearTimeout(ya);Na=3D!0}function = I(){Na=3D!1}function G(a){va.sendEvent(a.type,=0A= a)}function = O(a){if(a.done)R();else{if(!a.complete){N.adMode()||(N.instreamMode(!0),N= .adMode(!0),N.show(!0));N.setText(a.message);var b=3Da.onClick;void = 0!=3D=3Db&&X.setAlternateClickHandler(function(){b(a)});void = 0!=3D=3Da.onSkipAd&&Y&&Y.setSkipoffset(a,a.onSkipAd)}Y&&Y.adChanged(a)}}f= unction = R(){N.setText("");N.adMode(!1);N.instreamMode(!1);N.show(!0);Y&&(Y.adsEnd= ed(),Y.setState(y.jwGetState()));X.revertAlternateClickHandler()}function= Q(a,b,d){var = e=3DP.className,f,h,j=3Dy.id+"_view";g.block(j);if(d=3D!!d)e=3De.replace(= /\s*aspectMode/,=0A= ""),P.className!=3D=3De&&(P.className=3De),g.style(P,{display:A},d);c.exi= sts(a)&&c.exists(b)&&(m.width=3Da,m.height=3Db);d=3D{width:a};-1=3D=3D=3D= e.indexOf(l)&&(d.height=3Db);g.style(P,d,!0);X&&X.redraw();N&&N.redraw(!0= );ea&&(ea.offset(N&&0<=3Dea.position().indexOf("bottom")?N.height()+N.mar= gin():0),setTimeout(function(){ga&&ga.offset("top-left"=3D=3D=3Dea.positi= on()?ea.element().clientWidth+ea.margin():0)},500));T(b);f=3Dm.playlistsi= ze;h=3Dm.playlistposition;if(E&&f&&("right"=3D=3D=3Dh||"bottom"=3D=3D=3Dh= ))E.redraw(),e=3D{display:A},d=3D{},e[h]=3D=0A= 0,d[h]=3Df,"right"=3D=3D=3Dh?e.width=3Df:e.height=3Df,g.style(Ya,e),g.sty= le(Ea,d);D(a,b);g.unblock(j)}function T(a){var = b=3Dh(P);fa=3D0<a.toString().indexOf("%")||0=3D=3D=3Db.height?!1:"bottom"= =3D=3D=3Dm.playlistposition?b.height<=3D40+m.playlistsize:40>=3Db.height;= N&&(fa?(N.audioMode(!0),Ca(),X.hidePreview(!0),X&&X.hide(),Sa(!1)):(N.aud= ioMode(!1),Va(y.jwGetState())));ea&&fa&&H();P.style.backgroundColor=3Dfa?= "transparent":"#000"}function = D(a,b){if(!a||isNaN(Number(a))){if(!ba)return;a=3Dba.clientWidth}if(!b||i= sNaN(Number(b))){if(!ba)return;=0A= b=3Dba.clientHeight}c.isMSIE(9)&&(document.all&&!d.atob)&&(a=3Db=3D"100%"= );m.getVideo().resize(a,b,m.stretching)&&(clearTimeout(da),da=3DsetTimeou= t(D,250))}function U(a){void = 0!=3D=3Da.jwstate?a=3Da.jwstate:na?(a=3Ddocument.fullscreenElement||docum= ent.webkitCurrentFullScreenElement||document.mozFullScreenElement||docume= nt.msFullscreenElement,a=3D!!(a&&a.id=3D=3D=3Dy.id)):a=3DS?pa.getVideo().= getFullScreen():m.getVideo().getFullScreen();na?aa(P,a):Z(a)}function = aa(a,b){c.removeClass(a,"jwfullscreen");b?(c.addClass(a,"jwfullscreen"),=0A= g.style(document.body,{"overflow-y":s}),L()):g.style(document.body,{"over= flow-y":""});N&&N.redraw();X&&X.redraw();ga&&ga.redraw();D();Z(b)}functio= n = Z(a){m.setFullscreen(a);pa&&pa.setFullscreen(a);a?(clearTimeout(da),da=3D= setTimeout(D,200)):p&&y.jwGetState()=3D=3D=3Df.PAUSED&&setTimeout(Fa,500)= }function ca(){N&&m.controls&&(S?La.show():N.show())}function = ha(){!0!=3D=3Dla&&(N&&!fa&&!m.getVideo().isAudioFile())&&(S&&La.hide(),N.= hide())}function oa(){ga&&(!fa&&m.controls)&&ga.show()}function = Da(){ga&&(!ia&&!m.getVideo().isAudioFile())&&=0A= ga.hide()}function = H(){ea&&(!m.getVideo().isAudioFile()||fa)&&ea.hide(fa)}function = Fa(){X&&m.controls&&!fa&&(!j||y.jwGetState()=3D=3D=3Df.IDLE)&&X.show();(!= b||!m.fullscreen)&&m.getVideo().setControls(!1)}function = za(){clearTimeout(ya);if(!0!=3D=3Dla){$=3D!1;var = a=3Dy.jwGetState();(!m.controls||a!=3D=3Df.PAUSED)&&ha();m.controls||Da()= ;a!=3D=3Df.IDLE&&a!=3D=3Df.PAUSED&&(Da(),H());c.addClass(P,"jw-user-inact= ive")}}function = Ca(){if(!1!=3D=3Dla){$=3D!0;if(m.controls||fa)ca(),oa();ta.hide&&ea&&!fa&= &ea.show();c.removeClass(P,"jw-user-inactive")}}=0A= function Sa(a){a=3Da&&!fa;m.getVideo().setVisibility(a)}function = jb(){ia=3D!0;Qa(!1);m.controls&&oa()}function = pb(){Y&&Y.setState(y.jwGetState())}function = Pa(a){ia=3D!1;clearTimeout(Za);Za=3DsetTimeout(function(){Va(a.newstate)}= ,100)}function ab(){ha()}function = Va(a){if(m.getVideo().isCaster)X&&(X.show(),X.hidePreview(!1)),g.style(ba= ,{visibility:"visible",opacity:1}),N&&(N.show(),N.hideFullscreen(!0));els= e{switch(a){case = f.PLAYING:la=3D!0!=3D=3Dm.getVideo().isCaster?null:!0;(S?pa:m).getVideo()= .isAudioFile()?(Sa(!1),=0A= X.hidePreview(fa),X.setHiding(!0),N&&(Ca(),N.hideFullscreen(!0)),oa()):(S= a(!0),D(),X.hidePreview(!0),N&&N.hideFullscreen(!m.getVideo().supportsFul= lscreen()));break;case = f.IDLE:Sa(!1);fa||(X.hidePreview(!1),Fa(),oa(),N&&N.hideFullscreen(!1));b= reak;case f.BUFFERING:Fa();za();b&&Sa(!0);break;case = f.PAUSED:Fa(),Ca()}ea&&!fa&&ea.show()}}function = Wa(a){return"#"+y.id+(a?" ."+a:"")}function = bb(a,b){g(a,{display:b?A:t})}var = P,Ea,sa,cb,Ya,ya=3D-1,Xa=3Db?4E3:2E3,ba,$a,Ja,wa,La,Ta,pa,S=3D!1,N,X,Y,ga= ,ea,ta=3Dc.extend({},=0A= m.componentConfig("logo")),ka,E,fa,W=3D!1,$=3D!1,la=3Dnull,ia,Ga,da=3D-1,= Na=3D!1,Ma,Oa,na=3D!1,xa=3D!1,va=3Dc.extend(this,new = e.eventdispatcher);this.getCurrentCaptions=3Dfunction(){return = ka.getCurrentCaptions()};this.setCurrentCaptions=3Dfunction(a){ka.setCurr= entCaptions(a)};this.getCaptionsList=3Dfunction(){return = ka.getCaptionsList()};this.setup=3Dfunction(h){if(!W){y.skin=3Dh;Ea=3Dn("= span","jwmain");Ea.id=3Dy.id+"_view";ba=3Dn("span","jwvideo");ba.id=3Dy.i= d+"_media";sa=3Dn("span","jwcontrols");wa=3Dn("span","jwinstream");Ya=3Dn= ("span",=0A= "jwplaylistcontainer");cb=3Dn("span","jwaspect");h=3Dm.height;var = s=3Dm.componentConfig("controlbar"),p=3Dm.componentConfig("display");T(h)= ;ka=3Dnew = a.captions(y,m.captions);ka.addEventListener(e.JWPLAYER_CAPTIONS_LIST,G);= ka.addEventListener(e.JWPLAYER_CAPTIONS_CHANGED,G);ka.addEventListener(e.= JWPLAYER_CAPTIONS_LOADED,x);sa.appendChild(ka.element());X=3Dnew = a.display(y,p);X.addEventListener(e.JWPLAYER_DISPLAY_CLICK,function(a){G(= a);b?$?za():Ca():Pa({newstate:y.jwGetState()});$&&L()});fa&&X.hidePreview= (!0);sa.appendChild(X.element());=0A= ea=3Dnew a.logo(y,ta);sa.appendChild(ea.element());ga=3Dnew = a.dock(y,m.componentConfig("dock"));sa.appendChild(ga.element());y.editio= n&&!b?Ga=3Dnew = a.rightclick(y,{abouttext:m.abouttext,aboutlink:m.aboutlink}):b||(Ga=3Dne= w = a.rightclick(y,{}));m.playlistsize&&(m.playlistposition&&m.playlistpositi= on!=3D=3Dt)&&(E=3Dnew = a.playlistcomponent(y,{}),Ya.appendChild(E.element()));N=3Dnew = a.controlbar(y,s);N.addEventListener(e.JWPLAYER_USER_ACTION,L);sa.appendC= hild(N.element());j&&ha();c.canCast()&&va.forceControls(!0);P.onmousedown= =3D=0A= q;P.onfocusin=3Dw;P.addEventListener("focus",w);P.onfocusout=3Dv;P.addEve= ntListener("blur",v);P.addEventListener("keydown",u);Ea.appendChild(ba);E= a.appendChild(sa);Ea.appendChild(wa);P.appendChild(Ea);P.appendChild(cb);= P.appendChild(Ya);m.getVideo().setContainer(ba);m.addEventListener("fulls= creenchange",U);for(h=3Dr.length;h--;)document.addEventListener(r[h],U,!1= );d.removeEventListener("resize",C);d.addEventListener("resize",C,!1);b&&= (d.removeEventListener("orientationchange",C),d.addEventListener("orienta= tionchange",=0A= C,!1));k(y.id).onAdPlay(function(){N.adMode(!0);Va(f.PLAYING);L()});k(y.i= d).onAdSkipped(function(){N.adMode(!1)});k(y.id).onAdComplete(function(){= N.adMode(!1)});k(y.id).onAdError(function(){N.adMode(!1)});y.jwAddEventLi= stener(e.JWPLAYER_PLAYER_STATE,Pa);y.jwAddEventListener(e.JWPLAYER_MEDIA_= ERROR,ab);y.jwAddEventListener(e.JWPLAYER_PLAYLIST_COMPLETE,jb);y.jwAddEv= entListener(e.JWPLAYER_PLAYLIST_ITEM,pb);y.jwAddEventListener(e.JWPLAYER_= CAST_AVAILABLE,function(){c.canCast()?va.forceControls(!0):va.releaseCont= rols()});=0A= y.jwAddEventListener(e.JWPLAYER_CAST_SESSION,function(a){Y||(Y=3Dnew = k.html5.castDisplay(y.id),Y.statusDelegate=3Dfunction(a){Y.setState(a.new= state)});a.active?(g.style(ka.element(),{display:"none"}),va.forceControl= s(!0),Y.setState("connecting").setName(a.deviceName).show(),y.jwAddEventL= istener(e.JWPLAYER_PLAYER_STATE,Y.statusDelegate),y.jwAddEventListener(e.= JWPLAYER_CAST_AD_CHANGED,O)):(y.jwRemoveEventListener(e.JWPLAYER_PLAYER_S= TATE,Y.statusDelegate),y.jwRemoveEventListener(e.JWPLAYER_CAST_AD_CHANGED= ,=0A= O),Y.hide(),N.adMode()&&R(),g.style(ka.element(),{display:null}),Pa({news= tate:y.jwGetState()}),C())});Pa({newstate:f.IDLE});b||(sa.addEventListene= r("mouseout",K,!1),sa.addEventListener("mousemove",J,!1),c.isMSIE()&&(ba.= addEventListener("mousemove",J,!1),ba.addEventListener("click",X.clickHan= dler)));F(N);F(ga);F(ea);g("#"+P.id+"."+l+" = .jwaspect",{"margin-top":m.aspectratio,display:A});h=3Dc.exists(m.aspectr= atio)?parseFloat(m.aspectratio):100;s=3Dm.playlistsize;g("#"+P.id+".playl= ist-right .jwaspect",{"margin-bottom":-1*=0A= s*(h/100)+"px"});g("#"+P.id+".playlist-right = .jwplaylistcontainer",{width:s+"px",right:0,top:0,height:"100%"});g("#"+P= .id+".playlist-bottom = .jwaspect",{"padding-bottom":s+"px"});g("#"+P.id+".playlist-bottom = .jwplaylistcontainer",{width:"100%",height:s+"px",bottom:0});g("#"+P.id+"= .playlist-right .jwmain",{right:s+"px"});g("#"+P.id+".playlist-bottom = .jwmain",{bottom:s+"px"});setTimeout(function(){Q(m.width,m.height)},0)}}= ;var = Qa=3Dthis.fullscreen=3Dfunction(a){c.exists(a)||(a=3D!m.fullscreen);a=3D!= !a;a!=3D=3Dm.fullscreen&&=0A= (na?(a?Ma.apply(P):Oa.apply(document),aa(P,a)):c.isIE()?aa(P,a):(pa&&pa.g= etVideo().setFullScreen(a),m.getVideo().setFullScreen(a)))};this.resize=3D= function(a,b){Q(a,b,!0);C()};this.resizeMedia=3DD;var = ja=3Dthis.completeSetup=3Dfunction(){g.style(P,{opacity:1});d.onbeforeunl= oad=3Dfunction(){m.getVideo().isCaster||y.jwStop()}},Za;this.setupInstrea= m=3Dfunction(a,b,c,d){g.unblock();bb(Wa("jwinstream"),!0);bb(Wa("jwcontro= ls"),!1);wa.appendChild(a);La=3Db;Ta=3Dc;pa=3Dd;Pa({newstate:f.PLAYING});= S=3D!0;wa.addEventListener("mousemove",=0A= J);wa.addEventListener("mouseout",K)};this.destroyInstream=3Dfunction(){g= .unblock();bb(Wa("jwinstream"),!1);bb(Wa("jwcontrols"),!0);wa.innerHTML=3D= "";wa.removeEventListener("mousemove",J);wa.removeEventListener("mouseout= ",K);S=3D!1};this.setupError=3Dfunction(a){W=3D!0;k.embed.errorScreen(P,a= ,m);ja()};this.addButton=3Dfunction(a,b,c,d){ga&&(ga.addButton(a,b,c,d),y= .jwGetState()=3D=3D=3Df.IDLE&&oa())};this.removeButton=3Dfunction(a){ga&&= ga.removeButton(a)};this.setControls=3Dfunction(a){var = b=3D!!a;b!=3D=3Dm.controls&&(m.controls=3D=0A= b,S?a?(La.show(),Ta.show()):(La.hide(),Ta.hide()):b&&Pa({newstate:y.jwGet= State()}),b||(za(),X&&X.hide()),va.sendEvent(e.JWPLAYER_CONTROLS,{control= s:b}))};this.forceControls=3Dfunction(a){la=3D!!a;a?Ca():za()};this.relea= seControls=3Dfunction(){la=3Dnull;Va(y.jwGetState())};this.addCues=3Dfunc= tion(a){N&&N.addCues(a)};this.forceState=3Dfunction(a){X.forceState(a)};t= his.releaseState=3Dfunction(){X.releaseState(y.jwGetState())};this.getSaf= eRegion=3Dfunction(a){var = b=3D{x:0,y:0,width:0,height:0};a=3Da||!c.exists(a);N.showTemp();=0A= ga.showTemp();var = d=3Dh(Ea),e=3Dd.top,f=3DS?h(document.getElementById(y.id+"_instream_contr= olbar")):h(N.element()),g=3DS?!1:0<ga.numButtons(),j=3D0=3D=3D=3Dea.posit= ion().indexOf("top"),k=3Dh(ea.element());g&&m.controls&&(g=3Dh(ga.element= ()),b.y=3DMath.max(0,g.bottom-e));j&&(b.y=3DMath.max(b.y,k.bottom-e));b.w= idth=3Dd.width;b.height=3Df.height&&a&&m.controls?(j?f.top:k.top)-e-b.y:d= .height-b.y;N.hideTemp();ga.hideTemp();return = b};this.destroy=3Dfunction(){d.removeEventListener("resize",C);d.removeEv= entListener("orientationchange",=0A= C);for(var = a=3Dr.length;a--;)document.removeEventListener(r[a],U,!1);m.removeEventLi= stener("fullscreenchange",U);P.removeEventListener("keydown",u,!1);Ga&&Ga= .destroy();Y&&(y.jwRemoveEventListener(e.JWPLAYER_PLAYER_STATE,Y.statusDe= legate),Y.destroy(),Y=3Dnull);sa&&(sa.removeEventListener("mousemove",J),= sa.removeEventListener("mouseout",K));ba&&(ba.removeEventListener("mousem= ove",J),ba.removeEventListener("click",X.clickHandler));S&&this.destroyIn= stream()};P=3Dn("div","jwplayer playlist-"+m.playlistposition);=0A= P.id=3Dy.id;P.tabIndex=3D0;Ma=3DP.requestFullscreen||P.webkitRequestFulls= creen||P.webkitRequestFullScreen||P.mozRequestFullScreen||P.msRequestFull= screen;Oa=3Ddocument.exitFullscreen||document.webkitExitFullscreen||docum= ent.webkitCancelFullScreen||document.mozCancelFullScreen||document.msExit= Fullscreen;na=3DMa&&Oa;m.aspectratio&&(g.style(P,{display:"inline-block"}= ),P.className=3DP.className.replace("jwplayer","jwplayer = "+l));Q(m.width,m.height);var = Ra=3Ddocument.getElementById(y.id);Ra.parentNode.replaceChild(P,=0A= Ra)};g(".jwplayer",{position:"relative",display:"block",opacity:0,"min-he= ight":0,"-webkit-transition":"opacity .25s = ease","-moz-transition":"opacity .25s ease","-o-transition":"opacity = .25s = ease"});g(".jwmain",{position:"absolute",left:0,right:0,top:0,bottom:0,"-= webkit-transition":"opacity .25s ease","-moz-transition":"opacity .25s = ease","-o-transition":"opacity .25s ease"});g(".jwvideo, = .jwcontrols",{position:"absolute",height:"100%",width:"100%","-webkit-tra= nsition":"opacity .25s ease","-moz-transition":"opacity .25s ease",=0A= "-o-transition":"opacity .25s = ease"});g(".jwvideo",{overflow:s,visibility:s,opacity:0});g(".jwvideo = video",{background:"transparent",height:"100%",width:"100%",position:"abs= olute",margin:"auto",right:0,left:0,top:0,bottom:0});g(".jwplaylistcontai= ner",{position:"absolute",height:"100%",width:"100%",display:t});g(".jwin= stream",{position:"absolute",top:0,left:0,bottom:0,right:0,display:"none"= });g(".jwaspect",{display:"none"});g(".jwplayer."+l,{height:"auto"});g(".= jwplayer.jwfullscreen",{width:"100%",=0A= height:"100%",left:0,right:0,top:0,bottom:0,"z-index":1E3,margin:0,positi= on:"fixed"},!0);g(".jwplayer.jwfullscreen.jw-user-inactive",{cursor:"none= ","-webkit-cursor-visibility":"auto-hide"});g(".jwplayer.jwfullscreen = .jwmain",{left:0,right:0,top:0,bottom:0},!0);g(".jwplayer.jwfullscreen = .jwplaylistcontainer",{display:t},!0);g(".jwplayer = .jwuniform",{"background-size":"contain !important"});g(".jwplayer = .jwfill",{"background-size":"cover = !important","background-position":"center"});g(".jwplayer .jwexactfit",=0A= {"background-size":"100% 100% !important"})})(window);=0A= (function(d,k){function = a(a){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA"+r[a]}functio= n c(a,b){var c=3Dk.createElement(a);b&&e(c,b);return c}function = e(a,b){p.isArray(b)||(b=3D[b]);b=3Dp.map(b,function(a){return!a?"":"jwcas= t-"+a.toLowerCase()});a.className=3Db.join(" ")}function = f(a,b){b.join||(b=3D[b]);for(var = c=3D0;c<b.length;c++)a.appendChild(b[c])}var = g=3Dd.utils,h=3Dd.html5,b=3Dd.events,p=3Dd._,j=3Db.state,l=3Dg.css,r=3D{w= heel:"DgAAAA4CAYAAACohjseAAACiUlEQVR42u3aP2sTYRzAcZ87Md6mhE5GhRqli0NC22yN= KO1iaStSY+ggdKggal6BDXRoUuwbEG1LpE4B30LAxEGbKYgO7SVoUhJD04hOusRv4ZlCwP5Le= vfDgw9kCnzD5Z4/95xqtVqideNLTQzjKV4gCxtNtNwaqBBGCg3UkcYz3EUIV+F1W6AHj7CFb1= hAEIbbb1GFByjjAyZgSvkPXkMGW7gt7SETwQ8swpL0FFV4jjpuShsmTiOFz7gobRxUWEceXok= DfQKf0CdxJhNFFT6JU7Ur2MUtiXNRhXdYlDrZnkERZyUGerCNcanLpYfISV0PGtjEpNTAGyjB= kBq4ggWpWxYmGghIDRzEDgypgTG8lbyrtoZ5yYFZ3JccWMKg5MCfGJAcuHf5/ge6xwX8lnyLD= mCn/SEzJChwCKX2YSIqKDCKbPtAHxcUGAdNOhBPkBYUmAZNOhDXUYMSEKdQBU06EAp1BAUEBn= WLgg4EXmJJQOASXnVa0YdRcfma0NAN4U6BCpu44+LASd2g0BYIPEbexYHvdQOfOwdaqLh063A= cFVj73bq3XBRnoYiZ/b58ySDposAkMlD/DNT8aGLUBXGjaMJ/0Beg9/Dd4etEH2qIHOUVdgHn= HRh3DgUkjnoIIYUNh0V6sYHXUIcO1Eyso4BLDoi7jC94A/O4DgIZWEYdYycYN4YalmF04yjXN= JpIwOrxOJdAE9PdPoznRxZFTPUgbgI2svD38jjlLMrI61DjmFcFU/iICmZhnMSB2DOYg41tJB= GAOuSPFkASZdiYg8cpR5pHsIIGqkgjjghC6Eef1o8QIphHGlU0sIYRGE4/lB7DKnL4il/Yu/5= gFzZyWEUMwzC7sXUv2l9q1CPRZSGkLwAAAABJRU5ErkJggg\x3d\x3d",display:"UAAAAC4= AQMAAACo6KcpAAAABlBMVEV6enp6enqEWMsmAAAAAXRSTlMAQObYZgAAAEdJREFUeF7t2bEJA= CAMRcGAg7j/Fo6VTkvbIKSRe/XBH+DHLlaHK0qN7yAIgiAIgiAIgiAIgiAIgiAIgiAIgg0PZH= fzbuUjPCPnO5qQcE/AAAAAAElFTkSuQmCC",=0A= pause:"CoAAAA2CAQAAAAb3sMwAAAAMElEQVR4Ae3MMQEAMAzDsIY/6AxB9/aRfyvt7GX2Ph8= UCoVCoVAo9AiFQqFQKBQKfdYvoctOjDeGAAAAAElFTkSuQmCC",play:"DYAAAA2BAMAAAB+a= 3fuAAAAFVBMVEX///////////////////////////9nSIHRAAAABnRSTlMAP79AwMFfxd6iAA= AAX0lEQVR4Xn3JQQGAABAEoaliFiPYYftHMMHBl55uQw455JBDDjnkkEMOOeSQQw455JBDDjn= kkEMOOeSQQ+5O3HffW6hQoUKFChUqVKhQoUKFChUqVKhQoUKFChUqVKgfWHsiYI6VycIAAAAA= SUVORK5CYII\x3d",replay:"DQAAAA8CAYAAAApK5mGAAADkklEQVRoBd3BW2iVBRwA8P/cW= HMsv9QilLCITLCU0khpST6JCEXrQbKMCgrKFwsfZq/LMnRRIdkFvBQUvmShgg9iV02zB7FScy= WlqNHNqbCJ7PKLkFHp952dnZ3tfOv3ixgGSLAVt8b/ARIX9WADJsVIhsR/daIV42MkQiJdO5Z= jdIwkSBR2Ek+gJkYCJIpzEE2Rd0gMzB7MibxCojRbcEtUGsZgJu7HYixVuh6sx6QYLrgSD+Fd= /GhodKIV42Ko4B68h07Dpx3NGB3lgnnYpbJOYFoMBm7ANpW3D3NjMPAgzqqsn7EIVVEqVGOty= mrHMtTGYKAeWxSvB3vxIh7ANIzFNUpzAa0YF4OFWuxUnFNYjkmRAomB6cX7uDHKAdX4QP/asR= RXRAFIFO8TzI5yQov+bcO1UQQk+ncITVFumIce2XqxHFVRJCSy/YolqIlyQwOOy9aNR2KAkLh= cJ1agIYYKVsvWi6eiBEj8owfrMDEGAVVYiMcjDa7HBdlejhIhcdF2TI9BQiP2uOgsro5LYa1s= X6M2SoQ6zItBwmRsdrnn498wDuel68aMqDBMQZd0v6Mu+mCJbBsiJ7BdtkXRB7ul68HNkRNol= O3D+BvGoke6HZEz+Fa6c6gJNMn2WOQMmmW7K/CSbBMiZ3CbbM8EPpKuLXIIo3BWujcCh6TbEj= mFr6TbGfhDulcip7BJugOBbulaIqfwlnRHQ7bnIqewVrpjgU7pVkZOYaN0hwOnpFsfOYWt0u0= LfCnd55FT+EG6zYEN0p1BdeQMEnRLtzKwTLZZkTO4V7bFgTtka4mcwTrZrgtU47R0P6E6cgIN= OCfdkeiDjbItipzAs7K1Rh/Mle0gaqLC0IBTsk2PPhiFI7ItiwrDKtl2xaXwqGwdmBoVgrvRJ= dv8uBRq0CbbISQxzDARJ2TbG1kwX2GfoT6GCa7CN7J1Y0YUgk0K+wJjY4hhAg4o7LXoD8bjuM= IOY1oMETTiuMIOoj6KgTvRobDzaEZtlAnq8QK6FHYGU2IgcB+69e97LEJNlAh1eBrH9K8DjVE= KPIxuxTmJVZiFmugHajEHa/Cb4nRiQQwGmtBpYM7hU7yNFjSjGSuwDrvRYWD+RGOUA25Hm8rZ= j8lRThiDd9Br+PTgVdTFUMFcfGfo7cHMGA4YhYXYr/x2YQGqohIwG2vwi9Idw2pMjzzBVCzBm= /gYR3EaXbiA02jDDryOJ3FTlNFfAO8ENqnn13UAAAAASUVORK5CYII\x3d"},=0A= s=3D!1,t=3D316/176;h.castDisplay=3Dfunction(r){function p(){if(M){var = a=3DM.element();a.parentNode&&a.parentNode.removeChild(a);M.resetEventLis= teners();M=3Dnull}}function = m(){G&&(G.parentNode&&G.parentNode.removeChild(G),G=3Dnull)}function = B(){I&&(I.parentNode&&I.parentNode.removeChild(I),I=3Dnull)}s||(l(".jwpla= yer = .jwcast-display",{display:"none",position:"absolute",width:"100%",height:= "100%","background-repeat":"no-repeat","background-size":"auto","backgrou= nd-position":"50% 50%","background-image":a("display")}),=0A= l(".jwplayer = .jwcast-label",{position:"absolute",left:10,right:10,bottom:"50%","margin= -bottom":100,"text-align":"center"}),l(".jwplayer .jwcast-label = span",{"font-family":'"Karbon", "HelveticaNeue-Light", "Helvetica Neue = Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", = sans-serif',"font-size":20,"font-weight":300,color:"#7a7a7a"}),l(".jwplay= er = span.jwcast-name",{color:"#ccc"}),l(".jwcast-button",{position:"absolute"= ,width:"100%",height:"100%",opacity:0,"background-repeat":"no-repeat",=0A= "background-size":"auto","background-position":"50% = 50%"}),l(".jwcast-wheel",{"background-image":a("wheel")}),l(".jwcast-paus= e",{"background-image":a("pause")}),l(".jwcast-play",{"background-image":= a("play")}),l(".jwcast-replay",{"background-image":a("replay")}),l(".jwca= st-paused .jwcast-play",{opacity:1}),l(".jwcast-playing = .jwcast-pause",{opacity:1}),l(".jwcast-idle = .jwcast-replay",{opacity:1}),g.cssKeyframes("spin","from {transform: = rotate(0deg);} to {transform: rotate(360deg);}"),l(".jwcast-connecting = .jwcast-wheel, .jwcast-buffering .jwcast-wheel",=0A= {opacity:1,"-webkit-animation":"spin 1.5s linear = infinite",animation:"spin 1.5s linear = infinite"}),l(".jwcast-companion",{position:"absolute","background-positi= on":"50% 50%","background-size":"316px = 176px","background-repeat":"no-repeat",top:0,left:0,right:0,bottom:4}),l(= ".jwplayer .jwcast-click-label",{"font-family":'"Karbon", = "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", = Helvetica, Arial, "Lucida Grande", = sans-serif',"font-size":14,"font-weight":300,"text-align":"center",positi= on:"absolute",=0A= left:10,right:10,top:"50%",color:"#ccc","margin-top":100,"-webkit-user-se= lect":"none","user-select":"none",cursor:"pointer"}),l(".jwcast-paused = .jwcast-click-label",{color:"#7a7a7a",cursor:"default"}),s=3D!0);var = z=3Dk.getElementById(r+"_display_button"),u=3Dc("div","display"),q=3Dc("d= iv",["pause","button"]),w=3Dc("div",["play","button"]),v=3Dc("div",["repl= ay","button"]),C=3Dc("div",["wheel","button"]),F=3Dc("div","label"),x=3Dc= ("span"),K=3Dc("span","name"),n=3D"#"+r+"_display.jwdisplay",L=3D-1,J=3Dn= ull,M=3Dnull,I=3Dnull,G=3Dnull;=0A= f(u,[C,q,w,v,F]);f(F,[x,K]);z.parentNode.insertBefore(u,z);this.statusDel= egate=3Dnull;this.setName=3Dfunction(a){K.innerText=3Da||"Google = Cast";return this};this.setState=3Dfunction(a){var b=3D"Casting on = ";if(null=3D=3D=3DJ)if("connecting"=3D=3D=3Da)b=3D"Connecting to ";else = if(a!=3D=3Dj.IDLE){var = c=3Dd(r).getPlaylistItem().title||"";c&&(b=3Db.replace("on",c+" = on"))}x.innerText=3Db;clearTimeout(L);a=3D=3D=3Dj.IDLE&&(L=3DsetTimeout(f= unction(){e(u,["display","idle"])},3E3),a=3D"");e(u,["display",a||""]);re= turn this};this.show=3Dfunction(){l(n+=0A= " .jwpreview",{"background-size":"316px 176px = !important",opacity:0.6,"margin-top":-2});l(n+" = .jwdisplayIcon",{display:"none = !important"});l.style(u,{display:"block"});return = this};this.hide=3Dfunction(){g.clearCss(n+" .jwpreview");l(n+" = .jwdisplayIcon",{display:""});l.style(u,{display:"none"});return = this};this.setSkipoffset=3Dfunction(a,c){if(null=3D=3D=3DM){var = d=3Dk.getElementById(r+"_controlbar"),e=3D10+g.bounds(u).bottom-g.bounds(= d).top;M=3Dnew = h.adskipbutton(r,e|0,a.skipMessage,a.skipText);M.addEventListener(b.JWPLA= YER_AD_SKIPPED,=0A= function(){c(a)});M.reset(a.skipoffset||-1);M.show();d.parentNode.insertB= efore(M.element(),d)}else = M.reset(a.skipoffset||-1)};this.setCompanions=3Dfunction(a){var = b,d,e,g=3DNumber.MAX_VALUE,h=3Dnull;for(d=3Da.length;d--;)if(b=3Da[d],b.w= idth&&b.height&&b.source)switch(b.type){case "html":case "iframe":case = "application/x-shockwave-flash":break;default:e=3DMath.abs(b.width/b.heig= ht-t),e<g&&(g=3De,0.75>e&&(h=3Db))}(a=3Dh)?(null=3D=3D=3DI&&(I=3Dc("div",= "companion"),f(u,I)),a.width/a.height>t?(b=3D316,d=3Da.height*b/a.width):= (d=3D176,=0A= b=3Da.width*d/a.height),l.style(I,{"background-image":a.source,"backgroun= d-size":b+"px = "+d+"px"})):B()};this.adChanged=3Dfunction(a){if(a.complete)M&&M.reset(-1= ),J=3Dnull;else{M&&(void = 0=3D=3D=3Da.skipoffset?p():(a.position||a.duration)&&M.updateSkipTime(a.p= osition|0,a.duration|0));var b=3Da.tag+a.sequence;b!=3D=3DJ&&(l(n+" = .jwpreview",{opacity:0}),a.companions?this.setCompanions(a.companions):B(= ),a.clickthrough?null=3D=3D=3DG&&(G=3Dc("div","click-label"),G.innerText=3D= "Click here to learn more = \x3e",f(u,G)):m(),J=3Db,this.setState(a.newstate))}};=0A= this.adsEnded=3Dfunction(){p();B();m();l(n+" = .jwpreview",{opacity:0.6});J=3Dnull};this.destroy=3Dfunction(){this.hide(= );u.parentNode&&u.parentNode.removeChild(u)}}})(jwplayer,document);=0A= (function(d){var = k=3Djwplayer.utils.extend,a=3Dd.logo;a.defaults.prefix=3D"";a.defaults.fi= le=3D"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHoAAAAyCAMAAACkjD/XA= AACnVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkSEhIAAAAaGhoAAAAiIiIrKysAAAAxMTEAAAA4ODg= +Pj4AAABEREQAAABJSUkAAABOTk5TU1NXV1dcXFxiYmJmZmZqamptbW1xcXF0dHR3d3d9fX2A= gICHh4eKioqMjIyOjo6QkJCSkpKUlJSWlpaYmJidnZ2enp6ioqKjo6OlpaWmpqanp6epqamqq= qqurq6vr6+wsLCxsbG0tLS1tbW2tra3t7e6urq7u7u8vLy9vb2+vr6/v7/AwMDCwsLFxcXFxc= XHx8fIyMjJycnKysrNzc3Ozs7Ozs7Pz8/Pz8/Q0NDR0dHR0dHS0tLU1NTV1dXW1tbW1tbW1tb= X19fX19fa2trb29vb29vc3Nzc3Nzf39/f39/f39/f39/g4ODh4eHj4+Pj4+Pk5OTk5OTk5OTk= 5OTl5eXn5+fn5+fn5+fn5+fn5+fo6Ojo6Ojq6urq6urq6urr6+vr6+vr6+vt7e3t7e3t7e3t7= e3u7u7u7u7v7+/v7+/w8PDw8PDw8PDw8PDy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL09PT09P= T09PT09PT09PT09PT09PT29vb29vb29vb29vb29vb29vb29vb29vb39/f39/f39/f39/f39/f= 4+Pj4+Pj4+Pj5+fn5+fn5+fn5+fn5+fn5+fn5+fn6+vr6+vr6+vr6+vr6+vr6+vr8/Pz8/Pz8= /Pz8/Pz8/Pz8/Pz9/f39/f39/f39/f39/f39/f39/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/= v7+/v7+/v7///////////////9kpi5JAAAA33RSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFh= YWFxcYGBgZGRoaGhsbHBwdHR4eHx8gISIiIyQmJicoKSoqKywtLi4uMDEyMjM0NTU2Njc5Ojo= 7Ozw9Pj5AQUJCQ0ZGSElKSktMTU5PUFFRUlRVVlZXWFpbXV5eX2BhYmVmZ2hpamtsbW5vcHFy= c3R2d3h5enx9fn+BgoKDhIWGiYmKi4yNjo+QkZKTlJWWl5eYmZqbnJ2enp+goaKkpaamp6ipq= qusra6vsLKzs7W2t7i5uru8vb6/wMHCwsPExcbHyMnJysvMVK8y+QAAB5FJREFUeNrFmP2f3E= Qdx8kmm2yy2WQzmZkjl3bJ2Rb12mtp8SiKiBUUxVKFVisIihV62CKCIoK0UvVK1bP07mitBeV= JUVso0Duw1Xo9ET0f6JN47bV3u9+/xe83kyzr0+vlL7t8Xq9ubpLpvHfm+7i54P+UVkBp2gWd= FpGNYtFA+NtALpYcxzZ1rSM0TSvgv5xse0wwu1joxDYLulE0dKTTSLcqfOvMQ1WzoHXAtCads= GXqBCsUnWDxNBzmlq51wLSuz0LmOcTWClZFfA1ghLUbrUwbdq396kAvK5s6HoFdlb8FuLONB6= 6RlGnD5S8BwKkNoVMsFEw3XIOj97hmoX2updP5kml7jgLp/Ec8yzBKntwDMCnwa7TPtUrkWLr= liW2gtC+0TdNhvdMAu1hJ19plYNcP0LGKiJp/HJTeEI5V8sjJ4PZ2mTp1rb7Pf5C5JbvCN0Cu= ha7jpE5WX9oeU6us8YlTUH8grFQC+QzkWuKVvdTJXuWO0Z5Nk2tNkWNdzgLed+4tdNWrkpPBI= 20ytVYwK+LrQLpPcHk3vIVm1ZCcDD7jt8fUGmYNoeLpJzKW+1vQYSjJyc72ZKbWSOqqhpn+99= r/rn99WDDLbJViHZbJirkWtJDkZPArbhta2jFg7LdKV1ID9aWaz5CTzTD0pvB2aypB9xYPKta= UXEC7bKKjeA1dHyJTU+xbFgY/RiAKP2lYsm28RaJmAtfTs6c4xP9g0gycUqKpeDGLegZPl3Mq= TL6oWCdl9EIrOol20/U6zyzgVJzpeV6l7Dhl18VP1/N8v1r1vQoNSziH1nPKKMdBChbAiprhe= ygfL65tZmxazguYXDoL8BcyqlhRb0W/M3Wy412YRTUd7SKEFIKzIBQ8DBhHewgSjkLB7GwS54= wxwcoORqYQ+QyhFGA9VIYxnfCKq2VtE3k3wTB1taLx+FVCNTRyxnU4YQ/8WEY9M7PvkvJHsEs= Aam5srRRwH0YBhml14Zv7pRz62+LAD/jWE0vHINU6OUGXyc0Mt5GiLW/+6blV8eO4tY8B6t3q= vBsZOnUy+HJgFaiuMELfhQ6RrAe4JZGvwxcFPLx69YZDZ1ciOrB03ayEd52vr0x6/zokhbxs+= p5o7Oc3kfrkxFOrV392d+NWFaeaXvK652Cw+xTAo9cS5ar0vKcfy9BrgNRfMVN0SOh+gPfWtg= N8L7kM6pcI2FSrJUtm7kc0KxlF2xcHd/1xWxxvmv1QLB9/5cJobDiKIxklcmI4ShJ5eJ/qOTS= qU6/BBC4JN6boQSAN71Doi1Mnm+B0Rjlavgabo/GZ2V/LL8FRSehkkfzzYIouoqXf31jz3de7= kq5DB6JP1a+vSUQnOXrRoujpn2XogumJpwCeBfhDV4qeAdK1QwqdOhkMqdAyyyk6HoHR3tmD4= /UlI/DDBNFxHK1tDBDaNrHODU7KDzTW16Lr6nccHZGxHNt3Jao/RrSU8pPTeX+JPYj4NpAGkx= sg16FoWP1xP5Bu8UwdYxSXJXRyJ0zeCtsegdsm4QsLBBwcHf3l+fF5hHbscnDh1LeSaGwvMod= nTl7ChVRuNiblxIkjR6bq+9+R9RzkO7cBadWCdZBroDaq/jgDqHMLMYtSr8jkpwl9aaOxF9bd= DHsb9T5Ev/rkk6N398SIDj3X5zfDzi1bDpxdHNWWwcOchS27funeR+EOyTI0RcyKLIM20VPzy= OObeh4LJsZ/hYnaRpgRsTwG9TPzLz5XhyOSDlzykDEKLsEYl08cG0W9eW+U4B1eZZmtY7J13P= XCeHeg0MrPjlH8yLiJ/mYtfqIFvQVNTaez/cMrfwHHpJC7APZH0csAP5ARokPPwXyIoEjKaOn= M7UIIOfKKrJEJvEAguhZHUY1sHb3vH1tCxyS0OvGtAL+/iMubQOlMXyKfA6U8i+I0PqWyecA3= AmyVEmPhczxEdBUbOKwCsHsAtfNUDyZNdiNcLQld8cTYgQHScjExjNPvOf9RSsrZtt3uB3f2s= 0Dku35MyiY6z6LYjbMdx+HvO7pd11/egBtCvh7mFvs+P70Rl8L0yU8r7WROyXb5b77Dxemv+I= 7L82wmxoeY53U9+/K8HE1ZvBq4eGQfh1SNa0Keo5tZVCXwXs7KluUwIZjrMsrHTsB95f4B50J= wztGURtHywsBjvGphtIUiFeb9Kn4pjzHXUOhmlXPI3Ug/5QH6BjS1uWpRRdLNku3YWPNw4RKV= SSqfpKLq3k3bIZXMvFha+NjQqXqlhYxKa9EgFJGVqKCrqD2ZloJrql7Qgq4vw9DKfn0ahp73B= +ln3hPQY/xKJEO1CC2P6T49UOP/fD+R5qphSBvAslttQb8YZr1os7/5ry0P8VDNoZK6T8pnZp= dW4bb9ZWPQ2NPtlhxf/A5yPUApt+0/MP2uqy5nLkaKLyZycuOKCp13u9mWXXasol4staAPYyp= rN1p5CvkR1nD5pxz9jQDPu1Pvbii3yklQmr2U/LtDUr9Fngelp0NqwDsmirPtoLRWJdxOiQrp= 9Yr8XGiTk3XyxF2eFuw3+ju5aRJl1Yu+f+LMM1eiexc6/lK0QuWpYhkd3XT+UsfOXhd2WKpO6= W/TO3BUO8H/BB7RwuB6W7b7AAAAAElFTkSuQmCC";d.logo=3D=0A= function(c,d){"free"=3D=3Dc.edition()?d=3Dnull:(a.defaults.file=3D"",a.de= faults.prefix=3D"");k(this,new = a(c,d))}})(jwplayer.html5);(function(d){var = k=3Dd.html5,a=3Dk.model;k.model=3Dfunction(c,e){var f=3Dnew = d.utils.key(c.key),g=3Dnew = a(c,e),h=3Dg.componentConfig;g.edition=3Dfunction(){return = f.edition()};g.componentConfig=3Dfunction(a){return"logo"=3D=3Da?g.logo:h= (a)};return g}})(jwplayer);=0A= (function(d){var k=3Dd.html5,a=3Dk.player;k.player=3Dfunction(c){c=3Dnew = a(c);var = e;e=3Dc._model.edition();if("enterprise"=3D=3D=3De||"ads"=3D=3D=3De)e=3Dn= ew = d.cast.controller(c,c._model),c.jwStartCasting=3De.startCasting,c.jwStopC= asting=3De.stopCasting;return c};a.prototype.edition=3Dfunction(){return = this._model.edition()}})(jwplayer);=0A= (function(d){function = k(e){if(!a.isFunction(e.supports))throw{message:"Tried to register a = provider with an invalid object"};var = f=3Dfunction(){};f.prototype=3Dd.html5.DefaultProvider;e.prototype=3Dnew = f;c.unshift(e)}var = a=3Dd._,c=3D[d.html5.YoutubeProvider,d.html5.VideoProvider];a.each(d.unre= gisteredProviders,k);delete = d.unregisteredProviders;d.html5.chooseProvider=3Dfunction(d){d=3Da.isObje= ct(d)?d:{};return a.find(c,function(a){return = a.supports(d)})};d.html5.registerProvider=3Dk})(jwplayer);=0A= (function(d){var = k=3Djwplayer.utils.extend,a=3Dd.rightclick;d.rightclick=3Dfunction(c,e){i= f("free"=3D=3Dc.edition())e.aboutlink=3D"http://www.longtailvideo.com/jwp= about/?a\x3dr\x26v\x3d"+d.version+"\x26m\x3dh\x26e\x3df",delete = e.abouttext;else{if(!e.aboutlink){var = f=3D"http://www.longtailvideo.com/jwpabout/?a\x3dr\x26v\x3d"+d.version+"\= x26m\x3dh\x26e\x3d",g=3Dc.edition();e.aboutlink=3Df+("pro"=3D=3Dg?"p":"pr= emium"=3D=3Dg?"r":"enterprise"=3D=3Dg?"e":"ads"=3D=3Dg?"a":"f")}e.aboutte= xt?e.abouttext+=3D" ...":(f=3Dc.edition(),f=3Df.charAt(0).toUpperCase()+=0A= f.substr(1),e.abouttext=3D"About JW Player "+d.version+" ("+f+" = edition)")}k(this,new a(c,e))}})(jwplayer.html5);=0A= (function(d){var = k=3Dd.cast,a=3Dd.utils;k.adprovider=3Dfunction(c,e){function = f(){p=3D{message:j,position:0,duration:-1}}function g(b,d){var = f=3D{command:b};void = 0!=3D=3Dd&&(f.args=3Dd);e.sendMessage(c,f,a.noop,function(a){k.error("mes= sage send error",a)})}var h=3Dnew = k.provider(c,e),b=3Da.extend(this,h),p,j=3D"Loading = ad",l=3D0;b.init=3Dfunction(){h.init();f()};b.destroy=3Dfunction(){h.dest= roy()};b.updateModel=3Dfunction(a,b){(a.tag||a.newstate||a.sequence||a.co= mpanions)&&k.log("received ad change:",a);a.tag&&(p.tag&&a.tag!=3D=3D=0A= p.tag)&&(k.error("ad messages not received in order. new model:",a,"old = model:",p),f());d.utils.extend(p,a);h.updateModel(a,b)};b.getAdModel=3Dfu= nction(){var b=3Da.extend({},p);if(0<p.duration){var = c=3Dp,d=3Dc.message.replace(/xx/gi,""+Math.min(c.duration|0,Math.ceil(c.d= uration-c.position)));c.podMessage&&1<c.podcount&&(d=3Dc.podMessage.repla= ce(/__AD_POD_CURRENT__/g,""+c.sequence).replace(/__AD_POD_LENGTH__/g,""+c= .podcount)+d);b.message=3Dd}else b.message=3Dj;return = b};b.resetAdModel=3Dfunction(){f()};b.skipAd=3Dfunction(a){g("skipAd",=0A= {tag:a.tag})};b.clickAd=3Dfunction(a){l=3D(new = Date).getTime();g("clickAd",{tag:a.tag})};b.timeSinceClick=3Dfunction(){r= eturn(new Date).getTime()-l}}})(window.jwplayer);=0A= (function(d){var = k=3Dd.cast,a=3Dd.utils,c=3Dd.events,e=3Dd._,f=3Dc.state;k.provider=3Dfunc= tion(d){function = h(a){j.oldstate=3Dj.newstate;j.newstate=3Da;b.sendEvent(c.JWPLAYER_PLAYER= _STATE,{oldstate:j.oldstate,newstate:j.newstate})}var = b=3Da.extend(this,new = c.eventdispatcher("cast.provider")),p=3D-1,j=3D{newstate:f.IDLE,oldstate:= f.IDLE,buffer:0,position:0,duration:-1,audioMode:!1},l=3Ddocument.createE= lement("div");l.className=3D"jwcast-screen";l.onclick=3Dfunction(){b.send= Event(c.JWPLAYER_PROVIDER_CLICK)};b.isCaster=3D!0;b.init=3D=0A= function(){};b.destroy=3Dfunction(){clearTimeout(p);_castSession=3Dnull};= b.updateModel=3Dfunction(a,d){a.newstate&&(j.newstate=3Da.newstate,j.olds= tate=3Da.oldstate||j.oldstate,b.sendEvent(c.JWPLAYER_PLAYER_STATE,{oldsta= te:j.oldstate,newstate:j.newstate}));if("ad"!=3D=3Dd){if(void = 0!=3D=3Da.position||void 0!=3D=3Da.duration)void = 0!=3D=3Da.position&&(j.position=3Da.position),void = 0!=3D=3Da.duration&&(j.duration=3Da.duration),b.sendEvent(c.JWPLAYER_MEDI= A_TIME,{position:j.position,duration:j.duration});void = 0!=3D=3Da.buffer&&(j.buffer=3Da.buffer,=0A= b.sendEvent(c.JWPLAYER_MEDIA_BUFFER,{bufferPercent:j.buffer}))}};b.suppor= tsFullscreen=3Dfunction(){return!1};b.setup=3Dfunction(a,b){b.state&&(j.n= ewstate=3Db.state);void 0!=3D=3Db.buffer&&(j.buffer=3Db.buffer);void = 0!=3D=3Da.position&&(j.position=3Da.position);void = 0!=3D=3Da.duration&&(j.duration=3Da.duration);h(f.BUFFERING);d("setup",a)= };b.playlistItem=3Dfunction(a){h(f.BUFFERING);d("item",a)};b.load=3Dfunct= ion(a){h(f.BUFFERING);d("load",a)};b.stop=3Dfunction(){clearTimeout(p);p=3D= setTimeout(function(){h(f.IDLE);d("stop")},0)};=0A= b.play=3Dfunction(){d("play")};b.pause=3Dfunction(){h(f.PAUSED);d("pause"= )};b.seek=3Dfunction(a){h(f.BUFFERING);b.sendEvent(c.JWPLAYER_MEDIA_SEEK,= {position:j.position,offset:a});d("seek",a)};b.audioMode=3Dfunction(){ret= urn = j.audioMode};b.sendCommand=3Dfunction(a,b){d(a,b)};b.detachMedia=3Dfuncti= on(){k.error("detachMedia called while casting");return = document.createElement("video")};b.attachMedia=3Dfunction(){k.error("atta= chMedia called while casting")};var = r;b.setContainer=3Dfunction(a){a.appendChild(l);r=3Da};b.getContainer=3D=0A= function(){return = r};b.remove=3Dfunction(){r.removeChild(l)};b.volume=3Db.mute=3Db.setContr= ols=3Db.setCurrentQuality=3Db.resize=3Db.seekDrag=3Db.addCaptions=3Db.res= etCaptions=3Db.setVisibility=3Db.fsCaptions=3Da.noop;b.setFullScreen=3Db.= getFullScreen=3Db.checkComplete=3De.constant(!1);b.getWidth=3Db.getHeight= =3Db.getCurrentQuality=3De.constant(0);b.getQualityLevels=3De.constant(["= Auto"])};a.css(".jwplayer = .jwcast-screen",{width:"100%",height:"100%"})})(window.jwplayer); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_009.js /** * jquery.als.js * http://als.musings.it=20 * jQuery plugin for list scrolling (any list with any content) * developed for http://www.musings.it and released as a freebie * =20 * animations: horizontal slide, vertical slide of lists * types of lists: images, texts, inserted as div or as ul - li *=20 * CONFIGURABLE PARAMETERS * visible_elements: number of visible elements of a list * scrolling_items: list scrolling step * orientation: list orientation ("horizontal" or "vertical") * circular: "yes" for infinite list scrolling, "no" on the contrary * autoscroll: "yes" for automatic scrolling, "no" on the contrary * interval: if autoscroll "yes" is the time interval between scrolling = movements * speed: speed of the scrolling movement (in msec) * easing: easing function to use for the scrolling movement ("swing" or = "linear") * direction: if autoscroll "yes" is the scrolling direction = ("left","right","up","down") * start_from: start the scroller from a specific item (default: 0, = first item) *=20 * CONFIGURATION EXAMPLE: * $("#lista").als({ * visible_items: 4, * scrolling_items: 2, * orientation: "horizontal", * circular: "yes", * autoscroll: "yes", * interval: 5000, * speed: 600, * easing: "linear",=20 * direction: "right", * start_from: 0 * }); *=20 * @author Federica Sibella * Copyright (c) 2012/14 Federica Sibella - musings(at)musings(dot)it | = http://www.musings.it * Released with double license MIT o GPLv3. * Date: 2014/09/17 * @version 1.7 *=20 * Changelog: * 2014.09.17: minor bug fixes on configuration controls and timeout = reset on click with autoscroll * 2014.06.17: minor bug fix on swipe control for non circular scrolling * 2014.05.21: minor bugs revisions: destroy method and touch controls = revisited * 2014.03.24: added swipe support for touch devices * 2014.02.01: minor bug fixes for height and width of cross-dimension = (w/ respect to ALS scrolling direction) * 2014.01.10: enhanced "destroy" method (no more instance ID needed); = scroll speed as setting; easing option as setting * 2013.04.11: added "start_from" option * 2013.09.04: enhanced "destroy" method based on single instance * 2013.09.13: fixed issue on initial viewport width if items widths are = different from each other and start_from !=3D 0 */ =20 (function($){ /********************************************************** * Variables: als (contains data of the current instance), * instance (number of the current instance), * methods (methods of als plugin) *********************************************************/ var als =3D [], instance =3D 0; var methods =3D { /****************************************************** * plugin inizialization * @param {Object} options: configuration options ******************************************************/ init: function(options) { this.each(function() { var defaults =3D { visible_items: 10, scrolling_items: 1, orientation: "horizontal", circular: "no", autoscroll: "no", interval: 4000, speed: 600, easing: "swing", direction: "left", start_from: 0 }, $obj =3D $(this), data =3D $obj.data("als"), $options =3D $(), $item =3D $(), $wrapper =3D $(), $viewport =3D $(), $prev =3D $(), $next =3D $(), num_items =3D 0, viewport_width =3D 0, wrapper_width =3D 0, viewport_height =3D 0, wrapper_height =3D 0, initial_movement =3D 0, maxHeight =3D 0, maxWidth =3D 0, i =3D 0, j =3D 0, current =3D 0, timer =3D 0, mm =3D {}; =09 mm.swipeTreshold =3D 100; mm.allowedTime =3D 300; =09 $options =3D $.extend(defaults, options); =09 = /********************************************************************* * configuration controls: autoscroll option implies * infinite circular scrolling = *********************************************************************/ if($options.circular =3D=3D "no" && $options.autoscroll =3D=3D = "yes") { $options.circular =3D "yes"; } =09 /************************************* * checking easing option *************************************/ if($options.easing !=3D "linear" || $options.easing !=3D "swing") { $options.easing =3D "swing"; } =09 = /************************************************************************= *********** * define ID for the different plugin section to name them directly = *************************************************************************= *********/ if(!$obj.attr("id") || $obj.attr("id") =3D=3D "") { $obj.attr("id","als-container_" + instance); } =09 $obj.attr("data-id","als-container_" + instance); $viewport =3D = $obj.find(".als-viewport").attr("data-id","als-viewport_" + instance); $wrapper =3D $obj.find(".als-wrapper").attr("data-id","als-wrapper_" = + instance); $item =3D $obj.find(".als-item"); num_items =3D $item.size(); = /************************************************************************= *************** * configuration controls: number of visible element can not be = higher than=20 * total number of list element and scrolling items can not be more * than visible items * start_from number can not be higher than total number of list = elements = *************************************************************************= **************/ if($options.visible_items > num_items) { $options.visible_items =3D num_items - 1; } =09 if($options.scrolling_items > $options.visible_items) { if($options.visible_items > 1) { $options.scrolling_items =3D $options.visible_items - 1; } else if($options.visible_items =3D=3D=3D 1) { $options.scrolling_items =3D $options.visible_items; }=20 } =09 if($options.start_from > num_items - $options.visible_items) { $options.start_from =3D 0; } =09 /****************************************************** * prev and next button inizialization (if present) ******************************************************/ $prev =3D $obj.find(".als-prev").attr("data-id","als-prev_" + = instance); $next =3D $obj.find(".als-next").attr("data-id","als-next_" + = instance); =09 = /********************************************************************* * relative to chosen orientation I calculate width and height * of the list wrapper (wrapper) and of the list viewport (viewport) * @param {Object} index: internal elements index = *********************************************************************/ switch($options.orientation) { case "horizontal": default: $item.each(function(index) { $(this).attr("id","als-item_" + instance + "_" + index); wrapper_width +=3D $(this).outerWidth(true); =09 if($(this).outerHeight(true) > maxHeight) { maxHeight =3D $(this).outerHeight(true); } =09 if(i < $options.visible_items) { if($options.start_from =3D=3D 0) { viewport_width +=3D $(this).outerWidth(true); i++; } else { if(index >=3D $options.start_from) { viewport_width +=3D $(this).outerWidth(true); i++; } } } =09 if($options.start_from !=3D 0) { if(j < $options.start_from) { initial_movement +=3D $(this).outerWidth(true); j++; } current =3D $options.start_from; } }); $wrapper.css("width", wrapper_width); $item.css("left", -initial_movement); $viewport.css("width", viewport_width); $wrapper.css("height", maxHeight); $viewport.css("height", maxHeight); =09 if($options.circular =3D=3D "yes" && $options.start_from !=3D 0) { /**************************************************** * must reset the hidden elements if start_from !=3D 0 ****************************************************/ for (r =3D 0; r < $options.start_from; r++) { var position =3D $item.last().position(), right_repos =3D position.left + $item.last().outerWidth(true); $item.eq(r).css("left", right_repos); }=09 } break; case "vertical": $item.each(function(index) { $(this).attr("id","als-item_" + instance + "_" + index); wrapper_height +=3D $(this).outerHeight(true); =09 if($(this).outerWidth(true) > maxWidth) { maxWidth =3D $(this).outerWidth(true); } =09 if(i < $options.visible_items) { if($options.start_from =3D=3D 0) { viewport_height +=3D $(this).outerHeight(true); i++; } else { if(index >=3D $options.start_from) { viewport_height +=3D $(this).outerHeight(true); i++; } } } =09 if($options.start_from !=3D 0) { if(j < $options.start_from) { initial_movement +=3D $(this).outerHeight(true); j++; } current =3D $options.start_from; } }); $wrapper.css("height", wrapper_height); $item.css("top", -initial_movement); $viewport.css("height", viewport_height); $wrapper.css("width", maxWidth); $viewport.css("width", maxWidth); =09 if($options.circular =3D=3D "yes" && $options.start_from !=3D 0) { /**************************************************** * must reset the hidden elements if start_from !=3D 0 ****************************************************/ for (r =3D 0; r < $options.start_from; r++) { var position =3D $item.last().position(), bottom_repos =3D position.top + $item.last().outerHeight(true); $item.eq(r).css("top", bottom_repos); }=09 } break } /************************************************** * if circular =3D=3D no don't show prev button * at the beginning but only if start_from =3D=3D 0 **************************************************/ if($options.circular =3D=3D "no") { if($options.start_from =3D=3D 0) { $prev.css("display","none"); } if($options.visible_items + $options.start_from =3D=3D num_items) { $next.css("display","none"); } } =09 =09 /****************************************** * prev and next buttons inizialization ******************************************/ $next.on("click touchstart touchend",nextHandle); $prev.on("click touchstart touchend",prevHandle); =09 =09 /***************************************** * initializing swipe-touch control *****************************************/ $viewport.on('touchstart', function(e) { if (e.originalEvent.touches =3D=3D undefined) { var touch =3D e; }=20 else { var touch =3D e.originalEvent.touches[0] || = e.originalEvent.changedTouches[0]; } mm.ox =3D touch.pageX; mm.oy =3D touch.pageY; mm.startTime =3D new Date().getTime(); }); =09 $viewport.on('touchmove', function(e) { });=09 =09 $viewport.on('touchend', function(e) { if (e.originalEvent.touches =3D=3D undefined) { var touch =3D e; }=20 else { var touch =3D e.originalEvent.touches[0] || = e.originalEvent.changedTouches[0]; } mm.dx =3D touch.pageX - mm.ox; mm.dy =3D touch.pageY - mm.oy; mm.endTime =3D new Date().getTime() - mm.startTime; =09 if($options.orientation =3D=3D "horizontal") { if(mm.dx < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { // can scroll forth on swipe only if circular or if start_from < = num_items if($options.circular =3D=3D "yes" || $options.visible_items + = $options.start_from < num_items) { nextHandle(e,$viewport); }=09 } else if(mm.dx > mm.swipeTreshold && mm.endTime < mm.allowedTime) { // can scroll back on swipe only if circular or if start_from > 0 if($options.circular =3D=3D "yes" || $options.start_from > 0) { prevHandle(e,$viewport); } } } else { if(mm.dy < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { // can scroll forth on swipe only if circular or if start_from < = num_items if($options.circular =3D=3D "yes" || $options.visible_items + = $options.start_from < num_items) { nextHandle(e,$viewport); } } else if(mm.dy > mm.swipeTreshold && mm.endTime < mm.allowedTime) { // can scroll back on swipe only if circular or if start_from > 0 if($options.circular =3D=3D "yes" || $options.start_from > 0) { prevHandle(e,$viewport); } } } }); =09 =09 /************************************************** * saving instance parameters in a variable (data) * for future use **************************************************/ $obj.data('als', { container : $obj, instance : instance, options : $options, viewport : $viewport, wrapper : $wrapper, prev : $prev, next : $next, item : $item, num_items : num_items, wrapper_width : wrapper_width, viewport_width : viewport_width, wrapper_height : wrapper_height, viewport_height : viewport_height, current : current, timer : timer, mm : mm }); =09 data =3D $obj.data('als'); als[instance] =3D data; =09 /********************************************* * automatic scrolling function inizialization * if it is the case *********************************************/ if($options.autoscroll =3D=3D "yes")=20 { $.fn.als('start',instance); $wrapper.hover(function() { $.fn.als('stop',$(this).attr("data-id")); },function() { $.fn.als('start',$(this).attr("data-id")); }); } else if($options.autoscroll =3D=3D "no")=20 { $.fn.als('stop',instance); } =09 /******************************************* * increasing instance number and * returning als variable now inizialized ******************************************/ instance++; return als; }); }, /***************************************************** * step function for lists elements * @param {Object} id: instance or ID of the element * that calls the function *****************************************************/ next: function(id){ id =3D find_instance(id); var data =3D als[id], mm =3D data.mm, k1 =3D 0, k2 =3D 0; /*************************************************** * depending on list orientation I calculate * the element horizontal or vertical movement ***************************************************/ switch(data.options.orientation) { /***************************************** * list orientation: horizontal ****************************************/ case "horizontal": default: var shift_left =3D 0, viewport_width =3D 0; /************************************************ * depending on scrolling type I calculate * the movement and the repositioning of the * list elements ************************************************/ switch(data.options.circular) { /**************************** * infinite scrolling: no ****************************/ case "no": default: = /******************************************************************** * I calculate the elements' movement on the basis of the = scrolling * items number starting from the current index = ********************************************************************/ for (k1 =3D data.current; k1 < data.current + = data.options.scrolling_items; k1++) { shift_left +=3D data.item.eq(k1).outerWidth(true); } =09 /**************************************************************** * I modify the current element on the basis of the scrolling * elements number = ****************************************************************/ data.current +=3D data.options.scrolling_items; =09 = /******************************************************************* * I calculate the viewport width on the basis of the width of = the * elements that will be visible AFTER the animation = *******************************************************************/ for (k2 =3D data.current; k2 < data.current + = data.options.visible_items; k2++)=20 { viewport_width +=3D data.item.eq(k2).outerWidth(true); } =09 /******************************************************** * I animate the viewport width ********************************************************/ data.viewport.animate({ "width": viewport_width }, data.options.speed, data.options.easing); =09 /********************************************** * I animate the scrolling elements *********************************************/ data.item.animate({ "left": "-=3D" + shift_left }, data.options.speed, data.options.easing); /*********************************************************** * after the animation of all elements has finished * (deferred object) ***********************************************************/ data.item.promise().done(function() { /**************************************************** * I bind again the "click" action to the prev * and next buttons (unbinded to prevent undesirable * behaviour during the scrolling animation) ***************************************************/ data.next.on("click touchstart touchend",nextHandle); data.prev.on("click touchstart touchend",prevHandle); data.viewport.on('touchend', function(e) { if (e.originalEvent.touches =3D=3D undefined) { var touch =3D e; }=20 else { var touch =3D e.originalEvent.touches[0] || = e.originalEvent.changedTouches[0]; } mm.dx =3D touch.pageX - mm.ox; mm.dy =3D touch.pageY - mm.oy; mm.endTime =3D new Date().getTime() - mm.startTime; =09 if(data.options.orientation =3D=3D "horizontal") { if(mm.dx < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { // scroll on swipe only of there are enough elements if (data.current + data.options.visible_items < = data.num_items) { nextHandle(e,data.viewport); } } else if(mm.dx > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { // scroll back on swipe only if there are enough elements if(data.current > 0) { prevHandle(e,data.viewport); } } } else { if(mm.dy < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { // scroll on swipe only of there are enough elements if (data.current + data.options.visible_items < = data.num_items) { nextHandle(e,data.viewport); } } else if(mm.dy > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { // scroll back on swipe only if there are enough elements if(data.current > 0) { prevHandle(e,data.viewport); } } } }); }); /********************************************************** * visibility control of the prev and next buttons **********************************************************/ if(data.current > 0) { data.prev.show(); } =09 if (data.current + data.options.visible_items >=3D = data.num_items)=20 { data.next.hide(); } break; /**************************** * infinite scrolling: yes ***************************/ case "yes": var memo =3D 0, memo_index =3D []; = /************************************************************************= ** * I calculate displacement and memorize indices of the elements = that=20 * I have to move because they will be then repositioned in the = queue = *************************************************************************= */ for (k1 =3D data.current; k1 < data.current + = data.options.scrolling_items; k1++) { var k3 =3D k1; /****************************************************** * I control if I exceed the total number of elements ******************************************************/ if(k1 >=3D data.num_items) { k3 =3D k1 - data.num_items; } shift_left +=3D data.item.eq(k3).outerWidth(true); memo_index[memo]=3D k3; memo ++; } /**************************************************************** * edit current element as a function of the number of elements=20 * to slide in a single step = ****************************************************************/ data.current +=3D data.options.scrolling_items; =09 /****************************************************** * I control if I exceed the total number of elements ******************************************************/ if(data.current >=3D data.num_items) { data.current -=3D data.num_items; } = /*********************************************************************** * calculating the extent of the viewport based on the items that = * will be visible after scrolling = ***********************************************************************/ for (k2 =3D data.current; k2 < data.current + = data.options.visible_items; k2++)=20 { var k4 =3D k2; /***************************************************** * I control if I exceed the total number of elements *****************************************************/ if(k2 >=3D data.num_items) { k4 =3D k2 - data.num_items; } viewport_width +=3D data.item.eq(k4).outerWidth(true); } =09 /****************************************************** * viewport width animation ******************************************************/=09 data.viewport.animate({ "width": viewport_width }, data.options.speed, data.options.easing); =09 = /****************************************************************** * scrolling animation of elements and repositioning of elements=20 * stored in the queue = *****************************************************************/ data.item.animate({ "left": "-=3D" + shift_left }, data.options.speed, data.options.easing); /*********************************************************** * once the animation of all the elements has finished * (deferred object) ***********************************************************/ data.item.promise().done(function() { = /************************************************************************= **** * repositioning is calculated based on the location of the last = element of=20 * the list, double check if I have to move the first element = *************************************************************************= ***/ var position =3D data.item.last().position(), right_repos =3D position.left + = data.item.last().outerWidth(true); for(k5 =3D 0; k5 < memo_index.length; k5++) { if(memo_index[k5] =3D=3D 0) { var position =3D data.item.last().position(), right_repos =3D position.left + = data.item.last().outerWidth(true); } data.item.eq(memo_index[k5]).css("left", right_repos); } /********************************************* * re bind buttons "click" event that have=20 * been detached from the handle to handle=20 * properly the time of animation ********************************************/ data.next.on("click touchstart touchend",nextHandle); data.prev.on("click touchstart touchend",prevHandle); data.viewport.on('touchend', function(e) { if (e.originalEvent.touches =3D=3D undefined) { var touch =3D e; }=20 else { var touch =3D e.originalEvent.touches[0] || = e.originalEvent.changedTouches[0]; } mm.dx =3D touch.pageX - mm.ox; mm.dy =3D touch.pageY - mm.oy; mm.endTime =3D new Date().getTime() - mm.startTime; =09 if(data.options.orientation =3D=3D "horizontal") { if(mm.dx < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { nextHandle(e,data.viewport); } else if(mm.dx > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { prevHandle(e,data.viewport); } } else { if(mm.dy < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { nextHandle(e,data.viewport); } else if(mm.dy > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { prevHandle(e,data.viewport); } } }); }); break; } break; =09 /************************************** * list orientation: vertical **************************************/ case "vertical": var shift_top =3D 0, viewport_height =3D 0; /************************************************ * depending on the type of sliding I calcule=20 * the displacement and the repositioning of the=20 * elements of the list ************************************************/=09 switch(data.options.circular) { /**************************** * infinite scrolling: no ***************************/ case "no": default: = /******************************************************************** * displacement calculation based on the number of elements to=20 * slide in a single step = ********************************************************************/ for (k1 =3D data.current; k1 < = data.current+data.options.scrolling_items; k1++) { shift_top +=3D data.item.eq(k1).outerHeight(true); } =09 /**************************************************************** * I edit element current as a function of the number of elements = * to slide in a single step = ****************************************************************/ data.current +=3D data.options.scrolling_items; =09 = /*********************************************************************** * calculating the width of the viewport on the basis of the = visible=20 * elements AFTER the sliding animation = ***********************************************************************/ for (k2 =3D data.current; k2 < data.current + = data.options.visible_items; k2++) { viewport_height +=3D data.item.eq(k2).outerHeight(true); } =09 /*************************************************** * I animate the viewport width ***************************************************/ data.viewport.animate({ "height": viewport_height }, data.options.speed, data.options.easing); /**************************************** * I animate the elements scrolling ****************************************/ data.item.animate({ "top": "-=3D" + shift_top }, data.options.speed, data.options.easing); /********************************************************** * once the animation of all the elements has finished * (deferred object) **********************************************************/ data.item.promise().done(function() { /********************************************* * re bind buttons "click" event that has=20 * been detached from the handle to handle=20 * properly the time of animation ********************************************/ data.next.on("click touchstart touchend",nextHandle); data.prev.on("click touchstart touchend",prevHandle); data.viewport.on('touchend', function(e) { if (e.originalEvent.touches =3D=3D undefined) { var touch =3D e; }=20 else { var touch =3D e.originalEvent.touches[0] || = e.originalEvent.changedTouches[0]; } mm.dx =3D touch.pageX - mm.ox; mm.dy =3D touch.pageY - mm.oy; mm.endTime =3D new Date().getTime() - mm.startTime; =09 if(data.options.orientation =3D=3D "horizontal") { if(mm.dx < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { // scroll on swipe only of there are enough elements if (data.current + data.options.visible_items < = data.num_items) { nextHandle(e,data.viewport); } } else if(mm.dx > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { // scroll back on swipe only if there are enough elements if(data.current > 0) { prevHandle(e,data.viewport); } } } else { if(mm.dy < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { // scroll on swipe only of there are enough elements if (data.current + data.options.visible_items < = data.num_items) { nextHandle(e,data.viewport); } } else if(mm.dy > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { // scroll back on swipe only if there are enough elements if(data.current > 0) { prevHandle(e,data.viewport); } } } }); }); =09 /**************************************************** * control visibility of the scroll buttons on=20 * the basis of the current element ****************************************************/ if(data.current > 0) { data.prev.show(); } =09 if (data.current + data.options.visible_items >=3D = data.num_items)=20 { data.next.hide(); } break; /**************************** * infinite scrolling: yes ****************************/ case "yes": var memo =3D 0, memo_index =3D []; /**************************************************************** * displacement calculation based on the number of elements to=20 * slide in a single step and memorization of items to reposition = ****************************************************************/ for (k1 =3D data.current; k1 < data.current + = data.options.scrolling_items; k1++) { var k3 =3D k1; /********************************************** * control that the index does not exceed the=20 * total number of the elements *********************************************/ if(k1 >=3D data.num_items) { k3 =3D k1 - data.num_items; } shift_top +=3D data.item.eq(k3).outerHeight(true); memo_index[memo]=3D k3; memo ++; } /**************************************************************** * edit current element on the basis of the number of elements=20 * to slide in a single step = ****************************************************************/ data.current +=3D data.options.scrolling_items; =09 /************************************************* * control that the index does not exceed the=20 * total number of the elements ************************************************/ if(data.current >=3D data.num_items) { data.current -=3D data.num_items; } =09 = /************************************************************************= ****** * calculating the width of viewport on the basis of the visible = elements=20 * AFTER the scrolling = *************************************************************************= *****/ for (k2 =3D data.current; k2 < data.current + = data.options.visible_items; k2++)=20 { var k4 =3D k2; /********************************************** * control that the index does not exceed the=20 * total number of the elements *********************************************/ if(k2 >=3D data.num_items) { k4 =3D k2 - data.num_items; } viewport_height +=3D data.item.eq(k4).outerHeight(true); } /************************************************* * I animate the viewport width *************************************************/ data.viewport.animate({ "height": viewport_height }); =09 /**************************************************************** * I animate the elements and reposition those previously stored ***************************************************************/ data.item.animate({ "top": "-=3D" + shift_top }); /************************************************************ * once all the elements' animations has finished * (deferred object) ***********************************************************/ data.item.promise().done(function() { = /************************************************************************= * repositioning is calculated based on the location of the last = element=20 * of the list. Take care to the repositioning of the first = element=20 * that needs to be recalculated AFTER the last was eventually = relocated = ************************************************************************/= var position =3D data.item.last().position(), bottom_repos =3D position.top + = data.item.last().outerHeight(true); for(k5 =3D 0; k5 < memo_index.length; k5++) { if(memo_index[k5] =3D=3D 0) { var position =3D data.item.last().position(), bottom_repos =3D position.top + = data.item.last().outerHeight(true); } data.item.eq(memo_index[k5]).css("top", bottom_repos); } /********************************************* * re bind buttons "click" event that has=20 * been detached from the handle to handle=20 * properly the time of animation ********************************************/ data.next.on("click touchstart touchend",nextHandle); data.prev.on("click touchstart touchend",prevHandle); data.viewport.on('touchend', function(e) { if (e.originalEvent.touches =3D=3D undefined) { var touch =3D e; }=20 else { var touch =3D e.originalEvent.touches[0] || = e.originalEvent.changedTouches[0]; } mm.dx =3D touch.pageX - mm.ox; mm.dy =3D touch.pageY - mm.oy; mm.endTime =3D new Date().getTime() - mm.startTime; =09 if(data.options.orientation =3D=3D "horizontal") { if(mm.dx < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { nextHandle(e,data.viewport); } else if(mm.dx > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { prevHandle(e,data.viewport); } } else { if(mm.dy < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { nextHandle(e,data.viewport); } else if(mm.dy > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { prevHandle(e,data.viewport); } } }); }); break; } break; } =09 /************************************ * save the data in als instance and * return als object ***********************************/ als[id] =3D data; return als; }, /***************************************************** * sliding back function of the list elements * @param {Object} id: instance or ID of the element * that calls the function *****************************************************/ prev: function(id){ id =3D find_instance(id); var data =3D als[id], mm =3D data.mm, k1 =3D 0, k2 =3D 0; /*************************************************** * depending on the orientation of the list I=20 * calculate the horizontal or vertical displacement * of the elements ***************************************************/ switch(data.options.orientation) { /*************************** * horizontal orientation=20 ***************************/ case "horizontal": default: var shift_right =3D 0, viewport_width =3D 0; /****************************************************=09 * depending on the type of scroll (circular or not)=20 * I calculate the displacement and the possible=20 * repositioning of the elements of the list ****************************************************/ switch(data.options.circular) { /***************************** * circular scrolling: no *****************************/ case "no": default: /*************************************************************** * edit the current item index as a function of the elements to=20 * slide in a single step: edit right away so that you can do=20 * the next steps "forward" ***************************************************************/ data.current -=3D data.options.scrolling_items; =09 = /******************************************************************* * calculating the displacement of the elements according to the=20 * number of elements to slide in a single step = *******************************************************************/ for (k1 =3D data.current; k1 < = data.current+data.options.scrolling_items; k1++) { shift_right +=3D data.item.eq(k1).outerWidth(true); } =09 = /************************************************************************= ****** * calculation of the viewport width on the basis of the visible = elements=20 * AFTER the scrolling (on the basis of their width) = *************************************************************************= *****/ for (k2 =3D data.current; k2 < data.current + = data.options.visible_items; k2++)=20 { viewport_width +=3D data.item.eq(k2).outerWidth(true); } /************************************************* * animating the viewport width *************************************************/ data.viewport.animate({ "width": viewport_width }); /********************************** * animating elements scrolling **********************************/ data.item.animate({ "left": "+=3D" + shift_right }, data.options.speed, data.options.easing); /*********************************************************** * once all animations have finished * (deferred object) ***********************************************************/ data.item.promise().done(function() { /********************************************* * re bind buttons "click" event that have=20 * been detached from the handle to manage=20 * properly the time of animation ********************************************/ data.next.on("click touchstart touchend",nextHandle); data.prev.on("click touchstart touchend",prevHandle); data.viewport.on('touchend', function(e) { if (e.originalEvent.touches =3D=3D undefined) { var touch =3D e; }=20 else { var touch =3D e.originalEvent.touches[0] || = e.originalEvent.changedTouches[0]; } mm.dx =3D touch.pageX - mm.ox; mm.dy =3D touch.pageY - mm.oy; mm.endTime =3D new Date().getTime() - mm.startTime; =09 if(data.options.orientation =3D=3D "horizontal") { if(mm.dx < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { // scroll on swipe only of there are enough elements if (data.current + data.options.visible_items < = data.num_items) { nextHandle(e,data.viewport); } } else if(mm.dx > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { // scroll back on swipe only if there are enough elements if(data.current > 0) { prevHandle(e,data.viewport); } } } else { if(mm.dy < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { // scroll on swipe only of there are enough elements if (data.current + data.options.visible_items < = data.num_items) { nextHandle(e,data.viewport); } } else if(mm.dy > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { // scroll back on swipe only if there are enough elements if(data.current > 0) { prevHandle(e,data.viewport); } } } }); }); =09 /********************************************************** * control visibility of the scroll buttons **********************************************************/ if(data.current <=3D 0) { data.prev.hide(); } if (data.current + data.options.visible_items < data.num_items)=20 { data.next.show(); } break; /***************************** * circular scrolling: yes *****************************/ case "yes": var memo =3D 0, memo_index =3D []; /*************************************************************** * edit the current item index as a function of the elements=20 * to slide in a single step: edit right away so that we can do=20 * the next steps "forward" ***************************************************************/ data.current -=3D data.options.scrolling_items; /************************************************** * check if the current element has not index < 0 **************************************************/ if(data.current < 0) { data.current +=3D data.num_items; } /**************************************************************** * displacement calculation based on the elements to slide in a=20 * single step and memorization of the items to reposition = ****************************************************************/ for (k1 =3D data.current; k1 < data.current + = data.options.scrolling_items; k1++) { var k3 =3D k1; /********************************************** * control that the index does not exceed the=20 * total number of the elements *********************************************/ if(k1 >=3D data.num_items) { k3 =3D k1 - data.num_items; } shift_right +=3D data.item.eq(k3).outerWidth(true); memo_index[memo]=3D k3; =09 memo ++; } = /************************************************************************= ****** * calculating the width of the viewport on the basis of the=20 * visible elements AFTER the scrolling = *************************************************************************= *****/ for (k2 =3D data.current; k2 < data.current + = data.options.visible_items; k2++)=20 { var k4 =3D k2; /********************************************** * control that the index does not exceed the=20 * total number of the elements *********************************************/ if(k2 >=3D data.num_items) { k4 =3D k2 - data.num_items; } viewport_width +=3D data.item.eq(k4).outerWidth(true); } = /************************************************************************= * repositioning is calculated based on the location of the first = element=20 * of the list. Special care to the repositioning of the last = element=20 * that needs to be recalculated AFTER the first was eventually = relocated = ************************************************************************/= var position =3D data.item.first().position(), left_repos =3D position.left - data.wrapper_width; for(k5 =3D 0; k5 < memo_index.length; k5++) { data.item.eq(memo_index[k5]).css("left", left_repos); if(memo_index[k5] =3D=3D 0) { var position0 =3D data.item.eq(0).position(), new_left_repos =3D position0.left - data.wrapper_width; for(k6 =3D 0; k6 < k5; k6++) { data.item.eq(memo_index[k6]).css("left", new_left_repos); }=09 } } /************************************************************ * timeout of 200ms is necessary to wait before making the=20 * scrolling animation, otherwise we can not properly manage=20 * the repositioning of the list elements ************************************************************/ setTimeout(function()=20 { /**************************************** * viewport width animation ****************************************/ data.viewport.animate({ "width": viewport_width }); /******************************* * list elements animation *******************************/ data.item.animate({ "left": "+=3D" + shift_right }, data.options.speed, data.options.easing); /********************************************************** * once all elements animations have finished * (deferred object) **********************************************************/ data.item.promise().done(function() { /********************************************* * re bind buttons "click" event that have=20 * been detached from the handle to manage=20 * properly the time of animation ********************************************/ data.next.on("click touchstart touchend",nextHandle); data.prev.on("click touchstart touchend",prevHandle); data.viewport.on('touchend', function(e) { if (e.originalEvent.touches =3D=3D undefined) { var touch =3D e; }=20 else { var touch =3D e.originalEvent.touches[0] || = e.originalEvent.changedTouches[0]; } mm.dx =3D touch.pageX - mm.ox; mm.dy =3D touch.pageY - mm.oy; mm.endTime =3D new Date().getTime() - mm.startTime; =09 if(data.options.orientation =3D=3D "horizontal") { if(mm.dx < -mm.swipeTreshold && mm.endTime < mm.allowedTime) = { nextHandle(e,data.viewport); } else if(mm.dx > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { prevHandle(e,data.viewport); } } else { if(mm.dy < -mm.swipeTreshold && mm.endTime < mm.allowedTime) = { nextHandle(e,data.viewport); } else if(mm.dy > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { prevHandle(e,data.viewport); } } }); }); }, 200); break; }=09 break; /************************* * vertical orientation ************************/ case "vertical": var shift_bottom =3D 0, viewport_height =3D 0; =09 switch(data.options.circular) { /***************************** * circular scrolling: no ****************************/ case "no": default: /*************************************************************** * edit the current item index as a function of the elements to=20 * slide in a single step: edit right away so that we can do=20 * the next steps "forward" ***************************************************************/ data.current -=3D data.options.scrolling_items; /**************************************************************** * displacement calculation based on the elements to slide=20 * in a single step = ****************************************************************/ for (k1 =3D data.current; k1 < = data.current+data.options.scrolling_items; k1++) { shift_bottom +=3D data.item.eq(k1).outerHeight(true); } = /************************************************************************= ****** * calculating the width of the viewport on the basis of the = visible elements=20 * AFTER the scrolling = *************************************************************************= *****/ for (k2 =3D data.current; k2 < data.current + = data.options.visible_items; k2++)=20 { viewport_height +=3D data.item.eq(k2).outerHeight(true); } /*********************************************** * viewport width animation **********************************************/ data.viewport.animate({ "height": viewport_height }); /***************************************** * list elements scrolling animation *****************************************/ data.item.animate({ "top": "+=3D" + shift_bottom }, data.options.speed, data.options.easing); /********************************************************** * once all elemets animations have finished * (deferred object) **********************************************************/ data.item.promise().done(function() { /********************************************* * re bind buttons "click" event that have=20 * been detached from the handle to manage=20 * properly the time of animation ********************************************/ data.next.on("click touchstart touchend",nextHandle); data.prev.on("click touchstart touchend",prevHandle); data.viewport.on('touchend', function(e) { if (e.originalEvent.touches =3D=3D undefined) { var touch =3D e; }=20 else { var touch =3D e.originalEvent.touches[0] || = e.originalEvent.changedTouches[0]; } mm.dx =3D touch.pageX - mm.ox; mm.dy =3D touch.pageY - mm.oy; mm.endTime =3D new Date().getTime() - mm.startTime; =09 if(data.options.orientation =3D=3D "horizontal") { if(mm.dx < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { // scroll on swipe only of there are enough elements if (data.current + data.options.visible_items < = data.num_items) { nextHandle(e,data.viewport); } } else if(mm.dx > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { // scroll back on swipe only if there are enough elements if(data.current > 0) { prevHandle(e,data.viewport); } } } else { if(mm.dy < -mm.swipeTreshold && mm.endTime < mm.allowedTime) { // scroll on swipe only of there are enough elements if (data.current + data.options.visible_items < = data.num_items) { nextHandle(e,data.viewport); } } else if(mm.dy > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { // scroll back on swipe only if there are enough elements if(data.current > 0) { prevHandle(e,data.viewport); } } } }); }); /*********************************************************** * management of visibility of forward and backward buttons **********************************************************/ if(data.current <=3D 0) { data.prev.hide(); } if (data.current + data.options.visible_items < data.num_items)=20 { data.next.show(); } break; case "yes": /***************************** * circular scrolling: yes *****************************/ var memo =3D 0, memo_index =3D []; /*************************************************************** * edit the current item index as a function of the elements to=20 * slide in a single step: edit right away so that we can do=20 * the next steps "forward" ***************************************************************/ data.current -=3D data.options.scrolling_items; /********************************************************* * control that the current element has not index < 0 *********************************************************/ if(data.current < 0) { data.current +=3D data.num_items; } = /******************************************************************** * displacement calculation based on the elements to slide in a=20 * single step and memorization of those that have to be = repositioned * later = ********************************************************************/ for (k1 =3D data.current; k1 < data.current + = data.options.scrolling_items; k1++) { var k3 =3D k1; /*********************************************** * control that the index does not exceed the=20 * total number of the elements ***********************************************/ if(k1 >=3D data.num_items) { k3 =3D k1 - data.num_items; } shift_bottom +=3D data.item.eq(k3).outerHeight(true); memo_index[memo]=3D k3; =09 memo ++; } = /************************************************************************= ****** * calculating the width of the viewport on the basis of the = visible elements=20 * AFTER the scrolling = *************************************************************************= *****/ for (k2 =3D data.current; k2 < data.current + = data.options.visible_items; k2++)=20 { var k4 =3D k2; /*********************************************** * control that the index does not exceed the=20 * total number of the elements ***********************************************/ if(k2 >=3D data.num_items) { k4 =3D k2 - data.num_items; } viewport_height +=3D data.item.eq(k4).outerHeight(true); } = /************************************************************************= * repositioning is calculated based on the location of the first = element=20 * of the list. Special care to the repositioning of the last = element=20 * that needs to be recalculated AFTER the first was eventually = relocated = ************************************************************************/= var position =3D data.item.first().position(), top_repos =3D position.top - data.wrapper_height; =09 for(k5 =3D 0; k5 < memo_index.length; k5++) { data.item.eq(memo_index[k5]).css("top", top_repos); if(memo_index[k5] =3D=3D 0) { var position0 =3D data.item.eq(0).position(), new_top_repos =3D position0.top - data.wrapper_height; for(k6 =3D 0; k6 < k5; k6++) { data.item.eq(memo_index[k6]).css("top", new_top_repos); }=09 } }=09 /************************************************************ * timeout of 200ms is necessary to wait before making the=20 * scrolling animation, otherwise we can not properly manage=20 * the repositioning of the list elements ************************************************************/ setTimeout(function() { /********************************************* * viewport width animation *********************************************/ data.viewport.animate({ "height": viewport_height }, data.options.speed, data.options.easing); /************************************ * list elements scrolling animation ***********************************/ data.item.animate({ "top": "+=3D" + shift_bottom }, data.options.speed, data.options.easing); /*********************************************************** * once all elements animations have finished * (deferred object) **********************************************************/ data.item.promise().done(function() { /********************************************* * re bind buttons "click" event that have=20 * been detached from the handle to manage=20 * properly the time of animation ********************************************/ data.next.on("click touchstart touchend",nextHandle); data.prev.on("click touchstart touchend",prevHandle); data.viewport.on('touchend', function(e) { if (e.originalEvent.touches =3D=3D undefined) { var touch =3D e; }=20 else { var touch =3D e.originalEvent.touches[0] || = e.originalEvent.changedTouches[0]; } mm.dx =3D touch.pageX - mm.ox; mm.dy =3D touch.pageY - mm.oy; mm.endTime =3D new Date().getTime() - mm.startTime; =09 if(data.options.orientation =3D=3D "horizontal") { if(mm.dx < -mm.swipeTreshold && mm.endTime < mm.allowedTime) = { nextHandle(e,data.viewport); } else if(mm.dx > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { prevHandle(e,data.viewport); } } else { if(mm.dy < -mm.swipeTreshold && mm.endTime < mm.allowedTime) = { nextHandle(e,data.viewport); } else if(mm.dy > mm.swipeTreshold && mm.endTime < = mm.allowedTime) { prevHandle(e,data.viewport); } } }); }); }, 200); break; } break; } /************************************ * saving als instance data and * returning als object ***********************************/ als[id] =3D data; return als; }, /************************************************************** * start function for automatic scrolling * @param {Object} id: instance or ID of the element that has * called the function **************************************************************/=20 start: function(id) { id =3D find_instance(id); var data =3D als[id]; /********************************************************** * stopping any previous automatic scrolling *********************************************************/ if(data.timer !=3D 0) { clearInterval(data.timer); } /************************************ * depending on the direction you=20 * choose automatic scrolling begins ***********************************/ switch(data.options.direction) { /************************************************ * if left or up (that means "forward") ************************************************/ case "left": case "up": default: /************************************ * detachment from the handler buttons=20 * and the animation forward start=20 * (next function) ************************************/ data.timer =3D setInterval(function(){ data.next.off(); data.prev.off(); data.viewport.off("touchend"); $.fn.als('next',id); },data.options.interval); break; /*************************************************** * if right or down (that means "backward") ***************************************************/ case "right": case "down": /************************************ * detachment from the handler buttons=20 * and the animation forward start=20 * (prev function) ************************************/ data.timer =3D setInterval(function(){ data.prev.off(); data.next.off(); data.viewport.off("touchend"); $.fn.als('prev',id); },data.options.interval); break; } /************************************ * saving als instance data and * returning als object ***********************************/ als[id] =3D data; return als; }, /************************************************************** * stop function for automatic scrolling * @param {Object} id: instance or ID of the element that * called the function **************************************************************/=20 stop: function(id) { id =3D find_instance(id); =20 var data =3D als[id]; /******************************** * stop autoscrolling *******************************/ clearInterval(data.timer); /************************************ * saving data into als instance * and returning als object ***********************************/ als[id] =3D data; return als; }, /************************************** * function that destroys als instance **************************************/ destroy: function() { id =3D find_instance($(this).attr("data-id")); =20 var data =3D als[id]; data.prev.off(); data.next.off(); data.viewport.off(); $.fn.als("stop",id); $.removeData(data, "als"); this.unbind(); this.element =3D null; } =20 } =09 /************************** ************************** * service functions **************************=20 **************************/ =09 /******************************************************************** * function to find the current plugin instance * @param {Object} id: plugin instance od ID of the element that * called the plugin ********************************************************************/ function find_instance(id) { if(typeof(id) =3D=3D=3D "string") { var position =3D id.indexOf("_");=09 if(position !=3D -1) { id =3D id.substr(position+1); =20 } } return id } =09 /**************************************************** * function that manages "click" action on next button * @param e event, $obj object ***************************************************/ function nextHandle(e,$obj) { e.preventDefault(); if($obj =3D=3D=3D undefined) $obj =3D $(this); var id =3D find_instance($obj.attr("data-id")), data =3D als[id]; /********************************************* * unbinding next and prev buttons so that * they don't interfere with current animation ********************************************/ data.next.off(); data.prev.off(); data.viewport.off("touchend"); if(data.options.autoscroll =3D=3D=3D "yes") { $.fn.als("stop",id); } /******************************************** * calling next function on this instance ********************************************/ $.fn.als("next",id); if(data.options.autoscroll =3D=3D=3D "yes") { $.fn.als("start",id); } } =09 /****************************************************** * function that manages "click" action on prev button * @param e event, $obj object ******************************************************/ function prevHandle(e,$obj) { e.preventDefault(); if($obj =3D=3D=3D undefined) $obj =3D $(this); var id =3D find_instance($obj.attr("data-id")), data =3D als[id]; /*********************************************** * unbinding next and prev buttons so that * they don't interfere with current animation **********************************************/=09 data.prev.off(); data.next.off(); data.viewport.off("touchend"); if(data.options.autoscroll =3D=3D=3D "yes") { $.fn.als("stop",id); } /********************************************* * calling prev function on this instance *********************************************/ $.fn.als("prev",id); if(data.options.autoscroll =3D=3D=3D "yes") { $.fn.als("start",id); } } =09 /******************************************************************** * function that generates the plugin and instantiates its methods * @param {Object} method *******************************************************************/ $.fn.als =3D function( method )=20 { if ( methods[method] )=20 { return methods[ method ].apply( this, Array.prototype.slice.call( = arguments, 1 )); }=20 else if ( typeof method =3D=3D=3D 'object' || ! method )=20 { return methods.init.apply( this, arguments ); }=20 else=20 { $.error( 'Method ' + method + ' does not exist on jQuery.als' ); } }; =09 })(jQuery); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_013.js =EF=BB=BF/*=0A= jQuery zAccordion Plugin v2.1.0=0A= Copyright (c) 2010 - 2012 Nate Armagost, = http://www.armagost.com/zaccordion=0A= Permission is hereby granted, free of charge, to any person obtaining a = copy of this software and associated documentation files (the = "Software"), to deal in the Software without restriction, including = without limitation the rights to use, copy, modify, merge, publish, = distribute, sublicense, and/or sell copies of the Software, and to = permit persons to whom the Software is furnished to do so, subject to = the following conditions:=0A= The above copyright notice and this permission notice shall be included = in all copies or substantial portions of the Software.=0A= THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS = OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF = MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. = IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY = CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, = TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE = SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.=0A= */=0A= (function ($) {=0A= "use strict";=0A= $.fn.zAccordion =3D function (method) {=0A= var defaults =3D {=0A= timeout: 6000, /* Time between each slide (in ms). */=0A= width: null, /* Width of the container. This option is required. */=0A= slideWidth: null, /* Width of each slide in pixels or width of each = slide compared to a 100% container. */=0A= tabWidth: null, /* Width of each slide's "tab" (when clicked it opens = the slide) or width of each tab compared to a 100% container. */=0A= height: null, /* Height of the container. This option is required. */=0A= startingSlide: 0, /* Zero-based index of which slide should be = displayed. */=0A= slideClass: null, /* Class prefix of each slide. If left null, no = classes will be set. */=0A= easing: null, /* Easing method. */=0A= speed: 1200, /* Speed of the slide transition (in ms). */=0A= auto: true, /* Whether or not the slideshow should play = automatically. */=0A= trigger: "click", /* Event type that will bind to the "tab" (click, = mouseover, etc.). */=0A= pause: true, /* Pause on hover. */=0A= invert: false, /* Whether or not to invert the slideshow, so the last = slide stays in the same position, rather than the first slide. */=0A= animationStart: function () {}, /* Function called when animation = starts. */=0A= animationComplete: function () {}, /* Function called when animation = completes. */=0A= buildComplete: function () {}, /* Function called after the accordion = is finished building. */=0A= errors: false /* Display zAccordion specific errors. */=0A= }, helpers =3D {=0A= displayError: function (msg, e) {=0A= if (window.console && e) {=0A= console.log("zAccordion: " + msg + ".");=0A= }=0A= },=0A= findChildElements: function (t) { /* Function to find the number of = child elements. */=0A= if (t.children().get(0) =3D=3D=3D undefined) {=0A= return false;=0A= } else {=0A= return true;=0A= }=0A= },=0A= getNext: function (s, c) { /* Returns the 0-index of the next slide. = */=0A= var next =3D c + 1;=0A= if (next >=3D s) {=0A= next =3D 0;=0A= }=0A= return next;=0A= },=0A= fixHeight: function (o) {=0A= if ((o.height =3D=3D=3D null) && (o.slideHeight !=3D=3D undefined)) = { /* Removed slideHeight. */=0A= o.height =3D o.slideHeight;=0A= return true;=0A= } else if ((o.height !=3D=3D null) && (o.slideHeight =3D=3D=3D = undefined)) {=0A= return true;=0A= } else if ((o.height =3D=3D=3D null) && (o.slideHeight =3D=3D=3D = undefined)) {=0A= return false;=0A= }=0A= },=0A= getUnits: function (o) {=0A= if (o !=3D=3D null) {=0A= if (o.toString().indexOf("%") > -1) {=0A= return "%";=0A= } else if (o.toString().indexOf("px") > -1) {=0A= return "px";=0A= } else {=0A= return "px";=0A= }=0A= }=0A= },=0A= toInteger: function (o) {=0A= if (o !=3D=3D null) {=0A= return parseInt(o, 10);=0A= }=0A= },=0A= sizeAccordion: function (t, o) { /* Calculate the sizes of the tabs = and slides */=0A= if ((o.width =3D=3D=3D undefined) && (o.slideWidth =3D=3D=3D = undefined) && (o.tabWidth =3D=3D=3D undefined)) {=0A= /* Nothing is defined. */=0A= helpers.displayError("width must be defined", o.errors);=0A= return false;=0A= } else if ((o.width !=3D=3D undefined) && (o.slideWidth =3D=3D=3D = undefined) && (o.tabWidth =3D=3D=3D undefined)) {=0A= /* Only width is defined. */=0A= /* Check for errors. */=0A= if ((o.width > 100) && (o.widthUnits =3D=3D=3D "%")) { /* Check for = a width percentage of over 100. */=0A= helpers.displayError("width cannot be over 100%", o.errors);=0A= return false;=0A= } else {=0A= o.slideWidthUnits =3D o.widthUnits;=0A= o.tabWidthUnits =3D o.widthUnits;=0A= if (o.widthUnits =3D=3D=3D "%") { /* Percentages. */=0A= o.tabWidth =3D 100 / (t.children().size() + 1); /* Use 100% = instead of the defined width. */=0A= o.slideWidth =3D 100 - ((t.children().size() - 1) * o.tabWidth);=0A= } else { /* Pixels. */=0A= o.tabWidth =3D o.width / (t.children().size() + 1);=0A= o.slideWidth =3D o.width - ((t.children().size() - 1) * = o.tabWidth);=0A= }=0A= return true;=0A= }=0A= } else if ((o.width =3D=3D=3D undefined) && (o.slideWidth !=3D=3D = undefined) && (o.tabWidth =3D=3D=3D undefined)) {=0A= /* Only slideWidth is defined. */=0A= helpers.displayError("width must be defined", o.errors);=0A= return false;=0A= } else if ((o.width =3D=3D=3D undefined) && (o.slideWidth =3D=3D=3D = undefined) && (o.tabWidth !=3D=3D undefined)) {=0A= /* Only tabWidth is defined. */=0A= helpers.displayError("width must be defined", o.errors);=0A= return false;=0A= } else if ((o.width !=3D=3D undefined) && (o.slideWidth =3D=3D=3D = undefined) && (o.tabWidth !=3D=3D undefined)) {=0A= /* width and tabWidth defined. */=0A= /* Check for errors */=0A= if (o.widthUnits !=3D=3D o.tabWidthUnits) {=0A= helpers.displayError("Units do not match", o.errors);=0A= return false;=0A= } else if ((o.width > 100) && (o.widthUnits =3D=3D=3D "%")) {=0A= helpers.displayError("width cannot be over 100%", o.errors);=0A= return false;=0A= } else if ((((t.children().size() * o.tabWidth) > 100) && = (o.widthUnits =3D=3D=3D "%")) || (((t.children().size() * o.tabWidth) > = o.width) && (o.widthUnits =3D=3D=3D "px"))) {=0A= helpers.displayError("tabWidth too large for accordion", o.errors);=0A= return false;=0A= } else {=0A= /* Need to define the remaining slideWidth */=0A= o.slideWidthUnits =3D o.widthUnits; /* Set the units to be = consistent */=0A= if (o.widthUnits =3D=3D=3D "%") { /* Percentages */=0A= o.slideWidth =3D 100 - ((t.children().size() - 1) * o.tabWidth); = /* Use 100% instead of the defined width */=0A= } else { /* Pixels */=0A= o.slideWidth =3D o.width - ((t.children().size() - 1) * = o.tabWidth);=0A= }=0A= return true;=0A= }=0A= } else if ((o.width !=3D=3D undefined) && (o.slideWidth !=3D=3D = undefined) && (o.tabWidth =3D=3D=3D undefined)) {=0A= /* width and slideWidth defined. */=0A= /* Check for errors. */=0A= if (o.widthUnits !=3D=3D o.slideWidthUnits) {=0A= helpers.displayError("Units do not match", o.errors);=0A= return false;=0A= } else if ((o.width > 100) && (o.widthUnits =3D=3D=3D "%")) {=0A= helpers.displayError("width cannot be over 100%", o.errors);=0A= return false;=0A= } else if (o.slideWidth >=3D o.width) {=0A= helpers.displayError("slideWidth cannot be greater than or equal = to width", o.errors);=0A= return false;=0A= } else if ((((t.children().size() * o.slideWidth) < 100) && = (o.widthUnits =3D=3D=3D "%")) || (((t.children().size() * o.slideWidth) = < o.width) && (o.widthUnits =3D=3D=3D "px"))) { /* Prevents gaps in the = accordion. For example, a slider with 4 slides at 150 pixels wide. 4 * = 150 =3D 600. Needs to fill an 800px space. */=0A= helpers.displayError("slideWidth too small for accordion", = o.errors);=0A= return false;=0A= } else {=0A= /* Need to define the remaining tabWidth. */=0A= o.tabWidthUnits =3D o.widthUnits; /* Set the units to be = consistent. */=0A= if (o.widthUnits =3D=3D=3D "%") { /* Percentages. */=0A= o.tabWidth =3D (100 - o.slideWidth) / (t.children().size() - 1); = /* Use 100% instead of the defined width. */=0A= } else { /* Pixels. */=0A= o.tabWidth =3D (o.width - o.slideWidth) / (t.children().size() - = 1);=0A= }=0A= return true;=0A= }=0A= } else if ((o.width =3D=3D=3D undefined) && (o.slideWidth !=3D=3D = undefined) && (o.tabWidth !=3D=3D undefined)) {=0A= /* slideWidth and tabWidth defined. */=0A= helpers.displayError("width must be defined", o.errors);=0A= return false;=0A= } else if ((o.width !=3D=3D undefined) && (o.slideWidth !=3D=3D = undefined) && (o.tabWidth !=3D=3D undefined)) {=0A= /* width, slideWidth, and tabWidth defined. */=0A= helpers.displayError("At maximum two of three attributes (width, = slideWidth, and tabWidth) should be defined", o.errors);=0A= return false;=0A= }=0A= },=0A= timer: function (obj) {=0A= var n =3D obj.data("next") + 1;=0A= if (obj.data("pause") && obj.data("inside") && obj.data("auto")) {=0A= try {=0A= clearTimeout(obj.data("interval"));=0A= } catch (e) {}=0A= } else if (obj.data("pause") && !obj.data("inside") && = obj.data("auto")) {=0A= try {=0A= clearTimeout(obj.data("interval"));=0A= } catch (f) {}=0A= obj.data("interval", setTimeout(function () {=0A= obj.children(obj.children().get(0).tagName + ":nth-child(" + n + = ")").trigger(obj.data("trigger"));=0A= }, obj.data("timeout")));=0A= } else if (!obj.data("pause") && obj.data("auto")) {=0A= try {=0A= clearTimeout(obj.data("interval"));=0A= } catch (g) {}=0A= obj.data("interval", setTimeout(function () {=0A= obj.children(obj.children().get(0).tagName + ":nth-child(" + n + = ")").trigger(obj.data("trigger"));=0A= }, obj.data("timeout")));=0A= }=0A= }=0A= }, methods =3D {=0A= init: function (options) {=0A= var f, fixattr =3D ["slideWidth", "tabWidth", "startingSlide", = "slideClass", "animationStart", "animationComplete", "buildComplete"];=0A= for (f =3D 0; f < fixattr.length; f +=3D 1) {=0A= if ($(this).data(fixattr[f].toLowerCase()) !=3D=3D undefined) {=0A= $(this).data(fixattr[f], $(this).data(fixattr[f].toLowerCase()));=0A= $(this).removeData(fixattr[f].toLowerCase());=0A= }=0A= }=0A= /* Add new properties to options. */=0A= options =3D $.extend(defaults, options, $(this).data());=0A= /* Check for a height */=0A= if (this.length <=3D 0) {=0A= helpers.displayError("Selector does not exist", options.errors);=0A= return false;=0A= } else if (!helpers.fixHeight(options)) {=0A= helpers.displayError("height must be defined", options.errors);=0A= return false;=0A= } else if (!helpers.findChildElements(this)) {=0A= helpers.displayError("No child elements available", options.errors);=0A= return false;=0A= } else if (options.speed > options.timeout) {=0A= helpers.displayError("Speed cannot be greater than timeout", = options.errors);=0A= return false;=0A= } else {=0A= /* Get the correct units */=0A= options.heightUnits =3D helpers.getUnits(options.height);=0A= options.height =3D helpers.toInteger(options.height);=0A= options.widthUnits =3D helpers.getUnits(options.width);=0A= options.width =3D helpers.toInteger(options.width);=0A= options.slideWidthUnits =3D helpers.getUnits(options.slideWidth);=0A= options.slideWidth =3D helpers.toInteger(options.slideWidth);=0A= options.tabWidthUnits =3D helpers.getUnits(options.tabWidth);=0A= options.tabWidth =3D helpers.toInteger(options.tabWidth);=0A= if (options.slideClass !=3D=3D null) {=0A= options.slideOpenClass =3D options.slideClass + "-open"; /* Class = of open slides. */=0A= options.slideClosedClass =3D options.slideClass + "-closed"; /* = Class of closed slides. */=0A= options.slidePreviousClass =3D options.slideClass + "-previous"; = /* Class of the slide that was previously open before a new one was = triggered. */=0A= }=0A= /* Check for inconsistencies in size. */=0A= if (!helpers.sizeAccordion(this, options)) {=0A= return false;=0A= } else {=0A= return this.each(function () {=0A= var o =3D options, obj =3D $(this), originals =3D [], /* inside = =3D false, */ animate, tag, childtag, size, previous =3D -1; /* o: all = of the options (defaults, user options, settings) */=0A= animate =3D o.slideWidth - o.tabWidth; /* Number of pixels yet do = be displayed on a hidden slide. */=0A= tag =3D obj.get(0).tagName; /* Tag type of the container. */=0A= childtag =3D obj.children().get(0).tagName; /* Tag type of the = children. */=0A= size =3D obj.children().size(); /* Number of children. */=0A= obj.data($.extend({}, {=0A= auto: o.auto,=0A= interval: null,=0A= timeout: o.timeout,=0A= trigger: o.trigger,=0A= current: o.startingSlide,=0A= previous: previous,=0A= next: helpers.getNext(size, o.startingSlide),=0A= slideClass: o.slideClass, /* Keeping this around right now only = for the sake of the destroy function. */=0A= inside: false,=0A= pause: o.pause=0A= }));=0A= if (o.heightUnits =3D=3D=3D "%") {=0A= o.height =3D (obj.parent().get(0).tagName =3D=3D=3D "BODY") ? = o.height * 0.01 * $(window).height() : o.height * 0.01 * = obj.parent().height();=0A= o.heightUnits =3D "px"; /* Need to revert to pixels because CSS = 100% height does not cooperate. */=0A= }=0A= /* Loop through each of the slides and set the layers. */=0A= =0A= obj.children().each(function (childindex) {=0A= //todo : index=0A= var total =3D obj.children().length;=0A= var zindex, xpos, y;=0A= xpos =3D o.invert ? xpos =3D ((size - 1) * o.tabWidth) - = (childindex * o.tabWidth) : childindex * o.tabWidth; /* Used for the = position of each slide. */=0A= originals[childindex] =3D xpos; /* px position of each open = slide. */=0A= zindex =3D o.invert ? ((size - 1) - childindex) * 10 : = childindex * 10; /* Increase each slide's z-index by 10 so they sit on = top of each other. */=0A= //zindex =3D (total-childindex) * 10;=0A= if (o.slideClass !=3D=3D null) {=0A= $(this).addClass(o.slideClass); /* Add the slide class to each = of the slides. */=0A= }=0A= $(this).css({=0A= "top": 0,=0A= "z-index": zindex,=0A= "margin": 0,=0A= "padding": 0,=0A= "float": "left",=0A= "display": "block",=0A= "position": "absolute",=0A= "overflow": "hidden",=0A= "width": o.slideWidth + o.widthUnits,=0A= "height": o.height + o.heightUnits=0A= });=0A= if (childtag =3D=3D=3D "LI") {=0A= $(this).css({=0A= "text-indent": 0=0A= });=0A= }=0A= if (o.invert) {=0A= $(this).css({ "right": xpos + o.widthUnits, "float": "right" });=0A= } else {=0A= $(this).css({ "left": xpos + o.widthUnits, "float": "left" });=0A= }=0A= if (childindex =3D=3D=3D (o.startingSlide)) {=0A= $(this).css("cursor", "default");=0A= if (o.slideClass !=3D=3D null) {=0A= $(this).addClass(o.slideOpenClass);=0A= }=0A= } else {=0A= $(this).css("cursor", "pointer");=0A= if (o.slideClass !=3D=3D null) {=0A= $(this).addClass(o.slideClosedClass);=0A= }=0A= if ((childindex > (o.startingSlide)) && (!o.invert)) {=0A= y =3D childindex + 1;=0A= obj.children(childtag + ":nth-child(" + y + ")").css({=0A= left: originals[y - 1] + animate + o.widthUnits=0A= });=0A= } else if ((childindex < (o.startingSlide)) && (o.invert)) {=0A= y =3D childindex + 1;=0A= obj.children(childtag + ":nth-child(" + y + ")").css({=0A= right: originals[y - 1] + animate + o.widthUnits=0A= });=0A= }=0A= }=0A= });=0A= /* Modify the CSS of the main container. */=0A= obj.css({=0A= "display": "block",=0A= "height": o.height + o.heightUnits,=0A= "width": o.width + o.widthUnits,=0A= "padding": 0,=0A= "position": "relative",=0A= "overflow": "hidden"=0A= });=0A= /* If the container is a list, get rid of any bullets. */=0A= if ((tag =3D=3D=3D "UL") || (tag =3D=3D=3D "OL")) {=0A= obj.css({=0A= "list-style": "none"=0A= });=0A= }=0A= obj.hover(function () {=0A= obj.data("inside", true);=0A= /* If pause on hover, clear the timer. */=0A= if (obj.data("pause")) {=0A= try {=0A= clearTimeout(obj.data("interval"));=0A= } catch (e) {}=0A= }=0A= }, function () {=0A= obj.data("inside", false);=0A= /* Restart the accordion when user moves mouse out of the = slides. */=0A= if (obj.data("auto") && obj.data("pause")) {=0A= helpers.timer(obj);=0A= }=0A= });=0A= /* Set up the listener to change slides when triggered. */=0A= obj.children().bind(o.trigger, function () {=0A= /* Don't do anything if the slide is already open. */=0A= if ($(this).index() !=3D=3D obj.data("current")) {=0A= var i, j, p, c; /* p and c are 1-indexes */=0A= p =3D previous + 1; /* Using the 1-index for nth selector. */=0A= c =3D obj.data("current") + 1; /* Using the 1-index for nth = selector. */=0A= if ((p !=3D=3D 0) && (o.slideClass !=3D=3D null)) {=0A= obj.children(childtag + ":nth-child(" + p + = ")").removeClass(o.slidePreviousClass); /* Remove class for previous = slide if previous slide exists. */=0A= }=0A= obj.children(childtag + ":nth-child(" + c + ")");=0A= if (o.slideClass !=3D=3D null) {=0A= obj.children(childtag + ":nth-child(" + c + = ")").addClass(o.slidePreviousClass);=0A= }=0A= previous =3D obj.data("current");=0A= obj.data("previous", obj.data("current"));=0A= p =3D previous;=0A= p +=3D 1;=0A= obj.data("current", $(this).index());=0A= c =3D obj.data("current");=0A= c +=3D 1;=0A= obj.children().css("cursor", "pointer");=0A= $(this).css("cursor", "default"); /* Add the open class to the = slide tab that was just triggered */=0A= if (o.slideClass !=3D=3D null) {=0A= = obj.children().addClass(o.slideClosedClass).removeClass(o.slideOpenClass)= ;=0A= = $(this).addClass(o.slideOpenClass).removeClass(o.slideClosedClass); /* = Add the open class to the slide tab that was just triggered */=0A= }=0A= obj.data("next", helpers.getNext(size, $(this).index()));=0A= /* If the slide is not open... */=0A= helpers.timer(obj);=0A= o.animationStart();=0A= if (o.invert) {=0A= obj.children(childtag + ":nth-child(" + c + = ")").stop().animate({ right: originals[obj.data("current")] + = o.widthUnits }, o.speed, o.easing, o.animationComplete);=0A= } else {=0A= obj.children(childtag + ":nth-child(" + c + = ")").stop().animate({ left: originals[obj.data("current")] + = o.widthUnits }, o.speed, o.easing, o.animationComplete);=0A= }=0A= /* Closing other slides. */=0A= for (i =3D 0; i < size; i +=3D 1) {=0A= j =3D i + 1;=0A= if (i < obj.data("current")) {=0A= if (o.invert) {=0A= obj.children(childtag + ":nth-child(" + j + = ")").stop().animate({=0A= right: o.width - (j * o.tabWidth) + o.widthUnits=0A= }, o.speed, o.easing);=0A= } else {=0A= obj.children(childtag + ":nth-child(" + j + = ")").stop().animate({=0A= left: originals[i] + o.widthUnits=0A= }, o.speed, o.easing);=0A= }=0A= }=0A= if (i > obj.data("current")) {=0A= if (o.invert) {=0A= obj.children(childtag + ":nth-child(" + j + = ")").stop().animate({=0A= right: (size - j) * o.tabWidth + o.widthUnits=0A= }, o.speed, o.easing);=0A= } else {=0A= obj.children(childtag + ":nth-child(" + j + = ")").stop().animate({=0A= left: originals[i] + animate + o.widthUnits=0A= }, o.speed, o.easing);=0A= }=0A= }=0A= }=0A= return false; /* This is important. If a visible link is = clicked within the slide, it will open the slide instead of redirecting = the link. */=0A= }=0A= });=0A= /* Set up the original timer. */=0A= if (obj.data("auto")) {=0A= helpers.timer(obj);=0A= }=0A= o.buildComplete();=0A= });=0A= }=0A= }=0A= },=0A= stop: function () { /* This will stop the accordion unless the slides = are clicked, however, it will not resume the autoplay. */=0A= if ($(this).data("auto")) {=0A= clearTimeout($(this).data("interval"));=0A= $(this).data("auto", false);=0A= }=0A= },=0A= start: function () { /* This will start the accordion back up if it = has been stopped. */=0A= if (!$(this).data("auto")) {=0A= var n =3D $(this).data("next") + 1;=0A= $(this).data("auto", true);=0A= $(this).children($(this).children().get(0).tagName + ":nth-child(" = + n + ")").trigger($(this).data("trigger"));=0A= }=0A= },=0A= trigger: function (x) {=0A= if ((x >=3D $(this).children().size()) || (x < 0)) { /* If the = triggered slide is out of range, trigger the first slide. */=0A= x =3D 0;=0A= }=0A= x +=3D 1; /* Use nth-child to trigger slide. */=0A= $(this).children($(this).children().get(0).tagName + ":nth-child(" + = x + ")").trigger($(this).data("trigger"));=0A= },=0A= destroy: function (o) {=0A= var removestyle, removeclasses, prefix =3D = $(this).data("slideClass");=0A= if (o !=3D=3D undefined) {=0A= removestyle =3D (o.removeStyleAttr !=3D=3D undefined) ? = o.removeStyleAttr : true;=0A= removeclasses =3D (o.removeClasses !=3D=3D undefined) ? = o.removeClasses : false;=0A= }=0A= clearTimeout($(this).data("interval"));=0A= $(this).children().stop().unbind($(this).data("trigger"));=0A= $(this).unbind("mouseenter mouseleave mouseover mouseout");=0A= if (removestyle) {=0A= $(this).removeAttr("style");=0A= $(this).children().removeAttr("style");=0A= }=0A= if (removeclasses) {=0A= $(this).children().removeClass(prefix);=0A= $(this).children().removeClass(prefix + "-open");=0A= $(this).children().removeClass(prefix + "-closed");=0A= $(this).children().removeClass(prefix + "-previous");=0A= }=0A= $(this).removeData();=0A= if (o !=3D=3D undefined) {=0A= if (o.destroyComplete !=3D=3D "undefined") {=0A= if (typeof(o.destroyComplete.afterDestroy) !=3D=3D "undefined") {=0A= o.destroyComplete.afterDestroy();=0A= }=0A= if (o.destroyComplete.rebuild) {=0A= return methods.init.apply(this, [o.destroyComplete.rebuild]);=0A= }=0A= }=0A= }=0A= }=0A= };=0A= if (methods[method]) {=0A= return methods[method].apply(this, = Array.prototype.slice.call(arguments, 1));=0A= } else if (typeof method =3D=3D=3D "object" || !method) {=0A= return methods.init.apply(this, arguments);=0A= } else {=0A= $.error("zAccordion: " + method + " does not exist.");=0A= }=0A= };=0A= }(jQuery)); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/slick.js /*=0A= _ _ _ _=0A= ___| (_) ___| | __ (_)___=0A= / __| | |/ __| |/ / | / __|=0A= \__ \ | | (__| < _ | \__ \=0A= |___/_|_|\___|_|\_(_)/ |___/=0A= |__/=0A= =0A= Version: 1.5.0=0A= Author: Ken Wheeler=0A= Website: http://kenwheeler.github.io=0A= Docs: http://kenwheeler.github.io/slick=0A= Repo: http://github.com/kenwheeler/slick=0A= Issues: http://github.com/kenwheeler/slick/issues=0A= =0A= */=0A= /* global window, document, define, jQuery, setInterval, clearInterval */=0A= (function(factory) {=0A= 'use strict';=0A= if (typeof define =3D=3D=3D 'function' && define.amd) {=0A= define(['jquery'], factory);=0A= } else if (typeof exports !=3D=3D 'undefined') {=0A= module.exports =3D factory(require('jquery'));=0A= } else {=0A= factory(jQuery);=0A= }=0A= =0A= }(function($) {=0A= 'use strict';=0A= var Slick =3D window.Slick || {};=0A= =0A= Slick =3D (function() {=0A= =0A= var instanceUid =3D 0;=0A= =0A= function Slick(element, settings) {=0A= =0A= var _ =3D this,=0A= dataSettings, responsiveSettings, breakpoint;=0A= =0A= _.defaults =3D {=0A= accessibility: true,=0A= adaptiveHeight: false,=0A= appendArrows: $(element),=0A= appendDots: $(element),=0A= arrows: true,=0A= asNavFor: null,=0A= prevArrow: '<button type=3D"button" data-role=3D"none" = class=3D"slick-prev" aria-label=3D"previous">Previous</button>',=0A= nextArrow: '<button type=3D"button" data-role=3D"none" = class=3D"slick-next" aria-label=3D"next">Next</button>',=0A= autoplay: false,=0A= autoplaySpeed: 3000,=0A= centerMode: false,=0A= centerPadding: '50px',=0A= cssEase: 'ease',=0A= customPaging: function(slider, i) {=0A= return '<button type=3D"button" data-role=3D"none">' = + (i + 1) + '</button>';=0A= },=0A= dots: false,=0A= dotsClass: 'slick-dots',=0A= draggable: false,=0A= easing: 'linear',=0A= edgeFriction: 0.35,=0A= fade: false,=0A= focusOnSelect: false,=0A= infinite: true,=0A= initialSlide: 0,=0A= lazyLoad: 'ondemand',=0A= mobileFirst: false,=0A= pauseOnHover: true,=0A= pauseOnDotsHover: false,=0A= respondTo: 'window',=0A= responsive: null,=0A= rows: 1,=0A= rtl: false,=0A= slide: '',=0A= slidesPerRow: 1,=0A= slidesToShow: 1,=0A= slidesToScroll: 1,=0A= speed: 500,=0A= swipe: true,=0A= swipeToSlide: false,=0A= touchMove: true,=0A= touchThreshold: 5,=0A= useCSS: true,=0A= variableWidth: false,=0A= vertical: false,=0A= verticalSwiping: false,=0A= waitForAnimate: true=0A= };=0A= =0A= _.initials =3D {=0A= animating: false,=0A= dragging: false,=0A= autoPlayTimer: null,=0A= currentDirection: 0,=0A= currentLeft: null,=0A= currentSlide: 0,=0A= direction: 1,=0A= $dots: null,=0A= listWidth: null,=0A= listHeight: null,=0A= loadIndex: 0,=0A= $nextArrow: null,=0A= $prevArrow: null,=0A= slideCount: null,=0A= slideWidth: null,=0A= $slideTrack: null,=0A= $slides: null,=0A= sliding: false,=0A= slideOffset: 0,=0A= swipeLeft: null,=0A= $list: null,=0A= touchObject: {},=0A= transformsEnabled: false=0A= };=0A= =0A= $.extend(_, _.initials);=0A= =0A= _.activeBreakpoint =3D null;=0A= _.animType =3D null;=0A= _.animProp =3D null;=0A= _.breakpoints =3D [];=0A= _.breakpointSettings =3D [];=0A= _.cssTransitions =3D false;=0A= _.hidden =3D 'hidden';=0A= _.paused =3D false;=0A= _.positionProp =3D null;=0A= _.respondTo =3D null;=0A= _.rowCount =3D 1;=0A= _.shouldClick =3D true;=0A= _.$slider =3D $(element);=0A= _.$slidesCache =3D null;=0A= _.transformType =3D null;=0A= _.transitionType =3D null;=0A= _.visibilityChange =3D 'visibilitychange';=0A= _.windowWidth =3D 0;=0A= _.windowTimer =3D null;=0A= =0A= dataSettings =3D $(element).data('slick') || {};=0A= =0A= _.options =3D $.extend({}, _.defaults, dataSettings, = settings);=0A= =0A= _.currentSlide =3D _.options.initialSlide;=0A= =0A= _.originalSettings =3D _.options;=0A= responsiveSettings =3D _.options.responsive || null;=0A= =0A= if (responsiveSettings && responsiveSettings.length > -1) {=0A= _.respondTo =3D _.options.respondTo || 'window';=0A= for (breakpoint in responsiveSettings) {=0A= if (responsiveSettings.hasOwnProperty(breakpoint)) {=0A= _.breakpoints.push(responsiveSettings[=0A= breakpoint].breakpoint);=0A= _.breakpointSettings[responsiveSettings[=0A= breakpoint].breakpoint] =3D=0A= responsiveSettings[breakpoint].settings;=0A= }=0A= }=0A= _.breakpoints.sort(function(a, b) {=0A= if (_.options.mobileFirst =3D=3D=3D true) {=0A= return a - b;=0A= } else {=0A= return b - a;=0A= }=0A= });=0A= }=0A= =0A= if (typeof document.mozHidden !=3D=3D 'undefined') {=0A= _.hidden =3D 'mozHidden';=0A= _.visibilityChange =3D 'mozvisibilitychange';=0A= } else if (typeof document.msHidden !=3D=3D 'undefined') {=0A= _.hidden =3D 'msHidden';=0A= _.visibilityChange =3D 'msvisibilitychange';=0A= } else if (typeof document.webkitHidden !=3D=3D 'undefined') = {=0A= _.hidden =3D 'webkitHidden';=0A= _.visibilityChange =3D 'webkitvisibilitychange';=0A= }=0A= =0A= _.autoPlay =3D $.proxy(_.autoPlay, _);=0A= _.autoPlayClear =3D $.proxy(_.autoPlayClear, _);=0A= _.changeSlide =3D $.proxy(_.changeSlide, _);=0A= _.clickHandler =3D $.proxy(_.clickHandler, _);=0A= _.selectHandler =3D $.proxy(_.selectHandler, _);=0A= _.setPosition =3D $.proxy(_.setPosition, _);=0A= _.swipeHandler =3D $.proxy(_.swipeHandler, _);=0A= _.dragHandler =3D $.proxy(_.dragHandler, _);=0A= _.keyHandler =3D $.proxy(_.keyHandler, _);=0A= _.autoPlayIterator =3D $.proxy(_.autoPlayIterator, _);=0A= =0A= _.instanceUid =3D instanceUid++;=0A= =0A= // A simple way to check for HTML strings=0A= // Strict HTML recognition (must start with <)=0A= // Extracted from jQuery v1.11 source=0A= _.htmlExpr =3D /^(?:\s*(<[\w\W]+>)[^>]*)$/;=0A= =0A= _.init();=0A= =0A= _.checkResponsive(true);=0A= =0A= }=0A= =0A= return Slick;=0A= =0A= }());=0A= =0A= Slick.prototype.addSlide =3D Slick.prototype.slickAdd =3D = function(markup, index, addBefore) {=0A= =0A= var _ =3D this;=0A= =0A= if (typeof(index) =3D=3D=3D 'boolean') {=0A= addBefore =3D index;=0A= index =3D null;=0A= } else if (index < 0 || (index >=3D _.slideCount)) {=0A= return false;=0A= }=0A= =0A= _.unload();=0A= =0A= if (typeof(index) =3D=3D=3D 'number') {=0A= if (index =3D=3D=3D 0 && _.$slides.length =3D=3D=3D 0) {=0A= $(markup).appendTo(_.$slideTrack);=0A= } else if (addBefore) {=0A= $(markup).insertBefore(_.$slides.eq(index));=0A= } else {=0A= $(markup).insertAfter(_.$slides.eq(index));=0A= }=0A= } else {=0A= if (addBefore =3D=3D=3D true) {=0A= $(markup).prependTo(_.$slideTrack);=0A= } else {=0A= $(markup).appendTo(_.$slideTrack);=0A= }=0A= }=0A= =0A= _.$slides =3D _.$slideTrack.children(this.options.slide);=0A= =0A= _.$slideTrack.children(this.options.slide).detach();=0A= =0A= _.$slideTrack.append(_.$slides);=0A= =0A= _.$slides.each(function(index, element) {=0A= $(element).attr('data-slick-index', index);=0A= });=0A= =0A= _.$slidesCache =3D _.$slides;=0A= =0A= _.reinit();=0A= =0A= };=0A= =0A= Slick.prototype.animateHeight =3D function() {=0A= var _ =3D this;=0A= if (_.options.slidesToShow =3D=3D=3D 1 && = _.options.adaptiveHeight =3D=3D=3D true && _.options.vertical =3D=3D=3D = false) {=0A= var targetHeight =3D = _.$slides.eq(_.currentSlide).outerHeight(true);=0A= _.$list.animate({=0A= height: targetHeight=0A= }, _.options.speed);=0A= }=0A= };=0A= =0A= Slick.prototype.animateSlide =3D function(targetLeft, callback) {=0A= =0A= var animProps =3D {},=0A= _ =3D this;=0A= =0A= _.animateHeight();=0A= =0A= if (_.options.rtl =3D=3D=3D true && _.options.vertical =3D=3D=3D = false) {=0A= targetLeft =3D -targetLeft;=0A= }=0A= if (_.transformsEnabled =3D=3D=3D false) {=0A= if (_.options.vertical =3D=3D=3D false) {=0A= _.$slideTrack.animate({=0A= left: targetLeft=0A= }, _.options.speed, _.options.easing, callback);=0A= } else {=0A= _.$slideTrack.animate({=0A= top: targetLeft=0A= }, _.options.speed, _.options.easing, callback);=0A= }=0A= =0A= } else {=0A= =0A= if (_.cssTransitions =3D=3D=3D false) {=0A= if (_.options.rtl =3D=3D=3D true) {=0A= _.currentLeft =3D -(_.currentLeft);=0A= }=0A= $({=0A= animStart: _.currentLeft=0A= }).animate({=0A= animStart: targetLeft=0A= }, {=0A= duration: _.options.speed,=0A= easing: _.options.easing,=0A= step: function(now) {=0A= now =3D Math.ceil(now);=0A= if (_.options.vertical =3D=3D=3D false) {=0A= animProps[_.animType] =3D 'translate(' +=0A= now + 'px, 0px)';=0A= _.$slideTrack.css(animProps);=0A= } else {=0A= animProps[_.animType] =3D 'translate(0px,' +=0A= now + 'px)';=0A= _.$slideTrack.css(animProps);=0A= }=0A= },=0A= complete: function() {=0A= if (callback) {=0A= callback.call();=0A= }=0A= }=0A= });=0A= =0A= } else {=0A= =0A= _.applyTransition();=0A= targetLeft =3D Math.ceil(targetLeft);=0A= =0A= if (_.options.vertical =3D=3D=3D false) {=0A= animProps[_.animType] =3D 'translate3d(' + = targetLeft + 'px, 0px, 0px)';=0A= } else {=0A= animProps[_.animType] =3D 'translate3d(0px,' + = targetLeft + 'px, 0px)';=0A= }=0A= _.$slideTrack.css(animProps);=0A= =0A= if (callback) {=0A= setTimeout(function() {=0A= =0A= _.disableTransition();=0A= =0A= callback.call();=0A= }, _.options.speed);=0A= }=0A= =0A= }=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.asNavFor =3D function(index) {=0A= var _ =3D this, asNavFor =3D _.options.asNavFor !=3D null ? = $(_.options.asNavFor):null;=0A= if(asNavFor !=3D null){=0A= asNavFor.each(function(item){=0A= $(asNavFor[item]).slick('getSlick').slideHandler(index, = true);=0A= });=0A= }=0A= };=0A= =0A= Slick.prototype.applyTransition =3D function(slide) {=0A= =0A= var _ =3D this,=0A= transition =3D {};=0A= =0A= if (_.options.fade =3D=3D=3D false) {=0A= transition[_.transitionType] =3D _.transformType + ' ' + = _.options.speed + 'ms ' + _.options.cssEase;=0A= } else {=0A= transition[_.transitionType] =3D 'opacity ' + = _.options.speed + 'ms ' + _.options.cssEase;=0A= }=0A= =0A= if (_.options.fade =3D=3D=3D false) {=0A= _.$slideTrack.css(transition);=0A= } else {=0A= _.$slides.eq(slide).css(transition);=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.autoPlay =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.autoPlayTimer) {=0A= clearInterval(_.autoPlayTimer);=0A= }=0A= =0A= if (_.slideCount > _.options.slidesToShow && _.paused !=3D=3D = true) {=0A= _.autoPlayTimer =3D setInterval(_.autoPlayIterator,=0A= _.options.autoplaySpeed);=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.autoPlayClear =3D function() {=0A= =0A= var _ =3D this;=0A= if (_.autoPlayTimer) {=0A= clearInterval(_.autoPlayTimer);=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.autoPlayIterator =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.options.infinite =3D=3D=3D false) {=0A= =0A= if (_.direction =3D=3D=3D 1) {=0A= =0A= if ((_.currentSlide + 1) =3D=3D=3D _.slideCount -=0A= 1) {=0A= _.direction =3D 0;=0A= }=0A= =0A= _.slideHandler(_.currentSlide + = _.options.slidesToScroll);=0A= =0A= } else {=0A= =0A= if ((_.currentSlide - 1 =3D=3D=3D 0)) {=0A= =0A= _.direction =3D 1;=0A= =0A= }=0A= =0A= _.slideHandler(_.currentSlide - = _.options.slidesToScroll);=0A= =0A= }=0A= =0A= } else {=0A= =0A= _.slideHandler(_.currentSlide + _.options.slidesToScroll);=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.buildArrows =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.options.arrows =3D=3D=3D true && _.slideCount > = _.options.slidesToShow) {=0A= =0A= _.$prevArrow =3D $(_.options.prevArrow);=0A= _.$nextArrow =3D $(_.options.nextArrow);=0A= =0A= if (_.htmlExpr.test(_.options.prevArrow)) {=0A= _.$prevArrow.appendTo(_.options.appendArrows);=0A= }=0A= =0A= if (_.htmlExpr.test(_.options.nextArrow)) {=0A= _.$nextArrow.appendTo(_.options.appendArrows);=0A= }=0A= =0A= if (_.options.infinite !=3D=3D true) {=0A= _.$prevArrow.addClass('slick-disabled');=0A= }=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.buildDots =3D function() {=0A= =0A= var _ =3D this,=0A= i, dotString;=0A= =0A= if (_.options.dots =3D=3D=3D true && _.slideCount > = _.options.slidesToShow) {=0A= =0A= dotString =3D '<ul class=3D"' + _.options.dotsClass + '">';=0A= =0A= for (i =3D 0; i <=3D _.getDotCount(); i +=3D 1) {=0A= dotString +=3D '<li>' + = _.options.customPaging.call(this, _, i) + '</li>';=0A= }=0A= =0A= dotString +=3D '</ul>';=0A= =0A= _.$dots =3D $(dotString).appendTo(=0A= _.options.appendDots);=0A= =0A= = _.$dots.find('li').first().addClass('slick-active').attr('aria-hidden', = 'false');=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.buildOut =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= _.$slides =3D _.$slider.children(=0A= ':not(.slick-cloned)').addClass(=0A= 'slick-slide');=0A= _.slideCount =3D _.$slides.length;=0A= =0A= _.$slides.each(function(index, element) {=0A= $(element).attr('data-slick-index', index);=0A= });=0A= =0A= _.$slidesCache =3D _.$slides;=0A= =0A= _.$slider.addClass('slick-slider');=0A= =0A= _.$slideTrack =3D (_.slideCount =3D=3D=3D 0) ?=0A= $('<div class=3D"slick-track"/>').appendTo(_.$slider) :=0A= _.$slides.wrapAll('<div class=3D"slick-track"/>').parent();=0A= =0A= _.$list =3D _.$slideTrack.wrap(=0A= '<div aria-live=3D"polite" class=3D"slick-list"/>').parent();=0A= _.$slideTrack.css('opacity', 0);=0A= =0A= if (_.options.centerMode =3D=3D=3D true || = _.options.swipeToSlide =3D=3D=3D true) {=0A= _.options.slidesToScroll =3D 1;=0A= }=0A= =0A= $('img[data-lazy]', = _.$slider).not('[src]').addClass('slick-loading');=0A= =0A= _.setupInfinite();=0A= =0A= _.buildArrows();=0A= =0A= _.buildDots();=0A= =0A= _.updateDots();=0A= =0A= if (_.options.accessibility =3D=3D=3D true) {=0A= _.$list.prop('tabIndex', 0);=0A= }=0A= =0A= _.setSlideClasses(typeof this.currentSlide =3D=3D=3D 'number' ? = this.currentSlide : 0);=0A= =0A= if (_.options.draggable =3D=3D=3D true) {=0A= _.$list.addClass('draggable');=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.buildRows =3D function() {=0A= =0A= var _ =3D this, a, b, c, newSlides, numOfSlides, = originalSlides,slidesPerSection;=0A= =0A= newSlides =3D document.createDocumentFragment();=0A= originalSlides =3D _.$slider.children();=0A= =0A= if(_.options.rows > 1) {=0A= slidesPerSection =3D _.options.slidesPerRow * _.options.rows;=0A= numOfSlides =3D Math.ceil(=0A= originalSlides.length / slidesPerSection=0A= );=0A= =0A= for(a =3D 0; a < numOfSlides; a++){=0A= var slide =3D document.createElement('div');=0A= for(b =3D 0; b < _.options.rows; b++) {=0A= var row =3D document.createElement('div');=0A= for(c =3D 0; c < _.options.slidesPerRow; c++) {=0A= var target =3D (a * slidesPerSection + ((b * = _.options.slidesPerRow) + c));=0A= if (originalSlides.get(target)) {=0A= row.appendChild(originalSlides.get(target));=0A= }=0A= }=0A= slide.appendChild(row);=0A= }=0A= newSlides.appendChild(slide);=0A= };=0A= _.$slider.html(newSlides);=0A= _.$slider.children().children().children()=0A= .width((100 / _.options.slidesPerRow) + "%")=0A= .css({'display': 'inline-block'});=0A= };=0A= =0A= };=0A= =0A= Slick.prototype.checkResponsive =3D function(initial) {=0A= =0A= var _ =3D this,=0A= breakpoint, targetBreakpoint, respondToWidth;=0A= var sliderWidth =3D _.$slider.width();=0A= var windowWidth =3D window.innerWidth || $(window).width();=0A= if (_.respondTo =3D=3D=3D 'window') {=0A= respondToWidth =3D windowWidth;=0A= } else if (_.respondTo =3D=3D=3D 'slider') {=0A= respondToWidth =3D sliderWidth;=0A= } else if (_.respondTo =3D=3D=3D 'min') {=0A= respondToWidth =3D Math.min(windowWidth, sliderWidth);=0A= }=0A= =0A= if (_.originalSettings.responsive && _.originalSettings=0A= .responsive.length > -1 && _.originalSettings.responsive = !=3D=3D null) {=0A= =0A= targetBreakpoint =3D null;=0A= =0A= for (breakpoint in _.breakpoints) {=0A= if (_.breakpoints.hasOwnProperty(breakpoint)) {=0A= if (_.originalSettings.mobileFirst =3D=3D=3D false) {=0A= if (respondToWidth < _.breakpoints[breakpoint]) {=0A= targetBreakpoint =3D = _.breakpoints[breakpoint];=0A= }=0A= } else {=0A= if (respondToWidth > _.breakpoints[breakpoint]) {=0A= targetBreakpoint =3D = _.breakpoints[breakpoint];=0A= }=0A= }=0A= }=0A= }=0A= =0A= if (targetBreakpoint !=3D=3D null) {=0A= if (_.activeBreakpoint !=3D=3D null) {=0A= if (targetBreakpoint !=3D=3D _.activeBreakpoint) {=0A= _.activeBreakpoint =3D=0A= targetBreakpoint;=0A= if (_.breakpointSettings[targetBreakpoint] = =3D=3D=3D 'unslick') {=0A= _.unslick();=0A= } else {=0A= _.options =3D $.extend({}, = _.originalSettings,=0A= _.breakpointSettings[=0A= targetBreakpoint]);=0A= if (initial =3D=3D=3D true)=0A= _.currentSlide =3D = _.options.initialSlide;=0A= _.refresh();=0A= }=0A= }=0A= } else {=0A= _.activeBreakpoint =3D targetBreakpoint;=0A= if (_.breakpointSettings[targetBreakpoint] =3D=3D=3D = 'unslick') {=0A= _.unslick();=0A= } else {=0A= _.options =3D $.extend({}, _.originalSettings,=0A= _.breakpointSettings[=0A= targetBreakpoint]);=0A= if (initial =3D=3D=3D true)=0A= _.currentSlide =3D _.options.initialSlide;=0A= _.refresh();=0A= }=0A= }=0A= } else {=0A= if (_.activeBreakpoint !=3D=3D null) {=0A= _.activeBreakpoint =3D null;=0A= _.options =3D _.originalSettings;=0A= if (initial =3D=3D=3D true)=0A= _.currentSlide =3D _.options.initialSlide;=0A= _.refresh();=0A= }=0A= }=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.changeSlide =3D function(event, dontAnimate) {=0A= =0A= var _ =3D this,=0A= $target =3D $(event.target),=0A= indexOffset, slideOffset, unevenOffset;=0A= =0A= // If target is a link, prevent default action.=0A= $target.is('a') && event.preventDefault();=0A= =0A= unevenOffset =3D (_.slideCount % _.options.slidesToScroll = !=3D=3D 0);=0A= indexOffset =3D unevenOffset ? 0 : (_.slideCount - = _.currentSlide) % _.options.slidesToScroll;=0A= =0A= switch (event.data.message) {=0A= =0A= case 'previous':=0A= slideOffset =3D indexOffset =3D=3D=3D 0 ? = _.options.slidesToScroll : _.options.slidesToShow - indexOffset;=0A= if (_.slideCount > _.options.slidesToShow) {=0A= _.slideHandler(_.currentSlide - slideOffset, false, = dontAnimate);=0A= }=0A= break;=0A= =0A= case 'next':=0A= slideOffset =3D indexOffset =3D=3D=3D 0 ? = _.options.slidesToScroll : indexOffset;=0A= if (_.slideCount > _.options.slidesToShow) {=0A= _.slideHandler(_.currentSlide + slideOffset, false, = dontAnimate);=0A= }=0A= break;=0A= =0A= case 'index':=0A= var index =3D event.data.index =3D=3D=3D 0 ? 0 :=0A= event.data.index || $(event.target).parent().index() = * _.options.slidesToScroll;=0A= =0A= _.slideHandler(_.checkNavigable(index), false, = dontAnimate);=0A= break;=0A= =0A= default:=0A= return;=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.checkNavigable =3D function(index) {=0A= =0A= var _ =3D this,=0A= navigables, prevNavigable;=0A= =0A= navigables =3D _.getNavigableIndexes();=0A= prevNavigable =3D 0;=0A= if (index > navigables[navigables.length - 1]) {=0A= index =3D navigables[navigables.length - 1];=0A= } else {=0A= for (var n in navigables) {=0A= if (index < navigables[n]) {=0A= index =3D prevNavigable;=0A= break;=0A= }=0A= prevNavigable =3D navigables[n];=0A= }=0A= }=0A= =0A= return index;=0A= };=0A= =0A= Slick.prototype.cleanUpEvents =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.options.dots =3D=3D=3D true && _.slideCount > = _.options.slidesToShow) {=0A= $('li', _.$dots).off('click.slick', _.changeSlide);=0A= }=0A= =0A= if (_.options.dots =3D=3D=3D true && _.options.pauseOnDotsHover = =3D=3D=3D true && _.options.autoplay =3D=3D=3D true) {=0A= $('li', _.$dots)=0A= .off('mouseenter.slick', _.setPaused.bind(_, true))=0A= .off('mouseleave.slick', _.setPaused.bind(_, false));=0A= }=0A= =0A= if (_.options.arrows =3D=3D=3D true && _.slideCount > = _.options.slidesToShow) {=0A= _.$prevArrow && _.$prevArrow.off('click.slick', = _.changeSlide);=0A= _.$nextArrow && _.$nextArrow.off('click.slick', = _.changeSlide);=0A= }=0A= =0A= _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);=0A= _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);=0A= _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);=0A= _.$list.off('touchcancel.slick mouseleave.slick', = _.swipeHandler);=0A= =0A= _.$list.off('click.slick', _.clickHandler);=0A= =0A= if (_.options.autoplay =3D=3D=3D true) {=0A= $(document).off(_.visibilityChange, _.visibility);=0A= }=0A= =0A= _.$list.off('mouseenter.slick', _.setPaused.bind(_, true));=0A= _.$list.off('mouseleave.slick', _.setPaused.bind(_, false));=0A= =0A= if (_.options.accessibility =3D=3D=3D true) {=0A= _.$list.off('keydown.slick', _.keyHandler);=0A= }=0A= =0A= if (_.options.focusOnSelect =3D=3D=3D true) {=0A= $(_.$slideTrack).children().off('click.slick', = _.selectHandler);=0A= }=0A= =0A= $(window).off('orientationchange.slick.slick-' + _.instanceUid, = _.orientationChange);=0A= =0A= $(window).off('resize.slick.slick-' + _.instanceUid, _.resize);=0A= =0A= $('[draggable!=3Dtrue]', _.$slideTrack).off('dragstart', = _.preventDefault);=0A= =0A= $(window).off('load.slick.slick-' + _.instanceUid, = _.setPosition);=0A= $(document).off('ready.slick.slick-' + _.instanceUid, = _.setPosition);=0A= };=0A= =0A= Slick.prototype.cleanUpRows =3D function() {=0A= =0A= var _ =3D this, originalSlides;=0A= =0A= if(_.options.rows > 1) {=0A= originalSlides =3D _.$slides.children().children();=0A= originalSlides.removeAttr('style');=0A= _.$slider.html(originalSlides);=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.clickHandler =3D function(event) {=0A= =0A= var _ =3D this;=0A= =0A= if (_.shouldClick =3D=3D=3D false) {=0A= event.stopImmediatePropagation();=0A= event.stopPropagation();=0A= event.preventDefault();=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.destroy =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= _.autoPlayClear();=0A= =0A= _.touchObject =3D {};=0A= =0A= _.cleanUpEvents();=0A= =0A= $('.slick-cloned', _.$slider).remove();=0A= =0A= if (_.$dots) {=0A= _.$dots.remove();=0A= }=0A= if (_.$prevArrow && (typeof _.options.prevArrow !=3D=3D = 'object')) {=0A= _.$prevArrow.remove();=0A= }=0A= if (_.$nextArrow && (typeof _.options.nextArrow !=3D=3D = 'object')) {=0A= _.$nextArrow.remove();=0A= }=0A= =0A= if (_.$slides) {=0A= _.$slides.removeClass('slick-slide slick-active slick-center = slick-visible')=0A= .attr('aria-hidden', 'true')=0A= .removeAttr('data-slick-index')=0A= .css({=0A= position: '',=0A= left: '',=0A= top: '',=0A= zIndex: '',=0A= opacity: '',=0A= width: ''=0A= });=0A= =0A= _.$slider.html(_.$slides);=0A= }=0A= =0A= _.cleanUpRows();=0A= =0A= _.$slider.removeClass('slick-slider');=0A= _.$slider.removeClass('slick-initialized');=0A= =0A= };=0A= =0A= Slick.prototype.disableTransition =3D function(slide) {=0A= =0A= var _ =3D this,=0A= transition =3D {};=0A= =0A= transition[_.transitionType] =3D '';=0A= =0A= if (_.options.fade =3D=3D=3D false) {=0A= _.$slideTrack.css(transition);=0A= } else {=0A= _.$slides.eq(slide).css(transition);=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.fadeSlide =3D function(slideIndex, callback) {=0A= =0A= var _ =3D this;=0A= =0A= if (_.cssTransitions =3D=3D=3D false) {=0A= =0A= _.$slides.eq(slideIndex).css({=0A= zIndex: 1000=0A= });=0A= =0A= _.$slides.eq(slideIndex).animate({=0A= opacity: 1=0A= }, _.options.speed, _.options.easing, callback);=0A= =0A= } else {=0A= =0A= _.applyTransition(slideIndex);=0A= =0A= _.$slides.eq(slideIndex).css({=0A= opacity: 1,=0A= zIndex: 1000=0A= });=0A= =0A= if (callback) {=0A= setTimeout(function() {=0A= =0A= _.disableTransition(slideIndex);=0A= =0A= callback.call();=0A= }, _.options.speed);=0A= }=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.filterSlides =3D Slick.prototype.slickFilter =3D = function(filter) {=0A= =0A= var _ =3D this;=0A= =0A= if (filter !=3D=3D null) {=0A= =0A= _.unload();=0A= =0A= _.$slideTrack.children(this.options.slide).detach();=0A= =0A= _.$slidesCache.filter(filter).appendTo(_.$slideTrack);=0A= =0A= _.reinit();=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.getCurrent =3D Slick.prototype.slickCurrentSlide =3D = function() {=0A= =0A= var _ =3D this;=0A= return _.currentSlide;=0A= =0A= };=0A= =0A= Slick.prototype.getDotCount =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= var breakPoint =3D 0;=0A= var counter =3D 0;=0A= var pagerQty =3D 0;=0A= =0A= if (_.options.infinite =3D=3D=3D true) {=0A= pagerQty =3D Math.ceil(_.slideCount / = _.options.slidesToScroll);=0A= } else if (_.options.centerMode =3D=3D=3D true) {=0A= pagerQty =3D _.slideCount;=0A= } else {=0A= while (breakPoint < _.slideCount) {=0A= ++pagerQty;=0A= breakPoint =3D counter + _.options.slidesToShow;=0A= counter +=3D _.options.slidesToScroll <=3D = _.options.slidesToShow ? _.options.slidesToScroll : = _.options.slidesToShow;=0A= }=0A= }=0A= =0A= return pagerQty - 1;=0A= =0A= };=0A= =0A= Slick.prototype.getLeft =3D function(slideIndex) {=0A= =0A= var _ =3D this,=0A= targetLeft,=0A= verticalHeight,=0A= verticalOffset =3D 0,=0A= targetSlide;=0A= =0A= _.slideOffset =3D 0;=0A= verticalHeight =3D _.$slides.first().outerHeight();=0A= =0A= if (_.options.infinite =3D=3D=3D true) {=0A= if (_.slideCount > _.options.slidesToShow) {=0A= _.slideOffset =3D (_.slideWidth * = _.options.slidesToShow) * -1;=0A= verticalOffset =3D (verticalHeight * = _.options.slidesToShow) * -1;=0A= }=0A= if (_.slideCount % _.options.slidesToScroll !=3D=3D 0) {=0A= if (slideIndex + _.options.slidesToScroll > _.slideCount = && _.slideCount > _.options.slidesToShow) {=0A= if (slideIndex > _.slideCount) {=0A= _.slideOffset =3D ((_.options.slidesToShow - = (slideIndex - _.slideCount)) * _.slideWidth) * -1;=0A= verticalOffset =3D ((_.options.slidesToShow - = (slideIndex - _.slideCount)) * verticalHeight) * -1;=0A= } else {=0A= _.slideOffset =3D ((_.slideCount % = _.options.slidesToScroll) * _.slideWidth) * -1;=0A= verticalOffset =3D ((_.slideCount % = _.options.slidesToScroll) * verticalHeight) * -1;=0A= }=0A= }=0A= }=0A= } else {=0A= if (slideIndex + _.options.slidesToShow > _.slideCount) {=0A= _.slideOffset =3D ((slideIndex + _.options.slidesToShow) = - _.slideCount) * _.slideWidth;=0A= verticalOffset =3D ((slideIndex + = _.options.slidesToShow) - _.slideCount) * verticalHeight;=0A= }=0A= }=0A= =0A= if (_.slideCount <=3D _.options.slidesToShow) {=0A= _.slideOffset =3D 0;=0A= verticalOffset =3D 0;=0A= }=0A= =0A= if (_.options.centerMode =3D=3D=3D true && _.options.infinite = =3D=3D=3D true) {=0A= _.slideOffset +=3D _.slideWidth * = Math.floor(_.options.slidesToShow / 2) - _.slideWidth;=0A= } else if (_.options.centerMode =3D=3D=3D true) {=0A= _.slideOffset =3D 0;=0A= _.slideOffset +=3D _.slideWidth * = Math.floor(_.options.slidesToShow / 2);=0A= }=0A= =0A= if (_.options.vertical =3D=3D=3D false) {=0A= targetLeft =3D ((slideIndex * _.slideWidth) * -1) + = _.slideOffset;=0A= } else {=0A= targetLeft =3D ((slideIndex * verticalHeight) * -1) + = verticalOffset;=0A= }=0A= =0A= if (_.options.variableWidth =3D=3D=3D true) {=0A= =0A= if (_.slideCount <=3D _.options.slidesToShow || = _.options.infinite =3D=3D=3D false) {=0A= targetSlide =3D = _.$slideTrack.children('.slick-slide').eq(slideIndex);=0A= } else {=0A= targetSlide =3D = _.$slideTrack.children('.slick-slide').eq(slideIndex + = _.options.slidesToShow);=0A= }=0A= =0A= targetLeft =3D targetSlide[0] ? targetSlide[0].offsetLeft * = -1 : 0;=0A= =0A= if (_.options.centerMode =3D=3D=3D true) {=0A= if (_.options.infinite =3D=3D=3D false) {=0A= targetSlide =3D = _.$slideTrack.children('.slick-slide').eq(slideIndex);=0A= } else {=0A= targetSlide =3D = _.$slideTrack.children('.slick-slide').eq(slideIndex + = _.options.slidesToShow + 1);=0A= }=0A= targetLeft =3D targetSlide[0] ? = targetSlide[0].offsetLeft * -1 : 0;=0A= targetLeft +=3D (_.$list.width() - = targetSlide.outerWidth()) / 2;=0A= }=0A= }=0A= =0A= return targetLeft;=0A= =0A= };=0A= =0A= Slick.prototype.getOption =3D Slick.prototype.slickGetOption =3D = function(option) {=0A= =0A= var _ =3D this;=0A= =0A= return _.options[option];=0A= =0A= };=0A= =0A= Slick.prototype.getNavigableIndexes =3D function() {=0A= =0A= var _ =3D this,=0A= breakPoint =3D 0,=0A= counter =3D 0,=0A= indexes =3D [],=0A= max;=0A= =0A= if (_.options.infinite =3D=3D=3D false) {=0A= max =3D _.slideCount - _.options.slidesToShow + 1;=0A= if (_.options.centerMode =3D=3D=3D true) max =3D = _.slideCount;=0A= } else {=0A= breakPoint =3D _.options.slidesToScroll * -1;=0A= counter =3D _.options.slidesToScroll * -1;=0A= max =3D _.slideCount * 2;=0A= }=0A= =0A= while (breakPoint < max) {=0A= indexes.push(breakPoint);=0A= breakPoint =3D counter + _.options.slidesToScroll;=0A= counter +=3D _.options.slidesToScroll <=3D = _.options.slidesToShow ? _.options.slidesToScroll : = _.options.slidesToShow;=0A= }=0A= =0A= return indexes;=0A= =0A= };=0A= =0A= Slick.prototype.getSlick =3D function() {=0A= =0A= return this;=0A= =0A= };=0A= =0A= Slick.prototype.getSlideCount =3D function() {=0A= =0A= var _ =3D this,=0A= slidesTraversed, swipedSlide, centerOffset;=0A= =0A= centerOffset =3D _.options.centerMode =3D=3D=3D true ? = _.slideWidth * Math.floor(_.options.slidesToShow / 2) : 0;=0A= =0A= if (_.options.swipeToSlide =3D=3D=3D true) {=0A= _.$slideTrack.find('.slick-slide').each(function(index, = slide) {=0A= if (slide.offsetLeft - centerOffset + = ($(slide).outerWidth() / 2) > (_.swipeLeft * -1)) {=0A= swipedSlide =3D slide;=0A= return false;=0A= }=0A= });=0A= =0A= slidesTraversed =3D = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;=0A= =0A= return slidesTraversed;=0A= =0A= } else {=0A= return _.options.slidesToScroll;=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.goTo =3D Slick.prototype.slickGoTo =3D = function(slide, dontAnimate) {=0A= =0A= var _ =3D this;=0A= =0A= _.changeSlide({=0A= data: {=0A= message: 'index',=0A= index: parseInt(slide)=0A= }=0A= }, dontAnimate);=0A= =0A= };=0A= =0A= Slick.prototype.init =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (!$(_.$slider).hasClass('slick-initialized')) {=0A= =0A= $(_.$slider).addClass('slick-initialized');=0A= _.buildRows();=0A= _.buildOut();=0A= _.setProps();=0A= _.startLoad();=0A= _.loadSlider();=0A= _.initializeEvents();=0A= _.updateArrows();=0A= _.updateDots();=0A= }=0A= =0A= _.$slider.trigger('init', [_]);=0A= =0A= };=0A= =0A= Slick.prototype.initArrowEvents =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.options.arrows =3D=3D=3D true && _.slideCount > = _.options.slidesToShow) {=0A= _.$prevArrow.on('click.slick', {=0A= message: 'previous'=0A= }, _.changeSlide);=0A= _.$nextArrow.on('click.slick', {=0A= message: 'next'=0A= }, _.changeSlide);=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.initDotEvents =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.options.dots =3D=3D=3D true && _.slideCount > = _.options.slidesToShow) {=0A= $('li', _.$dots).on('click.slick', {=0A= message: 'index'=0A= }, _.changeSlide);=0A= }=0A= =0A= if (_.options.dots =3D=3D=3D true && _.options.pauseOnDotsHover = =3D=3D=3D true && _.options.autoplay =3D=3D=3D true) {=0A= $('li', _.$dots)=0A= .on('mouseenter.slick', _.setPaused.bind(_, true))=0A= .on('mouseleave.slick', _.setPaused.bind(_, false));=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.initializeEvents =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= _.initArrowEvents();=0A= =0A= _.initDotEvents();=0A= =0A= _.$list.on('touchstart.slick mousedown.slick', {=0A= action: 'start'=0A= }, _.swipeHandler);=0A= _.$list.on('touchmove.slick mousemove.slick', {=0A= action: 'move' //for no drage comment it=0A= }, _.swipeHandler);=0A= _.$list.on('touchend.slick mouseup.slick', {=0A= action: 'end'=0A= }, _.swipeHandler);=0A= _.$list.on('touchcancel.slick mouseleave.slick', {=0A= action: 'end'=0A= }, _.swipeHandler);=0A= =0A= _.$list.on('click.slick', _.clickHandler);=0A= =0A= if (_.options.autoplay =3D=3D=3D true) {=0A= $(document).on(_.visibilityChange, _.visibility.bind(_));=0A= }=0A= =0A= _.$list.on('mouseenter.slick', _.setPaused.bind(_, true));=0A= _.$list.on('mouseleave.slick', _.setPaused.bind(_, false));=0A= =0A= if (_.options.accessibility =3D=3D=3D true) {=0A= _.$list.on('keydown.slick', _.keyHandler);=0A= }=0A= =0A= if (_.options.focusOnSelect =3D=3D=3D true) {=0A= $(_.$slideTrack).children().on('click.slick', = _.selectHandler);=0A= }=0A= =0A= $(window).on('orientationchange.slick.slick-' + _.instanceUid, = _.orientationChange.bind(_));=0A= =0A= $(window).on('resize.slick.slick-' + _.instanceUid, = _.resize.bind(_));=0A= =0A= $('[draggable!=3Dtrue]', _.$slideTrack).on('dragstart', = _.preventDefault);=0A= =0A= $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);=0A= $(document).on('ready.slick.slick-' + _.instanceUid, = _.setPosition);=0A= =0A= };=0A= =0A= Slick.prototype.initUI =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.options.arrows =3D=3D=3D true && _.slideCount > = _.options.slidesToShow) {=0A= =0A= _.$prevArrow.show();=0A= _.$nextArrow.show();=0A= =0A= }=0A= =0A= if (_.options.dots =3D=3D=3D true && _.slideCount > = _.options.slidesToShow) {=0A= =0A= _.$dots.show();=0A= =0A= }=0A= =0A= if (_.options.autoplay =3D=3D=3D true) {=0A= =0A= _.autoPlay();=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.keyHandler =3D function(event) {=0A= =0A= var _ =3D this;=0A= =0A= if (event.keyCode =3D=3D=3D 37 && _.options.accessibility = =3D=3D=3D true) {=0A= _.changeSlide({=0A= data: {=0A= message: 'previous'=0A= }=0A= });=0A= } else if (event.keyCode =3D=3D=3D 39 && _.options.accessibility = =3D=3D=3D true) {=0A= _.changeSlide({=0A= data: {=0A= message: 'next'=0A= }=0A= });=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.lazyLoad =3D function() {=0A= =0A= var _ =3D this,=0A= loadRange, cloneRange, rangeStart, rangeEnd;=0A= =0A= function loadImages(imagesScope) {=0A= $('img[data-lazy]', imagesScope).each(function() {=0A= var image =3D $(this),=0A= imageSource =3D $(this).attr('data-lazy'),=0A= imageToLoad =3D document.createElement('img');=0A= =0A= imageToLoad.onload =3D function() {=0A= image.animate({=0A= opacity: 1=0A= }, 200);=0A= };=0A= imageToLoad.src =3D imageSource;=0A= =0A= image=0A= .css({=0A= opacity: 0=0A= })=0A= .attr('src', imageSource)=0A= .removeAttr('data-lazy')=0A= .removeClass('slick-loading');=0A= });=0A= }=0A= =0A= if (_.options.centerMode =3D=3D=3D true) {=0A= if (_.options.infinite =3D=3D=3D true) {=0A= rangeStart =3D _.currentSlide + (_.options.slidesToShow = / 2 + 1);=0A= rangeEnd =3D rangeStart + _.options.slidesToShow + 2;=0A= } else {=0A= rangeStart =3D Math.max(0, _.currentSlide - = (_.options.slidesToShow / 2 + 1));=0A= rangeEnd =3D 2 + (_.options.slidesToShow / 2 + 1) + = _.currentSlide;=0A= }=0A= } else {=0A= rangeStart =3D _.options.infinite ? _.options.slidesToShow + = _.currentSlide : _.currentSlide;=0A= rangeEnd =3D rangeStart + _.options.slidesToShow;=0A= if (_.options.fade =3D=3D=3D true) {=0A= if (rangeStart > 0) rangeStart--;=0A= if (rangeEnd <=3D _.slideCount) rangeEnd++;=0A= }=0A= }=0A= =0A= loadRange =3D _.$slider.find('.slick-slide').slice(rangeStart, = rangeEnd);=0A= loadImages(loadRange);=0A= =0A= if (_.slideCount <=3D _.options.slidesToShow) {=0A= cloneRange =3D _.$slider.find('.slick-slide');=0A= loadImages(cloneRange);=0A= } else=0A= if (_.currentSlide >=3D _.slideCount - _.options.slidesToShow) {=0A= cloneRange =3D _.$slider.find('.slick-cloned').slice(0, = _.options.slidesToShow);=0A= loadImages(cloneRange);=0A= } else if (_.currentSlide =3D=3D=3D 0) {=0A= cloneRange =3D = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);=0A= loadImages(cloneRange);=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.loadSlider =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= _.setPosition();=0A= =0A= _.$slideTrack.css({=0A= opacity: 1=0A= });=0A= =0A= _.$slider.removeClass('slick-loading');=0A= =0A= _.initUI();=0A= =0A= if (_.options.lazyLoad =3D=3D=3D 'progressive') {=0A= _.progressiveLazyLoad();=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.next =3D Slick.prototype.slickNext =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= _.changeSlide({=0A= data: {=0A= message: 'next'=0A= }=0A= });=0A= =0A= };=0A= =0A= Slick.prototype.orientationChange =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= _.checkResponsive();=0A= _.setPosition();=0A= =0A= };=0A= =0A= Slick.prototype.pause =3D Slick.prototype.slickPause =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= _.autoPlayClear();=0A= _.paused =3D true;=0A= =0A= };=0A= =0A= Slick.prototype.play =3D Slick.prototype.slickPlay =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= _.paused =3D false;=0A= _.autoPlay();=0A= =0A= };=0A= =0A= Slick.prototype.postSlide =3D function(index) {=0A= =0A= var _ =3D this;=0A= =0A= _.$slider.trigger('afterChange', [_, index]);=0A= =0A= _.animating =3D false;=0A= =0A= _.setPosition();=0A= =0A= _.swipeLeft =3D null;=0A= =0A= if (_.options.autoplay =3D=3D=3D true && _.paused =3D=3D=3D = false) {=0A= _.autoPlay();=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.prev =3D Slick.prototype.slickPrev =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= _.changeSlide({=0A= data: {=0A= message: 'previous'=0A= }=0A= });=0A= =0A= };=0A= =0A= Slick.prototype.preventDefault =3D function(e) {=0A= e.preventDefault();=0A= };=0A= =0A= Slick.prototype.progressiveLazyLoad =3D function() {=0A= =0A= var _ =3D this,=0A= imgCount, targetImage;=0A= =0A= imgCount =3D $('img[data-lazy]', _.$slider).length;=0A= =0A= if (imgCount > 0) {=0A= targetImage =3D $('img[data-lazy]', _.$slider).first();=0A= targetImage.attr('src', = targetImage.attr('data-lazy')).removeClass('slick-loading').load(function= () {=0A= targetImage.removeAttr('data-lazy');=0A= _.progressiveLazyLoad();=0A= =0A= if (_.options.adaptiveHeight =3D=3D=3D true) {=0A= _.setPosition();=0A= }=0A= })=0A= .error(function() {=0A= targetImage.removeAttr('data-lazy');=0A= _.progressiveLazyLoad();=0A= });=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.refresh =3D function() {=0A= =0A= var _ =3D this,=0A= currentSlide =3D _.currentSlide;=0A= =0A= _.destroy();=0A= =0A= $.extend(_, _.initials);=0A= =0A= _.init();=0A= =0A= _.changeSlide({=0A= data: {=0A= message: 'index',=0A= index: currentSlide=0A= }=0A= }, false);=0A= =0A= };=0A= =0A= Slick.prototype.reinit =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= _.$slides =3D _.$slideTrack.children(_.options.slide).addClass(=0A= 'slick-slide');=0A= =0A= _.slideCount =3D _.$slides.length;=0A= =0A= if (_.currentSlide >=3D _.slideCount && _.currentSlide !=3D=3D = 0) {=0A= _.currentSlide =3D _.currentSlide - _.options.slidesToScroll;=0A= }=0A= =0A= if (_.slideCount <=3D _.options.slidesToShow) {=0A= _.currentSlide =3D 0;=0A= }=0A= =0A= _.setProps();=0A= =0A= _.setupInfinite();=0A= =0A= _.buildArrows();=0A= =0A= _.updateArrows();=0A= =0A= _.initArrowEvents();=0A= =0A= _.buildDots();=0A= =0A= _.updateDots();=0A= =0A= _.initDotEvents();=0A= =0A= if (_.options.focusOnSelect =3D=3D=3D true) {=0A= $(_.$slideTrack).children().on('click.slick', = _.selectHandler);=0A= }=0A= =0A= _.setSlideClasses(0);=0A= =0A= _.setPosition();=0A= =0A= _.$slider.trigger('reInit', [_]);=0A= =0A= };=0A= =0A= Slick.prototype.resize =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if ($(window).width() !=3D=3D _.windowWidth) {=0A= clearTimeout(_.windowDelay);=0A= _.windowDelay =3D window.setTimeout(function() {=0A= _.windowWidth =3D $(window).width();=0A= _.checkResponsive();=0A= _.setPosition();=0A= }, 50);=0A= }=0A= };=0A= =0A= Slick.prototype.removeSlide =3D Slick.prototype.slickRemove =3D = function(index, removeBefore, removeAll) {=0A= =0A= var _ =3D this;=0A= =0A= if (typeof(index) =3D=3D=3D 'boolean') {=0A= removeBefore =3D index;=0A= index =3D removeBefore =3D=3D=3D true ? 0 : _.slideCount - 1;=0A= } else {=0A= index =3D removeBefore =3D=3D=3D true ? --index : index;=0A= }=0A= =0A= if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {=0A= return false;=0A= }=0A= =0A= _.unload();=0A= =0A= if (removeAll =3D=3D=3D true) {=0A= _.$slideTrack.children().remove();=0A= } else {=0A= = _.$slideTrack.children(this.options.slide).eq(index).remove();=0A= }=0A= =0A= _.$slides =3D _.$slideTrack.children(this.options.slide);=0A= =0A= _.$slideTrack.children(this.options.slide).detach();=0A= =0A= _.$slideTrack.append(_.$slides);=0A= =0A= _.$slidesCache =3D _.$slides;=0A= =0A= _.reinit();=0A= =0A= };=0A= =0A= Slick.prototype.setCSS =3D function(position) {=0A= =0A= var _ =3D this,=0A= positionProps =3D {},=0A= x, y;=0A= =0A= if (_.options.rtl =3D=3D=3D true) {=0A= position =3D -position;=0A= }=0A= x =3D _.positionProp =3D=3D 'left' ? Math.ceil(position) + 'px' = : '0px';=0A= y =3D _.positionProp =3D=3D 'top' ? Math.ceil(position) + 'px' : = '0px';=0A= =0A= positionProps[_.positionProp] =3D position;=0A= =0A= if (_.transformsEnabled =3D=3D=3D false) {=0A= _.$slideTrack.css(positionProps);=0A= } else {=0A= positionProps =3D {};=0A= if (_.cssTransitions =3D=3D=3D false) {=0A= positionProps[_.animType] =3D 'translate(' + x + ', ' + = y + ')';=0A= _.$slideTrack.css(positionProps);=0A= } else {=0A= positionProps[_.animType] =3D 'translate3d(' + x + ', ' = + y + ', 0px)';=0A= _.$slideTrack.css(positionProps);=0A= }=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.setDimensions =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.options.vertical =3D=3D=3D false) {=0A= if (_.options.centerMode =3D=3D=3D true) {=0A= _.$list.css({=0A= padding: ('0px ' + _.options.centerPadding)=0A= });=0A= }=0A= } else {=0A= _.$list.height(_.$slides.first().outerHeight(true) * = _.options.slidesToShow);=0A= if (_.options.centerMode =3D=3D=3D true) {=0A= _.$list.css({=0A= padding: (_.options.centerPadding + ' 0px')=0A= });=0A= }=0A= }=0A= =0A= _.listWidth =3D _.$list.width();=0A= _.listHeight =3D _.$list.height();=0A= =0A= =0A= if (_.options.vertical =3D=3D=3D false && = _.options.variableWidth =3D=3D=3D false) {=0A= _.slideWidth =3D Math.ceil(_.listWidth / = _.options.slidesToShow);=0A= _.$slideTrack.width(Math.ceil((_.slideWidth * = _.$slideTrack.children('.slick-slide').length)));=0A= =0A= } else if (_.options.variableWidth =3D=3D=3D true) {=0A= _.$slideTrack.width(5000 * _.slideCount);=0A= } else {=0A= _.slideWidth =3D Math.ceil(_.listWidth);=0A= = _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * = _.$slideTrack.children('.slick-slide').length)));=0A= }=0A= =0A= var offset =3D _.$slides.first().outerWidth(true) - = _.$slides.first().width();=0A= if (_.options.variableWidth =3D=3D=3D false) = _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);=0A= =0A= };=0A= =0A= Slick.prototype.setFade =3D function() {=0A= =0A= var _ =3D this,=0A= targetLeft;=0A= =0A= _.$slides.each(function(index, element) {=0A= targetLeft =3D (_.slideWidth * index) * -1;=0A= if (_.options.rtl =3D=3D=3D true) {=0A= $(element).css({=0A= position: 'relative',=0A= right: targetLeft,=0A= top: 0,=0A= zIndex: 800,=0A= opacity: 0=0A= });=0A= } else {=0A= $(element).css({=0A= position: 'relative',=0A= left: targetLeft,=0A= top: 0,=0A= zIndex: 800,=0A= opacity: 0=0A= });=0A= }=0A= });=0A= =0A= _.$slides.eq(_.currentSlide).css({=0A= zIndex: 900,=0A= opacity: 1=0A= });=0A= =0A= };=0A= =0A= Slick.prototype.setHeight =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.options.slidesToShow =3D=3D=3D 1 && = _.options.adaptiveHeight =3D=3D=3D true && _.options.vertical =3D=3D=3D = false) {=0A= var targetHeight =3D = _.$slides.eq(_.currentSlide).outerHeight(true);=0A= _.$list.css('height', targetHeight);=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.setOption =3D Slick.prototype.slickSetOption =3D = function(option, value, refresh) {=0A= =0A= var _ =3D this;=0A= _.options[option] =3D value;=0A= =0A= if (refresh =3D=3D=3D true) {=0A= _.unload();=0A= _.reinit();=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.setPosition =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= _.setDimensions();=0A= =0A= _.setHeight();=0A= =0A= if (_.options.fade =3D=3D=3D false) {=0A= _.setCSS(_.getLeft(_.currentSlide));=0A= } else {=0A= _.setFade();=0A= }=0A= =0A= _.$slider.trigger('setPosition', [_]);=0A= =0A= };=0A= =0A= Slick.prototype.setProps =3D function() {=0A= =0A= var _ =3D this,=0A= bodyStyle =3D document.body.style;=0A= =0A= _.positionProp =3D _.options.vertical =3D=3D=3D true ? 'top' : = 'left';=0A= =0A= if (_.positionProp =3D=3D=3D 'top') {=0A= _.$slider.addClass('slick-vertical');=0A= } else {=0A= _.$slider.removeClass('slick-vertical');=0A= }=0A= =0A= if (bodyStyle.WebkitTransition !=3D=3D undefined ||=0A= bodyStyle.MozTransition !=3D=3D undefined ||=0A= bodyStyle.msTransition !=3D=3D undefined) {=0A= if (_.options.useCSS =3D=3D=3D true) {=0A= _.cssTransitions =3D true;=0A= }=0A= }=0A= =0A= if (bodyStyle.OTransform !=3D=3D undefined) {=0A= _.animType =3D 'OTransform';=0A= _.transformType =3D '-o-transform';=0A= _.transitionType =3D 'OTransition';=0A= if (bodyStyle.perspectiveProperty =3D=3D=3D undefined && = bodyStyle.webkitPerspective =3D=3D=3D undefined) _.animType =3D false;=0A= }=0A= if (bodyStyle.MozTransform !=3D=3D undefined) {=0A= _.animType =3D 'MozTransform';=0A= _.transformType =3D '-moz-transform';=0A= _.transitionType =3D 'MozTransition';=0A= if (bodyStyle.perspectiveProperty =3D=3D=3D undefined && = bodyStyle.MozPerspective =3D=3D=3D undefined) _.animType =3D false;=0A= }=0A= if (bodyStyle.webkitTransform !=3D=3D undefined) {=0A= _.animType =3D 'webkitTransform';=0A= _.transformType =3D '-webkit-transform';=0A= _.transitionType =3D 'webkitTransition';=0A= if (bodyStyle.perspectiveProperty =3D=3D=3D undefined && = bodyStyle.webkitPerspective =3D=3D=3D undefined) _.animType =3D false;=0A= }=0A= if (bodyStyle.msTransform !=3D=3D undefined) {=0A= _.animType =3D 'msTransform';=0A= _.transformType =3D '-ms-transform';=0A= _.transitionType =3D 'msTransition';=0A= if (bodyStyle.msTransform =3D=3D=3D undefined) _.animType = =3D false;=0A= }=0A= if (bodyStyle.transform !=3D=3D undefined && _.animType !=3D=3D = false) {=0A= _.animType =3D 'transform';=0A= _.transformType =3D 'transform';=0A= _.transitionType =3D 'transition';=0A= }=0A= _.transformsEnabled =3D (_.animType !=3D=3D null && _.animType = !=3D=3D false);=0A= =0A= };=0A= =0A= =0A= Slick.prototype.setSlideClasses =3D function(index) {=0A= =0A= var _ =3D this,=0A= centerOffset, allSlides, indexOffset, remainder;=0A= =0A= = _.$slider.find('.slick-slide').removeClass('slick-active').attr('aria-hid= den', 'true').removeClass('slick-center');=0A= allSlides =3D _.$slider.find('.slick-slide');=0A= =0A= if (_.options.centerMode =3D=3D=3D true) {=0A= =0A= centerOffset =3D Math.floor(_.options.slidesToShow / 2);=0A= =0A= if (_.options.infinite =3D=3D=3D true) {=0A= =0A= if (index >=3D centerOffset && index <=3D (_.slideCount = - 1) - centerOffset) {=0A= _.$slides.slice(index - centerOffset, index + = centerOffset + 1).addClass('slick-active').attr('aria-hidden', 'false');=0A= } else {=0A= indexOffset =3D _.options.slidesToShow + index;=0A= allSlides.slice(indexOffset - centerOffset + 1, = indexOffset + centerOffset + = 2).addClass('slick-active').attr('aria-hidden', 'false');=0A= }=0A= =0A= if (index =3D=3D=3D 0) {=0A= allSlides.eq(allSlides.length - 1 - = _.options.slidesToShow).addClass('slick-center');=0A= } else if (index =3D=3D=3D _.slideCount - 1) {=0A= = allSlides.eq(_.options.slidesToShow).addClass('slick-center');=0A= }=0A= =0A= }=0A= =0A= _.$slides.eq(index).addClass('slick-center');=0A= =0A= } else {=0A= =0A= if (index >=3D 0 && index <=3D (_.slideCount - = _.options.slidesToShow)) {=0A= _.$slides.slice(index, index + = _.options.slidesToShow).addClass('slick-active').attr('aria-hidden', = 'false');=0A= } else if (allSlides.length <=3D _.options.slidesToShow) {=0A= allSlides.addClass('slick-active').attr('aria-hidden', = 'false');=0A= } else {=0A= remainder =3D _.slideCount % _.options.slidesToShow;=0A= indexOffset =3D _.options.infinite =3D=3D=3D true ? = _.options.slidesToShow + index : index;=0A= if (_.options.slidesToShow =3D=3D = _.options.slidesToScroll && (_.slideCount - index) < = _.options.slidesToShow) {=0A= allSlides.slice(indexOffset - = (_.options.slidesToShow - remainder), indexOffset + = remainder).addClass('slick-active').attr('aria-hidden', 'false');=0A= } else {=0A= allSlides.slice(indexOffset, indexOffset + = _.options.slidesToShow).addClass('slick-active').attr('aria-hidden', = 'false');=0A= }=0A= }=0A= =0A= }=0A= =0A= if (_.options.lazyLoad =3D=3D=3D 'ondemand') {=0A= _.lazyLoad();=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.setupInfinite =3D function() {=0A= =0A= var _ =3D this,=0A= i, slideIndex, infiniteCount;=0A= =0A= if (_.options.fade =3D=3D=3D true) {=0A= _.options.centerMode =3D false;=0A= }=0A= =0A= if (_.options.infinite =3D=3D=3D true && _.options.fade = =3D=3D=3D false) {=0A= =0A= slideIndex =3D null;=0A= =0A= if (_.slideCount > _.options.slidesToShow) {=0A= =0A= if (_.options.centerMode =3D=3D=3D true) {=0A= infiniteCount =3D _.options.slidesToShow + 1;=0A= } else {=0A= infiniteCount =3D _.options.slidesToShow;=0A= }=0A= =0A= for (i =3D _.slideCount; i > (_.slideCount -=0A= infiniteCount); i -=3D 1) {=0A= slideIndex =3D i - 1;=0A= $(_.$slides[slideIndex]).clone(true).attr('id', '')=0A= .attr('data-slick-index', slideIndex - = _.slideCount)=0A= = .prependTo(_.$slideTrack).addClass('slick-cloned');=0A= }=0A= for (i =3D 0; i < infiniteCount; i +=3D 1) {=0A= slideIndex =3D i;=0A= $(_.$slides[slideIndex]).clone(true).attr('id', '')=0A= .attr('data-slick-index', slideIndex + = _.slideCount)=0A= = .appendTo(_.$slideTrack).addClass('slick-cloned');=0A= }=0A= = _.$slideTrack.find('.slick-cloned').find('[id]').each(function() {=0A= $(this).attr('id', '');=0A= });=0A= =0A= }=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.setPaused =3D function(paused) {=0A= =0A= var _ =3D this;=0A= =0A= if (_.options.autoplay =3D=3D=3D true && _.options.pauseOnHover = =3D=3D=3D true) {=0A= _.paused =3D paused;=0A= _.autoPlayClear();=0A= }=0A= };=0A= =0A= Slick.prototype.selectHandler =3D function(event) {=0A= =0A= var _ =3D this;=0A= =0A= var targetElement =3D $(event.target).is('.slick-slide') ?=0A= $(event.target) :=0A= $(event.target).parents('.slick-slide');=0A= =0A= var index =3D parseInt(targetElement.attr('data-slick-index'));=0A= =0A= if (!index) index =3D 0;=0A= =0A= if (_.slideCount <=3D _.options.slidesToShow) {=0A= = _.$slider.find('.slick-slide').removeClass('slick-active').attr('aria-hid= den', 'true');=0A= = _.$slides.eq(index).addClass('slick-active').attr("aria-hidden", = "false");=0A= if (_.options.centerMode =3D=3D=3D true) {=0A= = _.$slider.find('.slick-slide').removeClass('slick-center');=0A= _.$slides.eq(index).addClass('slick-center');=0A= }=0A= _.asNavFor(index);=0A= return;=0A= }=0A= _.slideHandler(index);=0A= =0A= };=0A= =0A= Slick.prototype.slideHandler =3D function(index, sync, dontAnimate) {=0A= =0A= var targetSlide, animSlide, oldSlide, slideLeft, targetLeft =3D = null,=0A= _ =3D this;=0A= =0A= sync =3D sync || false;=0A= =0A= if (_.animating =3D=3D=3D true && _.options.waitForAnimate = =3D=3D=3D true) {=0A= return;=0A= }=0A= =0A= if (_.options.fade =3D=3D=3D true && _.currentSlide =3D=3D=3D = index) {=0A= return;=0A= }=0A= =0A= if (_.slideCount <=3D _.options.slidesToShow) {=0A= return;=0A= }=0A= =0A= if (sync =3D=3D=3D false) {=0A= _.asNavFor(index);=0A= }=0A= =0A= targetSlide =3D index;=0A= targetLeft =3D _.getLeft(targetSlide);=0A= slideLeft =3D _.getLeft(_.currentSlide);=0A= =0A= _.currentLeft =3D _.swipeLeft =3D=3D=3D null ? slideLeft : = _.swipeLeft;=0A= =0A= if (_.options.infinite =3D=3D=3D false && _.options.centerMode = =3D=3D=3D false && (index < 0 || index > _.getDotCount() * = _.options.slidesToScroll)) {=0A= if (_.options.fade =3D=3D=3D false) {=0A= targetSlide =3D _.currentSlide;=0A= if (dontAnimate !=3D=3D true) {=0A= _.animateSlide(slideLeft, function() {=0A= _.postSlide(targetSlide);=0A= });=0A= } else {=0A= _.postSlide(targetSlide);=0A= }=0A= }=0A= return;=0A= } else if (_.options.infinite =3D=3D=3D false && = _.options.centerMode =3D=3D=3D true && (index < 0 || index > = (_.slideCount - _.options.slidesToScroll))) {=0A= if (_.options.fade =3D=3D=3D false) {=0A= targetSlide =3D _.currentSlide;=0A= if (dontAnimate !=3D=3D true) {=0A= _.animateSlide(slideLeft, function() {=0A= _.postSlide(targetSlide);=0A= });=0A= } else {=0A= _.postSlide(targetSlide);=0A= }=0A= }=0A= return;=0A= }=0A= =0A= if (_.options.autoplay =3D=3D=3D true) {=0A= clearInterval(_.autoPlayTimer);=0A= }=0A= =0A= if (targetSlide < 0) {=0A= if (_.slideCount % _.options.slidesToScroll !=3D=3D 0) {=0A= animSlide =3D _.slideCount - (_.slideCount % = _.options.slidesToScroll);=0A= } else {=0A= animSlide =3D _.slideCount + targetSlide;=0A= }=0A= } else if (targetSlide >=3D _.slideCount) {=0A= if (_.slideCount % _.options.slidesToScroll !=3D=3D 0) {=0A= animSlide =3D 0;=0A= } else {=0A= animSlide =3D targetSlide - _.slideCount;=0A= }=0A= } else {=0A= animSlide =3D targetSlide;=0A= }=0A= =0A= _.animating =3D true;=0A= =0A= _.$slider.trigger("beforeChange", [_, _.currentSlide, = animSlide]);=0A= =0A= oldSlide =3D _.currentSlide;=0A= _.currentSlide =3D animSlide;=0A= =0A= _.setSlideClasses(_.currentSlide);=0A= =0A= _.updateDots();=0A= _.updateArrows();=0A= =0A= if (_.options.fade =3D=3D=3D true) {=0A= if (dontAnimate !=3D=3D true) {=0A= _.fadeSlide(animSlide, function() {=0A= _.postSlide(animSlide);=0A= });=0A= } else {=0A= _.postSlide(animSlide);=0A= }=0A= _.animateHeight();=0A= return;=0A= }=0A= =0A= if (dontAnimate !=3D=3D true) {=0A= _.animateSlide(targetLeft, function() {=0A= _.postSlide(animSlide);=0A= });=0A= } else {=0A= _.postSlide(animSlide);=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.startLoad =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.options.arrows =3D=3D=3D true && _.slideCount > = _.options.slidesToShow) {=0A= =0A= _.$prevArrow.hide();=0A= _.$nextArrow.hide();=0A= =0A= }=0A= =0A= if (_.options.dots =3D=3D=3D true && _.slideCount > = _.options.slidesToShow) {=0A= =0A= _.$dots.hide();=0A= =0A= }=0A= =0A= _.$slider.addClass('slick-loading');=0A= =0A= };=0A= =0A= Slick.prototype.swipeDirection =3D function() {=0A= =0A= var xDist, yDist, r, swipeAngle, _ =3D this;=0A= =0A= xDist =3D _.touchObject.startX - _.touchObject.curX;=0A= yDist =3D _.touchObject.startY - _.touchObject.curY;=0A= r =3D Math.atan2(yDist, xDist);=0A= =0A= swipeAngle =3D Math.round(r * 180 / Math.PI);=0A= if (swipeAngle < 0) {=0A= swipeAngle =3D 360 - Math.abs(swipeAngle);=0A= }=0A= =0A= if ((swipeAngle <=3D 45) && (swipeAngle >=3D 0)) {=0A= return (_.options.rtl =3D=3D=3D false ? 'left' : 'right');=0A= }=0A= if ((swipeAngle <=3D 360) && (swipeAngle >=3D 315)) {=0A= return (_.options.rtl =3D=3D=3D false ? 'left' : 'right');=0A= }=0A= if ((swipeAngle >=3D 135) && (swipeAngle <=3D 225)) {=0A= return (_.options.rtl =3D=3D=3D false ? 'right' : 'left');=0A= }=0A= if (_.options.verticalSwiping =3D=3D=3D true) {=0A= if ((swipeAngle >=3D 35) && (swipeAngle <=3D 135)) {=0A= return 'left';=0A= } else {=0A= return 'right';=0A= }=0A= }=0A= =0A= return 'vertical';=0A= =0A= };=0A= =0A= Slick.prototype.swipeEnd =3D function(event) {=0A= =0A= var _ =3D this,=0A= slideCount;=0A= =0A= _.dragging =3D false;=0A= =0A= _.shouldClick =3D (_.touchObject.swipeLength > 10) ? false : = true;=0A= =0A= if (_.touchObject.curX =3D=3D=3D undefined) {=0A= return false;=0A= }=0A= =0A= if (_.touchObject.edgeHit =3D=3D=3D true) {=0A= _.$slider.trigger("edge", [_, _.swipeDirection()]);=0A= }=0A= =0A= if (_.touchObject.swipeLength >=3D _.touchObject.minSwipe) {=0A= =0A= switch (_.swipeDirection()) {=0A= case 'left':=0A= slideCount =3D _.options.swipeToSlide ? = _.checkNavigable(_.currentSlide + _.getSlideCount()) : _.currentSlide + = _.getSlideCount();=0A= _.slideHandler(slideCount);=0A= _.currentDirection =3D 0;=0A= _.touchObject =3D {};=0A= _.$slider.trigger("swipe", [_, "left"]);=0A= break;=0A= =0A= case 'right':=0A= slideCount =3D _.options.swipeToSlide ? = _.checkNavigable(_.currentSlide - _.getSlideCount()) : _.currentSlide - = _.getSlideCount();=0A= _.slideHandler(slideCount);=0A= _.currentDirection =3D 1;=0A= _.touchObject =3D {};=0A= _.$slider.trigger("swipe", [_, "right"]);=0A= break;=0A= }=0A= } else {=0A= if (_.touchObject.startX !=3D=3D _.touchObject.curX) {=0A= _.slideHandler(_.currentSlide);=0A= _.touchObject =3D {};=0A= }=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.swipeHandler =3D function(event) {=0A= =0A= var _ =3D this;=0A= =0A= if ((_.options.swipe =3D=3D=3D false) || ('ontouchend' in = document && _.options.swipe =3D=3D=3D false)) {=0A= return;=0A= } else if (_.options.draggable =3D=3D=3D false && = event.type.indexOf('mouse') !=3D=3D -1) {=0A= return;=0A= }=0A= =0A= _.touchObject.fingerCount =3D event.originalEvent && = event.originalEvent.touches !=3D=3D undefined ?=0A= event.originalEvent.touches.length : 1;=0A= =0A= _.touchObject.minSwipe =3D _.listWidth / _.options=0A= .touchThreshold;=0A= =0A= if (_.options.verticalSwiping =3D=3D=3D true) {=0A= _.touchObject.minSwipe =3D _.listHeight / _.options=0A= .touchThreshold;=0A= }=0A= =0A= switch (event.data.action) {=0A= =0A= case 'start':=0A= _.swipeStart(event);=0A= break;=0A= =0A= case 'move':=0A= _.swipeMove(event);=0A= break;=0A= =0A= case 'end':=0A= _.swipeEnd(event);=0A= break;=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.swipeMove =3D function(event) {=0A= =0A= var _ =3D this,=0A= edgeWasHit =3D false,=0A= curLeft, swipeDirection, swipeLength, positionOffset, = touches;=0A= =0A= touches =3D event.originalEvent !=3D=3D undefined ? = event.originalEvent.touches : null;=0A= =0A= if (!_.dragging || touches && touches.length !=3D=3D 1) {=0A= return false;=0A= }=0A= =0A= curLeft =3D _.getLeft(_.currentSlide);=0A= =0A= _.touchObject.curX =3D touches !=3D=3D undefined ? = touches[0].pageX : event.clientX;=0A= _.touchObject.curY =3D touches !=3D=3D undefined ? = touches[0].pageY : event.clientY;=0A= =0A= _.touchObject.swipeLength =3D Math.round(Math.sqrt(=0A= Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));=0A= =0A= if (_.options.verticalSwiping =3D=3D=3D true) {=0A= _.touchObject.swipeLength =3D Math.round(Math.sqrt(=0A= Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));=0A= }=0A= =0A= swipeDirection =3D _.swipeDirection();=0A= =0A= if (swipeDirection =3D=3D=3D 'vertical') {=0A= return;=0A= }=0A= =0A= if (event.originalEvent !=3D=3D undefined && = _.touchObject.swipeLength > 4) {=0A= event.preventDefault();=0A= }=0A= =0A= positionOffset =3D (_.options.rtl =3D=3D=3D false ? 1 : -1) * = (_.touchObject.curX > _.touchObject.startX ? 1 : -1);=0A= if (_.options.verticalSwiping =3D=3D=3D true) {=0A= positionOffset =3D _.touchObject.curY > _.touchObject.startY = ? 1 : -1;=0A= }=0A= =0A= =0A= swipeLength =3D _.touchObject.swipeLength;=0A= =0A= _.touchObject.edgeHit =3D false;=0A= =0A= if (_.options.infinite =3D=3D=3D false) {=0A= if ((_.currentSlide =3D=3D=3D 0 && swipeDirection =3D=3D=3D = "right") || (_.currentSlide >=3D _.getDotCount() && swipeDirection = =3D=3D=3D "left")) {=0A= swipeLength =3D _.touchObject.swipeLength * = _.options.edgeFriction;=0A= _.touchObject.edgeHit =3D true;=0A= }=0A= }=0A= =0A= if (_.options.vertical =3D=3D=3D false) {=0A= _.swipeLeft =3D curLeft + swipeLength * positionOffset;=0A= } else {=0A= _.swipeLeft =3D curLeft + (swipeLength * (_.$list.height() / = _.listWidth)) * positionOffset;=0A= }=0A= if (_.options.verticalSwiping =3D=3D=3D true) {=0A= _.swipeLeft =3D curLeft + swipeLength * positionOffset;=0A= }=0A= =0A= if (_.options.fade =3D=3D=3D true || _.options.touchMove = =3D=3D=3D false) {=0A= return false;=0A= }=0A= =0A= if (_.animating =3D=3D=3D true) {=0A= _.swipeLeft =3D null;=0A= return false;=0A= }=0A= =0A= _.setCSS(_.swipeLeft);=0A= =0A= };=0A= =0A= Slick.prototype.swipeStart =3D function(event) {=0A= =0A= var _ =3D this,=0A= touches;=0A= =0A= if (_.touchObject.fingerCount !=3D=3D 1 || _.slideCount <=3D = _.options.slidesToShow) {=0A= _.touchObject =3D {};=0A= return false;=0A= }=0A= =0A= if (event.originalEvent !=3D=3D undefined && = event.originalEvent.touches !=3D=3D undefined) {=0A= touches =3D event.originalEvent.touches[0];=0A= }=0A= =0A= _.touchObject.startX =3D _.touchObject.curX =3D touches !=3D=3D = undefined ? touches.pageX : event.clientX;=0A= _.touchObject.startY =3D _.touchObject.curY =3D touches !=3D=3D = undefined ? touches.pageY : event.clientY;=0A= =0A= _.dragging =3D true;=0A= =0A= };=0A= =0A= Slick.prototype.unfilterSlides =3D Slick.prototype.slickUnfilter =3D = function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.$slidesCache !=3D=3D null) {=0A= =0A= _.unload();=0A= =0A= _.$slideTrack.children(this.options.slide).detach();=0A= =0A= _.$slidesCache.appendTo(_.$slideTrack);=0A= =0A= _.reinit();=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.unload =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= $('.slick-cloned', _.$slider).remove();=0A= if (_.$dots) {=0A= _.$dots.remove();=0A= }=0A= if (_.$prevArrow && (typeof _.options.prevArrow !=3D=3D = 'object')) {=0A= _.$prevArrow.remove();=0A= }=0A= if (_.$nextArrow && (typeof _.options.nextArrow !=3D=3D = 'object')) {=0A= _.$nextArrow.remove();=0A= }=0A= _.$slides.removeClass('slick-slide slick-active = slick-visible').attr("aria-hidden", "true").css('width', '');=0A= =0A= };=0A= =0A= Slick.prototype.unslick =3D function() {=0A= =0A= var _ =3D this;=0A= _.destroy();=0A= =0A= };=0A= =0A= Slick.prototype.updateArrows =3D function() {=0A= =0A= var _ =3D this,=0A= centerOffset;=0A= =0A= centerOffset =3D Math.floor(_.options.slidesToShow / 2);=0A= =0A= if (_.options.arrows =3D=3D=3D true && _.options.infinite !=3D=3D=0A= true && _.slideCount > _.options.slidesToShow) {=0A= _.$prevArrow.removeClass('slick-disabled');=0A= _.$nextArrow.removeClass('slick-disabled');=0A= if (_.currentSlide =3D=3D=3D 0) {=0A= _.$prevArrow.addClass('slick-disabled');=0A= _.$nextArrow.removeClass('slick-disabled');=0A= } else if (_.currentSlide >=3D _.slideCount - = _.options.slidesToShow && _.options.centerMode =3D=3D=3D false) {=0A= _.$nextArrow.addClass('slick-disabled');=0A= _.$prevArrow.removeClass('slick-disabled');=0A= } else if (_.currentSlide >=3D _.slideCount - 1 && = _.options.centerMode =3D=3D=3D true) {=0A= _.$nextArrow.addClass('slick-disabled');=0A= _.$prevArrow.removeClass('slick-disabled');=0A= }=0A= }=0A= =0A= };=0A= =0A= Slick.prototype.updateDots =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (_.$dots !=3D=3D null) {=0A= =0A= = _.$dots.find('li').removeClass('slick-active').attr("aria-hidden", = "true");=0A= _.$dots.find('li').eq(Math.floor(_.currentSlide / = _.options.slidesToScroll)).addClass('slick-active').attr("aria-hidden", = "false");=0A= =0A= }=0A= =0A= };=0A= =0A= Slick.prototype.visibility =3D function() {=0A= =0A= var _ =3D this;=0A= =0A= if (document[_.hidden]) {=0A= _.paused =3D true;=0A= _.autoPlayClear();=0A= } else {=0A= _.paused =3D false;=0A= _.autoPlay();=0A= }=0A= =0A= };=0A= =0A= $.fn.slick =3D function() {=0A= var _ =3D this,=0A= opt =3D arguments[0],=0A= args =3D Array.prototype.slice.call(arguments, 1),=0A= l =3D _.length,=0A= i =3D 0,=0A= ret;=0A= for (i; i < l; i++) {=0A= if (typeof opt =3D=3D 'object' || typeof opt =3D=3D = 'undefined')=0A= _[i].slick =3D new Slick(_[i], opt);=0A= else=0A= ret =3D _[i].slick[opt].apply(_[i].slick, args);=0A= if (typeof ret !=3D 'undefined') return ret;=0A= }=0A= return _;=0A= };=0A= =0A= }));=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/jquery_006.js /* * rwdImageMaps jQuery plugin v1.5 * * Allows image maps to be used in a responsive design by recalculating = the area coordinates to match the actual image size on load and = window.resize * * Copyright (c) 2013 Matt Stow * https://github.com/stowball/jQuery-rwdImageMaps * http://mattstow.com * Licensed under the MIT license */ ;(function(a){a.fn.rwdImageMaps=3Dfunction(){var c=3Dthis;var = b=3Dfunction(){c.each(function(){if(typeof(a(this).attr("usemap"))=3D=3D"= undefined"){return}var e=3Dthis,d=3Da(e);a("<img = />").load(function(){var = g=3D"width",m=3D"height",n=3Dd.attr(g),j=3Dd.attr(m);if(!n||!j){var = o=3Dnew = Image();o.src=3Dd.attr("src");if(!n){n=3Do.width}if(!j){j=3Do.height}}var= = f=3Dd.width()/100,k=3Dd.height()/100,i=3Dd.attr("usemap").replace("#","")= ,l=3D"coords";a('map[name=3D"'+i+'"]').find("area").each(function(){var = r=3Da(this);if(!r.data(l)){r.data(l,r.attr(l))}var = q=3Dr.data(l).split(","),p=3Dnew Array(q.length);for(var = h=3D0;h<p.length;++h){if(h%2=3D=3D=3D0){p[h]=3DparseInt(((q[h]/n)*100)*f)= }else{p[h]=3DparseInt(((q[h]/j)*100)*k)}}r.attr(l,p.toString())})}).attr(= "src",d.attr("src"))})};a(window).resize(b).trigger("resize");return = this}})(jQuery); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/common.js (function ($) { $( document ).ready(function() { $("#hideAll").hide(); }); $( document ).ready(function() { if(isMobile()){ $("body").addClass("mobile"); }else{ $("body").removeClass("mobile"); } }); $( window ).resize(function() { if(isMobile()){ $("body").addClass("mobile"); }else{ $("body").removeClass("mobile"); } }); function isMobile() { $.browser.device =3D = (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera = mini/i.test(navigator.userAgent.toLowerCase())); return $.browser.device; } =09 //superfish menu (.page_menu height) $( document ).ready(function() { $('.navbar-collapse .desktop-menu .block-superfish .sf-menu = ul').each(function () { $('.page_menu').height($(this).height()); }) }); =09 //notify checkbox selection $( document ).ready(function() { $('input[name=3Dadd_all]').click(function() { if ($(this).is(':checked')) { $('#notify_clickAll_checkbox_div input').attr('checked', 'checked'); } else { $('#notify_clickAll_checkbox_div input').removeAttr('checked'); } }); $('input[name=3Dwhat_new]').click(function() { if ($(this).is(':checked')) { $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_news]').attr('checked', 'checked'); } else { $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_news]').removeAttr('checked'); } }); $('input[name=3Dpolicy_study]').click(function() { if ($(this).is(':checked')) { $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_ps]').attr('checked', 'checked'); } else { $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_ps]').removeAttr('checked'); } }); $('input[name=3Dshopping_guide]').click(function() { if ($(this).is(':checked')) { $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_shopping_guide]').attr('checked', = 'checked'); $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_choice_article]').attr('checked', = 'checked'); $('#notify_clickAll_checkbox_div .notify_field_sg_group = input').attr('checked', 'checked'); } else { $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_shopping_guide]').removeAttr('checked'); $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_choice_article]').removeAttr('checked'); $('#notify_clickAll_checkbox_div .notify_field_sg_group = input').removeAttr('checked'); } }); $('.notify_field_sg_group input').click(function() { if ($(this).is(':checked')) { $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_shopping_guide]').attr('checked', = 'checked'); $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_choice_article]').attr('checked', = 'checked'); }else { if ($('.notify_field_sg_group input:checked').length=3D=3D0) { $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_shopping_guide]').removeAttr('checked'); $('#notify_clickAll_checkbox_div = input[name^=3Dnotify_node_type_choice_article]').removeAttr('checked'); } } }); =09 =09 if ($('input[name^=3Dnotify_node_type_news]').is(':checked')) { $('#edit-what-new').attr('checked', 'checked'); } =09 if ($('input[name^=3Dnotify_node_type_ps]').is(':checked')) { $('#edit-policy-study').attr('checked', 'checked'); } if ($('input[name^=3Dnotify_node_type_ps]').is(':not(:checked)')) { $('#edit-policy-study').removeAttr('checked'); } }); $( document ).ready(function() { // video player var isSafari =3D /constructor/i.test(window.HTMLElement); var video_state =3D false; if($(".videoPlayer").length > 0){ $(".videoPlayer").each(function(index) { var video_path =3D $(this).attr("data-video"); var cover_path =3D $(this).attr("data-cover"); $(this).html("<div id=3D'player_"+index+"'></div>"); jwplayer("player_"+index).setup({ width:"100%", backcolor: 'transparent', wmode: 'transparent', aspectratio: "16:9", primary: "flash", image: cover_path, file: video_path, base:"/sites/all/libraries/jwplayer/", 'events': { onBuffer: function(){ video_state =3D true; }, onPlay :function(){ video_state =3D true; }, onPause :function(){ video_state =3D false; }, onComplete :function(){ video_state =3D false; if($(".region-index-whats-new").length > 0) = { playSlick(); } } } }); }); } if($(".in_page_content iframe").length > 0){ $(window).resize(function() { $(".in_page_content iframe").each(function () { var iframe_width =3D $(this).width(); $(this).height(iframe_width*9/16); }); }); } if($(".date-display-single").length > 0) { $(".date-display-single").each(function () { var strNewString =3D = $(this).html().replace('=E5=B9=B4=E6=9C=88=E6=97=A5',''); $(this).html(strNewString); }); } if($(".pagination").length > 0) { $('.pagination = a[href*=3D"?field_publish_date_value[value]=3D"]').each(function () { var link =3D $(this).attr("href"); var patt =3D new = RegExp(/field_publish_date_value\[value\].([0-9]*-[0-9]*)/gm); var test_patt =3D patt.test(link); if(test_patt){ var patt_value =3D new = RegExp("([0-9]*-[0-9]*)"); var res =3D patt_value.exec(link); var value =3D res[0].split("-"); var new_link =3D = "field_publish_date_value[value][year]=3D"+value[0]+"&field_publish_date_= value[value][month]=3D"+parseInt(value[1]); new_link =3D = link.replace(/field_publish_date_value\[value\].([0-9]*-[0-9]*)/gm, = new_link); $(this).attr("href", new_link) ; } }); } if($(".serial-link").length > 0) { $('.serial-link').each(function () { var Serial =3D -1; //console.log($(this).position().left); }); } //index slide show if($(".region-index-whats-new").length > 0) { var play_speed =3D 5000; var click_pause =3D false; var hover_pause =3D false; var video_pause =3D false; var auto_Height =3D false; if($(window).width() <=3D 864) { auto_Height =3D true; }else{ auto_Height =3D false; } $( window ).resize(function() { if($(window).width() <=3D 864) { auto_Height =3D true; }else{ auto_Height =3D false; } }); = $('.view-display-id-index_whats_new_tumb_block_chi>.view-content').slick(= { slidesToShow: 1, slidesToScroll: 1, dots: true, touchMove: false, draggable: false, adaptiveHeight: auto_Height, //asNavFor: = ['.view-display-id-index_whats_new_tumb_block_chi>.view-header = .view-content', = '.view-display-id-index_whats_new_tumb_block_chi>.view-footer = .view-content'] asNavFor: = ['.view-display-id-index_whats_new_tumb_block_chi>.view-footer = .view-content'] }); = $('.view-display-id-index_whats_new_tumb_block_chi>.view-footer = .view-content').slick({ slidesToShow: 1, slidesToScroll: 1, speed: 10, fade: true, dots: true, touchMove: false, draggable: false, adaptiveHeight: true, cssEase: 'linear', autoplay: true, autoplaySpeed: play_speed, asNavFor: = ['.view-display-id-index_whats_new_tumb_block_chi>.view-footer = .view-content', = '.view-display-id-index_whats_new_tumb_block_chi>.view-content'] }); = $('.view-display-id-index_whats_new_tumb_block_gb>.view-content').slick({= slidesToShow: 1, slidesToScroll: 1, dots: true, touchMove: false, draggable: false, adaptiveHeight: auto_Height, //asNavFor: = ['.view-display-id-index_whats_new_tumb_block_gb>.view-header = .view-content', = '.view-display-id-index_whats_new_tumb_block_gb>.view-footer = .view-content'] asNavFor: = ['.view-display-id-index_whats_new_tumb_block_gb>.view-footer = .view-content'] }); = $('.view-display-id-index_whats_new_tumb_block_gb>.view-footer = .view-content').slick({ slidesToShow: 1, slidesToScroll: 1, speed: 10, fade: true, dots: true, touchMove: false, draggable: false, adaptiveHeight: auto_Height, cssEase: 'linear', autoplay: true, autoplaySpeed: play_speed, asNavFor: = ['.view-display-id-index_whats_new_tumb_block_gb>.view-footer = .view-content', = '.view-display-id-index_whats_new_tumb_block_gb>.view-content'] }); = $('.view-display-id-index_whats_new_tumb_block_en>.view-content').slick({= slidesToShow: 1, slidesToScroll: 1, dots: true, touchMove: false, draggable: false, adaptiveHeight: auto_Height, //asNavFor: = ['.view-display-id-index_whats_new_tumb_block_en>.view-header = .view-content', = '.view-display-id-index_whats_new_tumb_block_en>.view-footer = .view-content'] asNavFor: = ['.view-display-id-index_whats_new_tumb_block_en>.view-footer = .view-content'] }); = $('.view-display-id-index_whats_new_tumb_block_en>.view-footer = .view-content').slick({ slidesToShow: 1, slidesToScroll: 1, speed: 10, fade: true, dots: true, touchMove: false, draggable: false, adaptiveHeight: true, cssEase: 'linear', autoplay: true, autoplaySpeed: play_speed, asNavFor: = ['.view-display-id-index_whats_new_tumb_block_en>.view-footer = .view-content', = '.view-display-id-index_whats_new_tumb_block_en>.view-content'] }); = $('.view-display-id-index_whats_new_tumb_block_en>.view-content, = .view-display-id-index_whats_new_tumb_block_chi>.view-content, = .view-display-id-index_whats_new_tumb_block_gb>.view-content').on('setPos= ition', function () { //$(this).height($(this).width()*9/16); $( = ".view-display-id-index_whats_new_tumb_block_en>.slick-slider>.slick-list= " ).css("min-height",$(".jwplayer").width()*0.5633); $( = ".view-display-id-index_whats_new_tumb_block_gb>.slick-slider>.slick-list= " ).css("min-height",$(".jwplayer").width()*0.5633); $( = ".view-display-id-index_whats_new_tumb_block_chi>.slick-slider>.slick-lis= t" ).css("min-height",$(".jwplayer").width()*0.5633); = if($(".view-display-id-index_whats_new_tumb_block_chi").length > 0) { $(".slick-control-wrapper").css("top", = $(".view-display-id-index_whats_new_tumb_block_chi = .slick-dots").position().top + 10); } = if($(".view-display-id-index_whats_new_tumb_block_gb").length > 0) { $(".slick-control-wrapper").css("top", = $(".view-display-id-index_whats_new_tumb_block_gb = .slick-dots").position().top + 10); } = if($(".view-display-id-index_whats_new_tumb_block_en").length > 0) { $(".slick-control-wrapper").css("top", = $(".view-display-id-index_whats_new_tumb_block_en = .slick-dots").position().top + 10); } = $(this).find('.jwplayer').height($(this).find('img').height()); if($(".videoPlayer").length > 0) { jwplayer().stop(); } }); if($(".videoPlayer").length > 0) { jwplayer().onPlay(function () { video_pause =3D true; }); jwplayer().onPause(function () { video_pause =3D false; if (!click_pause && !hover_pause) { playSlick(); } }); jwplayer().onComplete(function () { video_pause =3D false; if (!click_pause && !hover_pause) { playSlick(); } }); } $('.slick-control-wrapper .slick-pause').on("click", = function () { click_pause =3D true; pauseSlick(); }); $('.slick-control-wrapper .slick-play').on("click", function = () { click_pause =3D false; playSlick(); }); $(".region-index-whats-new .slick-track").hover(function () = { = $(".slick-control-wrapper>.slick-pause").attr("title",$(".slick-control-w= rapper>.slick-pause").text()); = $(".slick-control-wrapper>.slick-play").attr("title",$(".slick-control-wr= apper>.slick-play").text()); hover_pause =3D true; pauseSlick(); }, function () { hover_pause =3D false; if (!click_pause && !video_pause && !video_state) { playSlick(); } }); function playSlick(){ if( = $('.view-display-id-index_whats_new_tumb_block_chi').length > 0){ = $('.view-display-id-index_whats_new_tumb_block_chi>.view-footer = .view-content').slick('slickPlay'); }else if( = $('.view-display-id-index_whats_new_tumb_block_gb').length > 0){ = $('.view-display-id-index_whats_new_tumb_block_gb>.view-footer = .view-content').slick('slickPlay'); }else if( = $('.view-display-id-index_whats_new_tumb_block_en').length > 0){ = $('.view-display-id-index_whats_new_tumb_block_en>.view-footer = .view-content').slick('slickPlay'); } $(".slick-control-wrapper>.slick-pause").show(); $(".slick-control-wrapper>.slick-play").hide(); } function pauseSlick(){ if( = $('.view-display-id-index_whats_new_tumb_block_chi').length > 0){ = $('.view-display-id-index_whats_new_tumb_block_chi>.view-footer = .view-content').slick('slickPause'); }else if( = $('.view-display-id-index_whats_new_tumb_block_gb').length > 0){ = $('.view-display-id-index_whats_new_tumb_block_gb>.view-footer = .view-content').slick('slickPause'); }else if( = $('.view-display-id-index_whats_new_tumb_block_en').length > 0){ = $('.view-display-id-index_whats_new_tumb_block_en>.view-footer = .view-content').slick('slickPause'); } $(".slick-control-wrapper>.slick-pause").hide(); $(".slick-control-wrapper>.slick-play").show(); } } if($(".view-display-id-block_sg_index").length > 0) { $('.view-display-id-block_sg_index .view-content').slick({ slidesToShow: 8, slidesToScroll: 1, infinite: false, touchMove: false, prevArrow: '<button type=3D"button" data-role=3D"none" = class=3D"slick-prev" aria-label=3D"previous"></button>', nextArrow: '<button type=3D"button" data-role=3D"none" = class=3D"slick-next" aria-label=3D"next"></button>', responsive: [ { breakpoint: 992, settings: { slidesToShow: 7 } }, { breakpoint: 765, settings: { slidesToShow: 6 } }, { breakpoint: 630, settings: { slidesToShow: 5 } }, { breakpoint: 540, settings: { slidesToShow: 4 } }, { breakpoint: 430, settings: { slidesToShow: 3 } }, { breakpoint: 340, settings: { slidesToShow: 2 } }, { breakpoint: 280, settings: { slidesToShow: 1 } } ] }); } if($(".adv-list").length > 0) { $('.adv-list>div').slick({ slidesToShow: 4, slidesToScroll: 1, infinite: false, touchMove: false, prevArrow: '<button type=3D"button" data-role=3D"none" = class=3D"slick-prev" aria-label=3D"previous"></button>', nextArrow: '<button type=3D"button" data-role=3D"none" = class=3D"slick-next" aria-label=3D"next"></button>', responsive: [ { breakpoint: 980, settings: { slidesToShow: 3 } }, { breakpoint: 780, settings: { slidesToShow: 2 } }, { breakpoint: 550, settings: { slidesToShow: 1 } } ] }); } // index cover start var control; var cover =3D $(".index-choice-cover"); var total =3D cover.find("li").length; cover.find("li").each(function( index ) { if(index =3D=3D 0){ control =3D "<div id=3D'thumbs'> <ul><li = class=3D'active'><button type=3D'button'>"+index+"</button></li>"; }else if (index =3D=3D=3D total - 1) { control =3D control + "<li><button = type=3D'button'>"+index+"</button></li></ul></div>"; cover.after(control); }else{ control =3D control + "<li><button = type=3D'button'>"+index+"</button></li>"; } }); cover.zAccordion({ speed: 100, tabWidth: "15%", width: "100%", height: 295, auto: false, invert:true, animationStart: function () { var clickedItem =3D $("#thumbs = li").eq($(".index-choice-cover").data("current")); $("#thumbs li").removeClass("active"); $("#thumbs = li").eq(clickedItem.index()).addClass("active"); $('.bef-select-as-links .form-item = .form-type-bef-link').eq(clickedItem.index()).find("a").click(); }, buildComplete: function () { //cover.height(cover.height()+5); } }); $("#thumbs button").click(function() { $(".index-choice-cover").zAccordion("trigger", = $(this).parent().index()); return false; }); // index cover end if($(".index-choice-cover").length > 0) { var cover4 =3D $(".index-choice-cover .views-row-4"); var cover5 =3D $(".index-choice-cover .views-row-5"); var tabWidth =3D "15%"; if($(window).width() <=3D 420) { tabWidth =3D "20%"; }else if($(window).width() >=3D 420 && $(window).width() = <=3D 991) { tabWidth =3D "18%"; }else{ tabWidth =3D "15%"; } $('.bef-select-as-links .form-item = .form-type-bef-link').eq(1).find("a").click(); if($(window).width() <=3D 420) { $(".index-choice-cover .views-row-4").remove(); $(".index-choice-cover .views-row-5").remove(); $("#thumbs li").hide(); $(".index-choice-cover").zAccordion("destroy", { removeStyleAttr: true, removeClasses: true, destroyComplete: { rebuild: { speed: 100, tabWidth: tabWidth, width: "100%", height: 295, auto: false, invert: true, animationStart: function () { var clickedItem =3D $("#thumbs = li").eq($(".index-choice-cover").data("current")); $("#thumbs li").removeClass("active"); $("#thumbs = li").eq(clickedItem.index()).addClass("active"); $('.bef-select-as-links .form-item = .form-type-bef-link').eq(clickedItem.index()+1).find("a").click(); }, buildComplete: function () { $("#thumbs li:lt(3)").show(); } } } }); }else{ cover4.appendTo('.index-choice-cover'); cover5.appendTo('.index-choice-cover'); $("#thumbs li").show(); $(".index-choice-cover").zAccordion("destroy", { removeStyleAttr: true, removeClasses: true, destroyComplete: { rebuild: { speed: 100, tabWidth: tabWidth, width: "100%", height: 295, auto: false, invert:true, animationStart: function () { var clickedItem =3D $("#thumbs = li").eq($(".index-choice-cover").data("current")); $("#thumbs li").removeClass("active"); $("#thumbs = li").eq(clickedItem.index()).addClass("active"); $('.bef-select-as-links .form-item = .form-type-bef-link').eq(clickedItem.index()+1).find("a").click(); }, buildComplete: function () { } } } }); } $( window ).resize(function() { $('.bef-select-as-links .form-item = .form-type-bef-link').eq(1).find("a").click(); if($(window).width() <=3D 420) { tabWidth =3D "20%"; }else if($(window).width() >=3D 420 && $(window).width() = <=3D 991) { tabWidth =3D "18%"; }else{ tabWidth =3D "15%"; } if($(window).width() <=3D 420) { $(".index-choice-cover .views-row-4").remove(); $(".index-choice-cover .views-row-5").remove(); $("#thumbs li").hide(); $(".index-choice-cover").zAccordion("destroy", { removeStyleAttr: true, removeClasses: true, destroyComplete: { rebuild: { speed: 100, tabWidth: tabWidth, width: "100%", height: 295, auto: false, invert: true, animationStart: function () { var clickedItem =3D $("#thumbs = li").eq($(".index-choice-cover").data("current")); $("#thumbs = li").removeClass("active"); $("#thumbs = li").eq(clickedItem.index()).addClass("active"); $('.bef-select-as-links .form-item = .form-type-bef-link').eq(clickedItem.index()+1).find("a").click(); }, buildComplete: function () { $("#thumbs li:lt(3)").show(); } } } }); }else{ cover4.appendTo('.index-choice-cover'); cover5.appendTo('.index-choice-cover'); $("#thumbs li").show(); $(".index-choice-cover").zAccordion("destroy", { removeStyleAttr: true, removeClasses: true, destroyComplete: { rebuild: { speed: 100, tabWidth: tabWidth, width: "100%", height: 295, auto: false, invert:true, animationStart: function () { var clickedItem =3D $("#thumbs = li").eq($(".index-choice-cover").data("current")); $("#thumbs = li").removeClass("active"); $("#thumbs = li").eq(clickedItem.index()).addClass("active"); $('.bef-select-as-links .form-item = .form-type-bef-link').eq(clickedItem.index()+1).find("a").click(); }, buildComplete: function () { } } } }); } }); } if($(".toggle-link").length > 0) { $('.toggle-link').on("click", function () { var target_id =3D "#" + = $(this).attr("href").match(/\'(.*?)\'/g)[0].replace(/'/g, ""); if ($(target_id).is(':visible')) { $(this).removeClass('active'); } else { $(this).addClass('active'); } }); } }); })(jQuery); function MM_swapImgRestore() { //v3.0 var i,x,a=3Ddocument.MM_sr; = for(i=3D0;a&&i<a.length&&(x=3Da[i])&&x.oSrc;i++) x.src=3Dx.oSrc; } function MM_preloadImages() { //v3.0 var d=3Ddocument; if(d.images){ if(!d.MM_p) d.MM_p=3Dnew Array(); var i,j=3Dd.MM_p.length,a=3DMM_preloadImages.arguments; for(i=3D0; = i<a.length; i++) if (a[i].indexOf("#")!=3D0){ d.MM_p[j]=3Dnew Image; = d.MM_p[j++].src=3Da[i];}} } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=3Ddocument; = if((p=3Dn.indexOf("?"))>0&&parent.frames.length) { d=3Dparent.frames[n.substring(p+1)].document; n=3Dn.substring(0,p);} if(!(x=3Dd[n])&&d.all) x=3Dd.all[n]; for = (i=3D0;!x&&i<d.forms.length;i++) x=3Dd.forms[i][n]; for(i=3D0;!x&&d.layers&&i<d.layers.length;i++) = x=3DMM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=3Dd.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=3D0,x,a=3DMM_swapImage.arguments; document.MM_sr=3Dnew Array; = for(i=3D0;i<(a.length-2);i+=3D3) if ((x=3DMM_findObj(a[i]))!=3Dnull){document.MM_sr[j++]=3Dx; = if(!x.oSrc) x.oSrc=3Dx.src; x.src=3Da[i+2];} } function toggle(area) { var ele =3D document.getElementById(area); if(ele.style.display =3D=3D "block") { ele.style.display =3D "none"; } else { ele.style.display =3D "block"; } } function getParameterByName(name) { name =3D name.replace(/[\[]/, "\\[").replace(/[\]]/, = "\\]").replace(/%20/g, ""); var regex =3D new RegExp("[\\?&]" + name + "=3D([^&#]*)"), results =3D regex.exec(location.search); return results =3D=3D=3D null ? "" : = decodeURIComponent(results[1].replace(/\+/g, " ")); } function videoStop(){ } ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/layout.js (function ($) {=0A= =0A= $( document ).ready(function() {=0A= =0A= if($(".view-display-id-block_sg_index").length > 0){=0A= $(".view-display-id-block_sg_index").append( "<div = style=3D'position: relative;'><div class=3D'gs_popover'></div></div>" );=0A= $(".consumer-link").attr("href","javascript:void(0)");=0A= =0A= $('.view-display-id-block_sg_index = .view-content').on('setPosition', function(event, slick){=0A= var popover =3D $(".gs_popover");=0A= popover.hide();=0A= = $("a.consumer-link").find(".icon-image").removeClass("on");=0A= $("a.consumer-link").removeClass("active");=0A= =0A= =0A= $(".view-display-id-block_sg_index .slick-prev, = .view-display-id-block_sg_index = .slick-next").height($(".view-display-id-block_sg_index = .views-row-1").height());=0A= =0A= $('a.consumer-link').hover(function(e) {=0A= $("a.consumer-link").removeClass("active");=0A= var current =3D = $(this).parent().parent().parent().parent();=0A= var position =3D $(this).position();=0A= var allsgImage =3D = $(".view-display-id-block_sg_index").find(".icon-image");=0A= var sgImage =3D $(this).find(".icon-image");=0A= var targetList = =3D$(this).parent().parent().parent().find(".views-field-nothing");=0A= =0A= =0A= if(sgImage.hasClass( "on" )){=0A= =0A= }else{=0A= popover.height(0);=0A= if(position.left > = current.parent().width()/2+20){=0A= popover.css("right","0");=0A= }else{=0A= popover.css("right","auto");=0A= }=0A= allsgImage.removeClass("on");=0A= sgImage.addClass("on");=0A= $(this).addClass("active");=0A= var addHeight =3D 0;=0A= if($(window).width() <=3D 991){=0A= if($(window).width() <=3D 480){=0A= addHeight =3D 0;=0A= }else{=0A= addHeight =3D 0;=0A= }=0A= }=0A= =0A= =0A= =0A= popover.css("bottom",$(this).height()+addHeight);=0A= popover.show();=0A= popover.html(targetList.html());=0A= var MaxHeight =3D -1;=0A= = popover.find('.field-content').find(".sg-cat-link").each(function () {=0A= MaxHeight =3D MaxHeight > $(this).height() ? = MaxHeight : $(this).height();=0A= });=0A= = popover.find('.field-content').find(".sg-cat-link").css("height",MaxHeigh= t+10);=0A= var popHeight =3D 60;=0A= = if(popover.find('.field-content').find(".sg-cat-link").length > 0){=0A= popHeight =3D = popover.find('.field-content').find(".sg-cat-link").last().position().top= + 55;=0A= }=0A= =0A= popover.stop().animate({=0A= height:popHeight=0A= }, 500, function() {=0A= });=0A= =0A= }=0A= e.stopPropagation();=0A= =0A= },function(){=0A= =0A= if ($('.region-sidebar-first:hover').length !=3D 0) {=0A= =0A= popover.hover(function(){=0A= =0A= },function(){=0A= =0A= popover.hide();=0A= $(".icon-image").removeClass("on");=0A= $("a.consumer-link").removeClass("active");=0A= =0A= });=0A= }else{=0A= =0A= popover.hide();=0A= $(".icon-image").removeClass("on");=0A= $("a.consumer-link").removeClass("active");=0A= =0A= }=0A= =0A= });=0A= =0A= });=0A= }=0A= =0A= =0A= =0A= if($("#navbar .menu").length > 0){=0A= $("#navbar .menu li").each(function () {=0A= if($(this).height() > 50){=0A= $(this).addClass("double-line");=0A= }=0A= });=0A= //console.log($("#navbar .menu").height());=0A= =0A= }=0A= =0A= if ($(".region-content .view .data-row, .region-content .view = .video-row, .region-content .view .info-graph-row").length > 0) {=0A= if($(".view-archive-views").length =3D=3D 0 && = $(".view-keyword-search").length =3D=3D 0){=0A= $(".page-header").addClass("sr-only");=0A= }=0A= }=0A= =0A= if ($(".breadcrumb").length > 0) {=0A= if ($("#block-block-53").length > 0) {=0A= $('.breadcrumb = a[href*=3D"news/press_releases/list"]').addClass("media_big_section");=0A= }=0A= }=0A= =0A= =0A= if ($(".flag-favorites").length =3D=3D 0) {=0A= $(".temp-fav-icon").hide();=0A= }=0A= =0A= $(".search a").on("click", function(e){=0A= =0A= $('.search-box-wapper input').focus();=0A= e.stopPropagation();=0A= });=0A= =0A= $('.search-box-wapper input').focus(function()=0A= {=0A= $(this).show();=0A= $(this).animate({ width: 110 }, 'fast');=0A= }).blur(function()=0A= {=0A= $(this).animate({ width: 0 }, 'fast', function() {=0A= $(this).hide();=0A= });=0A= });=0A= =0A= if ($(".tabList").length > 0) {=0A= $(".tabList li a").on("click", function(){=0A= $(".tabList li").removeClass("on");=0A= $(this).parent().addClass("on");=0A= });=0A= }=0A= =0A= // desktop menu=0A= if ($(".sf-main-menu").length > 0) {=0A= if($(".sf-main-menu>.menuparent.sfHover>ul").length > 0){=0A= = changeMenuHeight($(".sf-main-menu>.menuparent.sfHover>ul"));=0A= }=0A= =0A= $(".sf-main-menu>.menuparent>a").hover(function() {=0A= changeMenuHeight($(this).parent().find("ul"));=0A= });=0A= =0A= =0A= }=0A= =0A= =0A= // quick link=0A= if ($("#botMenu").length > 0) {=0A= changeFooterHeight();=0A= =0A= $(window).resize(function() {=0A= changeFooterHeight();=0A= });=0A= }=0A= =0A= =0A= $('.article-img img,.index-whats-new-block = img').removeAttr("width");=0A= $('.article-img img,.index-whats-new-block = img').removeAttr("height");=0A= =0A= // ajax hack=0A= $( document ).ajaxComplete(function() {=0A= if ($(".view-display-id-mobile_views_selector").length > 0) {=0A= $(".view-display-id-mobile_views_selector = form").submit();=0A= //$("form.ctools-auto-submit-processed").submit();=0A= }=0A= });=0A= =0A= =0A= =0A= =0A= // workbend submit=0A= $('#workbench-moderation-moderate-form').submit(function() {=0A= if(confirm("Are you sure?")) {=0A= return;=0A= }=0A= event.preventDefault(); =0A= });=0A= =0A= $('#workbench-moderation-moderate-form .form-submit').html('Apply');=0A= =0A= // choice=0A= if ($("#views-exposed-form-choice-views-upper").length > 0) {=0A= =0A= =0A= =0A= $('#edit-serial-wrapper .views-widget').before("<button = class=3D'serial-prev' style=3D'position: absolute; left: = -10px;'><</button>");=0A= $('#edit-serial-wrapper .views-widget').append("<button = class=3D'serial-next' style=3D'position: absolute; = right:0;'>></button>");=0A= changeChoiceList("load");=0A= $('.serial-next').on("click", function(e){=0A= changeChoiceList("next");=0A= e.preventDefault();=0A= });=0A= =0A= $('.serial-prev').on("click", function(e){=0A= changeChoiceList("prev");=0A= e.preventDefault();=0A= });=0A= =0A= $( document ).ajaxComplete(function() {=0A= $('#edit-serial-wrapper .views-widget').before("<button = class=3D'serial-prev' style=3D'position: absolute; left: = -10px;'><</button>");=0A= $('#edit-serial-wrapper .views-widget').append("<button = class=3D'serial-next' style=3D'position: absolute; = right:0;'>></button>");=0A= changeChoiceList("ajax");=0A= RemoveRepeatYear();=0A= =0A= $('.serial-next').on("click", function(e){=0A= changeChoiceList("next");=0A= e.preventDefault();=0A= });=0A= =0A= $('.serial-prev').on("click", function(e){=0A= changeChoiceList("prev");=0A= e.preventDefault();=0A= });=0A= =0A= });=0A= =0A= }=0A= =0A= =0A= if($(".date-display-single").length > 0) {=0A= $(".date-display-single").each(function () {=0A= var strNewString =3D = $(this).html().replace('=E5=B9=B4=E6=9C=88=E6=97=A5','');=0A= $(this).html(strNewString);=0A= });=0A= }=0A= =0A= =0A= if($(".pagination").length > 0) {=0A= $('.pagination = a[href*=3D"?field_publish_date_value[value]=3D"]').each(function () {=0A= var link =3D $(this).attr("href");=0A= var patt =3D new = RegExp(/field_publish_date_value\[value\].([0-9]*-[0-9]*)/gm);=0A= var test_patt =3D patt.test(link);=0A= if(test_patt){=0A= var patt_value =3D new RegExp("([0-9]*-[0-9]*)");=0A= var res =3D patt_value.exec(link);=0A= var value =3D res[0].split("-");=0A= var new_link =3D = "field_publish_date_value[value][year]=3D"+value[0]+"&field_publish_date_= value[value][month]=3D"+parseInt(value[1]);=0A= new_link =3D = link.replace(/field_publish_date_value\[value\].([0-9]*-[0-9]*)/gm, = new_link);=0A= $(this).attr("href", new_link) ;=0A= }=0A= });=0A= =0A= }=0A= =0A= if($(".serial-link").length > 0) {=0A= var SerialMaxRight =3D 0;=0A= var SerialRight =3D 0;=0A= =0A= $(window).resize(function() {=0A= $('.serial-link').each(function () {=0A= SerialRight =3D $(this).position().left + = $(this).width();=0A= SerialMaxRight =3D SerialMaxRight > SerialRight ? = SerialMaxRight : SerialRight;=0A= =0A= });=0A= //$('.pager-load-more').width(SerialMaxRight);=0A= });=0A= =0A= }=0A= =0A= //sandy added, datepicker-year in descending order=0A= $(document.body).delegate('select.ui-datepicker-year', 'mousedown', = function() {=0A= (function(sel) {=0A= var el =3D $(sel);=0A= var ops =3D $(el).children().get();=0A= if ( ops.length > 0 && $(ops).first().val() < $(ops).last().val() ) {=0A= $(el).empty();=0A= $(el).html(ops.reverse());=0A= }=0A= })(this);=0A= });=0A= =0A= =0A= // mobile=0A= if($(".region-sidebar-third").length > 0){=0A= if($(window).width() <=3D 991 && $(window).width() > 600 ) {=0A= var SidebarThirdMaxHeight =3D -1;=0A= $(".region-sidebar-third .block").each(function () {=0A= SidebarThirdMaxHeight =3D SidebarThirdMaxHeight > = $(this).height() ? SidebarThirdMaxHeight : $(this).height();=0A= });=0A= $(".region-sidebar-third .block").each(function () {=0A= $(this).css("min-height", SidebarThirdMaxHeight + = 30);=0A= });=0A= }=0A= $(window).resize(function() {=0A= //console.log($(window).width());=0A= if($(window).width() <=3D 991 && $(window).width() > = 600) {=0A= $(".region-sidebar-third = .block").css("min-height", 0);=0A= var SidebarThirdMaxHeight =3D -1;=0A= $(".region-sidebar-third .block").each(function = () {=0A= =0A= SidebarThirdMaxHeight =3D = SidebarThirdMaxHeight > $(this).height() ? SidebarThirdMaxHeight : = $(this).height();=0A= });=0A= $(".region-sidebar-third .block").each(function = () {=0A= $(this).css("min-height", = SidebarThirdMaxHeight + 30);=0A= });=0A= }else{=0A= $(".region-sidebar-third = .block").css("min-height", 0);=0A= }=0A= });=0A= =0A= =0A= }=0A= =0A= // set tablet upper summary height=0A= if($(".upper_summary").length > 0) {=0A= // if ($(window).width() > 991 && $(".mobile").length > 0) {=0A= var upper_summary_height =3D $(".upper_summary = .upper_title").height() + $(".upper_summary .upper_date").height() + = $(".upper_summary .upper_body").height();=0A= $(".article-img").css("min-height", = upper_summary_height);=0A= $(window).resize(function() {=0A= upper_summary_height =3D $(".upper_summary = .upper_title").height() + $(".upper_summary .upper_date").height() + = $(".upper_summary .upper_body").height();=0A= $(".article-img").css("min-height", = upper_summary_height);=0A= });=0A= // }=0A= }=0A= =0A= // mobile menu control=0A= $(".navbar-toggle").on("click", function(){=0A= $(".navbar-collapse-search.in").collapse('hide');=0A= var mobile_menu =3D $(this).attr("data-target");=0A= if($(mobile_menu).is(':hidden')){=0A= = $(".mobile-menu").height($(window).height()-$(".navbar-header").height())= ;=0A= = $("html").css("overflow","hidden").height($(window).height());=0A= $("body").height(0).css("overflow","hidden");=0A= =0A= }else{=0A= $(".mobile-menu").height("auto");=0A= $("html").css("overflow","auto");=0A= $("body").height("auto").css("overflow","auto");=0A= }=0A= });=0A= =0A= $(".navbar-toggle-search").on("click", function(){=0A= $(".navbar-collapse.in").collapse('hide');=0A= $(".mobile-menu").height("auto");=0A= $("html").css("overflow","auto");=0A= });=0A= =0A= =0A= $( window ).resize(function() {=0A= $(".mobile-menu").height("auto");=0A= $("html").css("overflow","auto");=0A= $("body").height("auto").css("overflow","auto");=0A= $(".navbar-collapse.in").collapse('hide');=0A= });=0A= =0A= if($(".mobile-menu .block-title").length > 0){=0A= $( ".mobile-menu .block-title" ).each(function( ) {=0A= var title =3D $(this).html();=0A= var pid =3D $(this).closest('section').attr('id');=0A= $(this).html('<a href=3D"#'+pid+'" = data-target=3D"">'+title+'</a>');=0A= });=0A= $( ".mobile-menu .block-title a" ).on("click", function(){=0A= if($(this).hasClass("active")){=0A= $(this).removeClass("active");=0A= = $(this).parent().parent().find(".view-content").hide();=0A= }else{=0A= $(this).addClass("active");=0A= = $(this).parent().parent().find(".view-content").show();=0A= }=0A= });=0A= }=0A= =0A= =0A= if(!$( ".mobile-menu .menu>li.active-trail>ul.menu>li" = ).hasClass("active-trail")){=0A= $( ".mobile-menu = .menu>li.active-trail>ul.menu>li:first-child").addClass("active-trail");=0A= }=0A= =0A= $( ".mobile-menu .menu>li" ).each(function( ) {=0A= if($(this).hasClass("active") || = $(this).hasClass("active-trail")){=0A= $(this).find("a").first().addClass("active");=0A= $(this).find("ul").show();=0A= }=0A= });=0A= =0A= $( ".mobile-menu .menu .menu li" ).each(function( ) {=0A= if($(this).hasClass("active") || = $(this).hasClass("active-trail")){=0A= $(this).parent().parent().find("a").addClass("active");=0A= $(this).parent().show();=0A= }=0A= });=0A= =0A= =0A= $(".mobile-menu .menu = .expanded>a").attr("href","javascript:void(0)");=0A= =0A= $(".mobile-menu .menu .expanded>a").click(function(event){=0A= event.preventDefault();=0A= var submenu =3D $(this).parent().find('ul');=0A= if(submenu.is(":visible")){=0A= $(this).removeClass("active");=0A= submenu.hide();=0A= }else{=0A= $(this).addClass("active");=0A= submenu.show();=0A= }=0A= =0A= });=0A= =0A= //pager=0A= if($(".pagination").length > 0){=0A= centerPager();=0A= $( window ).resize(function() {=0A= centerPager();=0A= });=0A= =0A= if($(".view-archive-views").length > 0){=0A= $( ".pagination li" ).each(function( index ) {=0A= var temp_link =3D $(this).find("a").attr("href");=0A= if(temp_link !=3D "#" || temp_link !=3D""){=0A= $(this).find("a").attr("href", temp_link + = "#views-row-header");=0A= }=0A= });=0A= }=0A= =0A= }=0A= =0A= if($("select").length > 0) {=0A= $(".view select:visible").each(function () {=0A= =0A= if(!$(this).parent().hasClass('style_select')){=0A= $(this).wrap("<div class=3D'style_select'></div>");=0A= }=0A= });=0A= $( window ).resize(function() {=0A= $(".view select:visible").each(function () {=0A= =0A= if(!$(this).parent().hasClass('style_select')){=0A= $(this).wrap("<div = class=3D'style_select'></div>");=0A= }=0A= });=0A= });=0A= /*=0A= $('option').click(function () {=0A= if(!$(this).parent().hasClass('style_select')){=0A= $(this).wrap("<div class=3D'style_select'></div>");=0A= }=0A= });=0A= if(document.addEventListener && = !window.requestAnimationFrame) {=0A= $('option').click(function () {=0A= // $('.main-container .style_select select').blur();=0A= });=0A= }=0A= */=0A= =0A= }=0A= =0A= if($(".large_table").length > 0) {=0A= $(".large_table").each(function () {=0A= $(this).wrap( "<div class=3D'table_overflow'></div>" );=0A= =0A= })=0A= }=0A= =0A= =0A= });=0A= =0A= =0A= function changeFooterHeight(){=0A= /*=0A= var botMenuMaxHeight =3D -1;=0A= $('.region-footer .menu').each(function() {=0A= botMenuMaxHeight =3D botMenuMaxHeight > $(this).height() ? = botMenuMaxHeight : $(this).height();=0A= });=0A= $('.region-footer .menu').each(function() {=0A= $(this).height(botMenuMaxHeight);=0A= });=0A= =0A= var qlist =3D $(".region-footer .menu li.expanded");=0A= var qlistNum =3D qlist.length;=0A= var qMenuWidth =3D $("#botMenu").width();=0A= var qlistWidth =3D (qMenuWidth-15)/qlistNum;=0A= qlist.width(qlistWidth);=0A= */=0A= }=0A= =0A= =0A= =0A= function changeMenuHeight(obj){=0A= var sub_menu =3D obj;=0A= var sub_menu_height =3D sub_menu.height();=0A= var sub_menu_single_height =3D = sub_menu.find(".first").outerHeight();=0A= if(sub_menu_height > sub_menu_single_height) {=0A= sub_menu.addClass("double");=0A= }=0A= var sub_menu_first =3D sub_menu.find("li").eq(0).offset().left;=0A= sub_menu.find("li").each(function() {=0A= if($(this).offset().left =3D=3D sub_menu_first){=0A= $(this).addClass("no-border");=0A= }=0A= })=0A= =0A= }=0A= =0A= function centerPager(){=0A= =0A= var active_page_num =3D $(".pagination .active = a").text().match(/\d/g);=0A= var temp_active_page_num =3D "";=0A= var active_page_num_added_word =3D "";=0A= =0A= for (var i=3D0; i<active_page_num.length; i++) {=0A= temp_active_page_num +=3D ""+active_page_num[i];=0A= }=0A= =0A= if($(window).width() <=3D 480) {=0A= if($("html").attr("lang") =3D=3D "zh-hant"){=0A= active_page_num_added_word =3D = "=E7=AC=AC"+temp_active_page_num+"=E9=A0=81";=0A= }else if($("html").attr("lang") =3D=3D "zh-hans"){=0A= active_page_num_added_word =3D = "=E7=AC=AC"+temp_active_page_num+"=E9=A1=B5";=0A= }else{=0A= active_page_num_added_word =3D "Page = "+temp_active_page_num;=0A= }=0A= $(".pagination .active = a").text(active_page_num_added_word);=0A= }else{=0A= $(".pagination .active = a").text(""+temp_active_page_num+"");=0A= }=0A= }=0A= =0A= =0A= function RemoveRepeatYear(){=0A= var year_title;=0A= var year_title_temp;=0A= $(".view-id-choice_views .view-content h3").each(function() {=0A= year_title =3D $(this).html();=0A= if(year_title =3D=3D year_title_temp){=0A= $(this).hide();=0A= }else{=0A= year_title_temp =3D year_title;=0A= }=0A= });=0A= }=0A= =0A= =0A= =0A= function changeChoiceList(type) {=0A= var link_arr =3D [];=0A= var link_active =3D 0;=0A= var last_show_link =3D 0;=0A= var first_show_link =3D 0;=0A= var first_show_link_rel =3D 0;=0A= var count_link =3D 0;=0A= var after_link =3D 0;=0A= =0A= $(".bef-select-as-links>.form-item>.form-type-bef-link = a").removeClass('first');=0A= $(".bef-select-as-links>.form-item>.form-type-bef-link = a").removeClass('last');=0A= =0A= =0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link").each(function = (index) {=0A= =0A= if (type =3D=3D "load") {=0A= =0A= //if = ($(this).attr("id").indexOf(parseInt(getParameterByName("serial"))) >=3D = 0) {=0A= // $(this).children("a").click();=0A= //}=0A= =0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link:visible:first = a").addClass("first");=0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link:visible:last = a").addClass("last");=0A= =0A= if ($(this).children('a').hasClass("active")) {=0A= link_active =3D index;=0A= }=0A= =0A= if ($(this).children('a').hasClass("last")) {=0A= last_show_link =3D index;=0A= }=0A= =0A= if ($(this).children('a').hasClass("first")) {=0A= first_show_link =3D index;=0A= first_show_link_rel =3D $(this).attr("rel");=0A= }=0A= =0A= =0A= } else {=0A= =0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link:visible:first = a").addClass("first");=0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link:visible:last = a").addClass("last");=0A= =0A= if ($(this).children('a').hasClass("active")) {=0A= link_active =3D index;=0A= =0A= }=0A= =0A= if ($(this).children('a').hasClass("last")) {=0A= last_show_link =3D index;=0A= }=0A= =0A= if ($(this).children('a').hasClass("first")) {=0A= first_show_link =3D index;=0A= first_show_link_rel =3D $(this).attr("rel");=0A= }=0A= =0A= }=0A= =0A= link_arr.push($(this));=0A= });=0A= =0A= var link_total =3D link_arr.length;=0A= var total_visible_link =3D = $(".bef-select-as-links>.form-item>.form-type-bef-link:visible").length;=0A= =0A= if (type =3D=3D "next") {=0A= =0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link").hide();=0A= $('.serial-prev').show();=0A= for (i =3D 1; i <=3D total_visible_link; i++) {=0A= if (link_arr[last_show_link + i]) {=0A= link_arr[last_show_link + i].show();=0A= }=0A= }=0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link:visible:first = a").addClass("first");=0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link:visible:last = a").addClass("last");=0A= =0A= } else if (type =3D=3D "prev") {=0A= =0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link").hide();=0A= $('.serial-next').show();=0A= =0A= count_link =3D 0;=0A= for (i =3D 6; i > 0; i--) {=0A= if (link_arr[first_show_link_rel - i]) {=0A= link_arr[first_show_link_rel - i].show();=0A= count_link ++;=0A= after_link =3D first_show_link_rel - i;=0A= //console.log(after_link);=0A= }=0A= }=0A= =0A= if(count_link !=3D 0){=0A= for (i =3D 1; i <=3D 6-count_link; i++) {=0A= if (link_arr[after_link + i]) {=0A= link_arr[after_link + i].show();=0A= //console.log(after_link + i);=0A= }=0A= }=0A= }=0A= =0A= } else {=0A= =0A= count_link =3D 0;=0A= after_link =3D 0;=0A= for ( y =3D 2; y > 0; y--) {=0A= if (link_arr[link_active - y]) {=0A= link_arr[link_active - y].show();=0A= count_link ++;=0A= }=0A= }=0A= if(count_link <1){=0A= after_link =3D 6;=0A= }else if(count_link < 2){=0A= after_link =3D 5;=0A= }else{=0A= after_link =3D 4;=0A= }=0A= for (i =3D 0; i < after_link; i++) {=0A= if (link_arr[link_active + i]) {=0A= link_arr[link_active + i].show();=0A= }=0A= }=0A= }=0A= =0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link:visible:first = a").addClass("first");=0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link:visible:last = a").addClass("last");=0A= =0A= = $(".bef-select-as-links>.form-item>.form-type-bef-link").each(function( = index ) {=0A= $(this).attr("rel", index);=0A= });=0A= //console.log(first_show_link+","+last_show_link+","+ = link_total);=0A= =0A= = if($(".bef-select-as-links>.form-item>.form-type-bef-link:visible:first")= .attr("rel") =3D=3D 0){=0A= $('.serial-prev').hide();=0A= $('.serial-next').show();=0A= }=0A= = if($(".bef-select-as-links>.form-item>.form-type-bef-link:visible:last").= attr("rel") =3D=3D link_total-1){=0A= =0A= $('.serial-next').hide();=0A= $('.serial-prev').show();=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= })(jQuery);=0A= =0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/listDecorate.js /******************************************************************=0A= Javascript to add hyperlinks in the press releas on the fly=0A= =0A= Version : 2.0=0A= Author : irc@isd.gov.hk=0A= Date : 4 Oct 2007=0A= ******************************************************************/=0A= (function ($) {=0A= =0A= //Create hyperlink on the fly=0A= $(document).ready(function(){=0A= =0A= //return if the PR is related to fraudulent website=0A= if ( (document.title.match(/Fraudulent website/i)) ||=0A= = (document.title.indexOf('=E5=9A=99=E8=AB=9B=E8=A9=90=E5=9A=99=E8=B8=9D=E8= =95=AD=E5=9A=99=E8=B8=9D=E8=95=AD') !=3D -1)=0A= ) return;=0A= =0A= //return if hyperlinks added manually=0A= if ($("#pressrelease a").is("a")) return;=0A= =0A= //replace hyperlinks if they are composed in full space characters=0A= var patternArray =3D new Array(=0A= "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD",=0A= "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD",=0A= "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD",=0A= "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD",=0A= "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E8=B8=9D=E8=95=AD", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E7=91=BE", = "=E5=9A=99=E7=92=80", "=E5=9A=99=E7=95=BF", "=E5=9A=99=E7=98=A0",=0A= "=E5=9A=99=E7=98=A6", "=E5=9A=99=E7=98=A2", = "=E5=9A=99=E8=B8=9D=E8=95=AD", "=E5=9A=99=E7=98=A9", = "=E5=9A=99=E7=9E=8C","=E5=9A=99=E8=B8=9D=E8=95=AD","=E5=9A=99=E8=B8=9D=E8= =95=AD");=0A= =0A= var charArray =3D new Array(=0A= "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",=0A= "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",=0A= "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",=0A= "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",=0A= "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",=0A= ":", "@", "/", ".", ".","_","-");=0A= =0A= //Temp string to test full space characters=0A= var content =3D $("#pressrelease").html();=0A= var tmp =3D content;=0A= var str =3D "";=0A= =0A= if(tmp !=3D null) {=0A= for (var i =3D 0; i < patternArray.length; i++) {=0A= tmp =3D tmp.replace(new RegExp(patternArray[i], "g"), = charArray[i]);=0A= }=0A= =0A= =0A= var Re1 =3D = /[-\w_\.]+@[-\w_\.]*(\.(aero|biz|cat|com|coop|edu|gov|info|int|jobs|mil|m= obi|museum|name|net|org|pro|tel|travel|asia|ac|ad|ae|af|ag|ai|al|am|an|ao= |aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|= bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|d= m|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi= |gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|= ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|l= s|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx= |my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|nc.tr|om|pa|pe|pf|pg|ph|pk|pl|= pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|s= m|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw= |tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu))+/i;=0A= var Re2 =3D = /(http(s)*:\/\/)?((www\.)?[-\w_\.]*(\.(aero|biz|cat|com|coop|edu|gov|info= |int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|asia|ac|ad|ae|af|ag= |ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|= bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|c= y|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd= |ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|= il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|l= b|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms= |mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|nc.tr|om|pa|pe|= pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|s= h|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to= |tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu)= )+(\/([-\w_\.\?&;#=3D%]|<br( \/)*>)*)*)/i;=0A= var m1 =3D Re1.exec(tmp);=0A= var m2 =3D Re2.exec(tmp);=0A= =0A= =0A= while ((m1 !=3D null) || (m2 !=3D null)) {=0A= if ((m1 !=3D null) && (m2 !=3D null))=0A= var m =3D (m1.index < m2.index) ? m1 : m2;=0A= else=0A= var m =3D (m1 !=3D null) ? m1 : m2;=0A= =0A= //clear undefine backreferences=0A= for (var i =3D 0; i < m.length; i++)=0A= if (!m[i]) m[i] =3D "";=0A= =0A= //Tail Shifting=0A= while (m[0].match(/<br( \/)*>$/i) || m[0].match(/\.$/) || = m[0].match(/ $/)) {=0A= m[0] =3D m[0].replace(/<br( \/)*>$/i, "");=0A= m[3] =3D m[3].replace(/<br( \/)*>$/i, "");=0A= m[0] =3D m[0].replace(/\.$/, "");=0A= m[3] =3D m[3].replace(/\.$/, "");=0A= m[0] =3D m[0].replace(/ $/, "");=0A= m[3] =3D m[3].replace(/ $/, "");=0A= }=0A= =0A= // don't replace if it is a kanhan image=0A= var r =3D ( (m[3]) && (m[3].match(/sc\.isd\.gov\.hk/i)) ) ? = m[0] : (m =3D=3D m1) ?=0A= "<a href=3D'mailto:" + m[0] + "'>" + m[0] + "</a>" :=0A= "<a href=3D'http" + m[2] + "://" + m[3].replace(/<br( = \/)*>/ig, "") + "' target=3D'_blank'>" + m[0] + "</a>";=0A= =0A= str +=3D content.substring(0, m.index) + r;=0A= content =3D content.substring(m.index + m[0].length, = content.length);=0A= tmp =3D tmp.substring(m.index + m[0].length, tmp.length);=0A= =0A= m1 =3D Re1.exec(tmp);=0A= m2 =3D Re2.exec(tmp);=0A= }=0A= =0A= str +=3D content;=0A= =0A= $("#pressrelease").html(str);=0A= }=0A= });=0A= })(jQuery); ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/ajax_view.js (function ($) {=0A= =0A= /**=0A= * Override Views prototype function so it can recognize Bootstrap AJAX = pagers.=0A= * Attach the ajax behavior to each link.=0A= */=0A= Drupal.views.ajaxView.prototype.attachPagerAjax =3D function() {=0A= this.$view.find('ul.pager > li > a, th.views-field a, .attachment = .views-summary a, ul.pagination li a')=0A= .each(jQuery.proxy(this.attachPagerLinkAjax, this));=0A= };=0A= =0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/ajax_002.js (function ($) {=0A= =0A= /**=0A= * Override Drupal's AJAX prototype beforeSend function so it can append = the=0A= * throbber inside the pager links.=0A= */=0A= Drupal.ajax.prototype.beforeSend =3D function (xmlhttprequest, options) {=0A= // For forms without file inputs, the jQuery Form plugin serializes = the form=0A= // values, and then calls jQuery's $.ajax() function, which invokes = this=0A= // handler. In this circumstance, options.extraData is never used. For = forms=0A= // with file inputs, the jQuery Form plugin uses the browser's normal = form=0A= // submission mechanism, but captures the response in a hidden IFRAME. = In this=0A= // circumstance, it calls this handler first, and then appends hidden = fields=0A= // to the form to submit the values in options.extraData. There is no = simple=0A= // way to know which submission mechanism will be used, so we add to = extraData=0A= // regardless, and allow it to be ignored in the former case.=0A= if (this.form) {=0A= options.extraData =3D options.extraData || {};=0A= =0A= // Let the server know when the IFRAME submission mechanism is used. = The=0A= // server can use this information to wrap the JSON response in a = TEXTAREA,=0A= // as per http://jquery.malsup.com/form/#file-upload.=0A= options.extraData.ajax_iframe_upload =3D '1';=0A= =0A= // The triggering element is about to be disabled (see below), but = if it=0A= // contains a value (e.g., a checkbox, textfield, select, etc.), = ensure that=0A= // value is included in the submission. As per above, submissions = that use=0A= // $.ajax() are already serialized prior to the element being = disabled, so=0A= // this is only needed for IFRAME submissions.=0A= var v =3D $.fieldValue(this.element);=0A= if (v !=3D=3D null) {=0A= options.extraData[this.element.name] =3D v;=0A= }=0A= }=0A= =0A= // Disable the element that received the change to prevent user = interface=0A= // interaction while the Ajax request is in progress. ajax.ajaxing = prevents=0A= // the element from triggering a new request, but does not prevent the = user=0A= // from changing its value.=0A= $(this.element).addClass('progress-disabled').attr('disabled', true);=0A= =0A= // Insert progressbar or throbber.=0A= if (this.progress.type =3D=3D 'bar') {=0A= var progressBar =3D new Drupal.progressBar('ajax-progress-' + = this.element.id, eval(this.progress.update_callback), = this.progress.method, eval(this.progress.error_callback));=0A= if (this.progress.message) {=0A= progressBar.setProgress(-1, this.progress.message);=0A= }=0A= if (this.progress.url) {=0A= progressBar.startMonitoring(this.progress.url, = this.progress.interval || 1500);=0A= }=0A= this.progress.element =3D = $(progressBar.element).addClass('ajax-progress ajax-progress-bar');=0A= this.progress.object =3D progressBar;=0A= $(this.element).after(this.progress.element);=0A= }=0A= else if (this.progress.type =3D=3D 'throbber') {=0A= this.progress.element =3D $('<div class=3D"ajax-progress = ajax-progress-throbber"></div>');=0A= // If element is an input type, append after.=0A= if ($(this.element).is('input')) {=0A= if (this.progress.message) {=0A= $('.throbber', this.progress.element).after('<div = class=3D"message">' + this.progress.message + '</div>');=0A= }=0A= $(this.element).after(this.progress.element);=0A= }=0A= // Otherwise inject it inside the element.=0A= else {=0A= if (this.progress.message) {=0A= $('.throbber', this.progress.element).append('<div = class=3D"message">' + this.progress.message + '</div>');=0A= }=0A= $(this.element).append(this.progress.element);=0A= }=0A= }=0A= };=0A= =0A= })(jQuery);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries/RGraph.common.core.js /**=0A= * = o------------------------------------------------------------------------= ------o=0A= * | This file is part of the RGraph package - you can learn more at: = |=0A= * | = |=0A= * | http://www.rgraph.net = |=0A= * | = |=0A= * | This package is licensed under the RGraph license. For all kinds = of business |=0A= * | purposes there is a small one-time licensing fee to pay and for = non |=0A= * | commercial purposes it is free to use. You can read the full = license here: |=0A= * | = |=0A= * | http://www.rgraph.net/license = |=0A= * = o------------------------------------------------------------------------= ------o=0A= */=0A= =0A= /**=0A= * Initialise the various objects=0A= */=0A= if (typeof(RGraph) =3D=3D 'undefined') RGraph =3D = {isRGraph:true,type:'common'};=0A= =0A= RGraph.Highlight =3D {};=0A= RGraph.Registry =3D {};=0A= RGraph.Registry.store =3D [];=0A= RGraph.Registry.store['chart.event.handlers'] =3D [];=0A= RGraph.Registry.store['__rgraph_event_listeners__'] =3D []; // Used = in the new system for tooltips=0A= RGraph.background =3D {};=0A= RGraph.objects =3D [];=0A= RGraph.Resizing =3D {};=0A= RGraph.events =3D [];=0A= RGraph.cursor =3D [];=0A= =0A= RGraph.ObjectRegistry =3D {};=0A= RGraph.ObjectRegistry.objects =3D {};=0A= RGraph.ObjectRegistry.objects.byUID =3D [];=0A= RGraph.ObjectRegistry.objects.byCanvasID =3D [];=0A= =0A= =0A= /**=0A= * Some "constants"=0A= */=0A= PI =3D Math.PI;=0A= HALFPI =3D PI / 2;=0A= TWOPI =3D PI * 2;=0A= ISFF =3D navigator.userAgent.indexOf('Firefox') !=3D -1;=0A= ISOPERA =3D navigator.userAgent.indexOf('Opera') !=3D -1;=0A= ISCHROME =3D navigator.userAgent.indexOf('Chrome') !=3D -1;=0A= ISSAFARI =3D navigator.userAgent.indexOf('Safari') !=3D -1 && = !ISCHROME;=0A= ISWEBKIT =3D navigator.userAgent.indexOf('WebKit') !=3D -1;=0A= //ISIE is defined below=0A= //ISIE6 is defined below=0A= //ISIE7 is defined below=0A= //ISIE8 is defined below=0A= //ISIE9 is defined below=0A= //ISIE9 is defined below=0A= //ISIE9UP is defined below=0A= //ISIE10 is defined below=0A= //ISIE10UP is defined below=0A= //ISOLD is defined below=0A= =0A= =0A= /**=0A= * Returns five values which are used as a nice scale=0A= * =0A= * @param max int The maximum value of the graph=0A= * @param obj object The graph object=0A= * @return array An appropriate scale=0A= */=0A= RGraph.getScale =3D function (max, obj)=0A= {=0A= /**=0A= * Special case for 0=0A= */=0A= if (max =3D=3D 0) {=0A= return ['0.2', '0.4', '0.6', '0.8', '1.0'];=0A= }=0A= =0A= var original_max =3D max;=0A= =0A= /**=0A= * Manually do decimals=0A= */=0A= if (max <=3D 1) {=0A= if (max > 0.5) {=0A= return [0.2,0.4,0.6,0.8, Number(1).toFixed(1)];=0A= =0A= } else if (max >=3D 0.1) {=0A= return obj.Get('chart.scale.round') ? = [0.2,0.4,0.6,0.8,1] : [0.1,0.2,0.3,0.4,0.5];=0A= =0A= } else {=0A= =0A= var tmp =3D max;=0A= var exp =3D 0;=0A= =0A= while (tmp < 1.01) {=0A= exp +=3D 1;=0A= tmp *=3D 10;=0A= }=0A= =0A= var ret =3D ['2e-' + exp, '4e-' + exp, '6e-' + exp, = '8e-' + exp, '10e-' + exp];=0A= =0A= =0A= if (max <=3D ('5e-' + exp)) {=0A= ret =3D ['1e-' + exp, '2e-' + exp, '3e-' + exp, = '4e-' + exp, '5e-' + exp];=0A= }=0A= =0A= return ret;=0A= }=0A= }=0A= =0A= // Take off any decimals=0A= if (String(max).indexOf('.') > 0) {=0A= max =3D String(max).replace(/\.\d+$/, '');=0A= }=0A= =0A= var interval =3D Math.pow(10, Number(String(Number(max)).length = - 1));=0A= var topValue =3D interval;=0A= =0A= while (topValue < max) {=0A= topValue +=3D (interval / 2);=0A= }=0A= =0A= // Handles cases where the max is (for example) 50.5=0A= if (Number(original_max) > Number(topValue)) {=0A= topValue +=3D (interval / 2);=0A= }=0A= =0A= // Custom if the max is greater than 5 and less than 10=0A= if (max < 10) {=0A= topValue =3D (Number(original_max) <=3D 5 ? 5 : 10);=0A= }=0A= =0A= /**=0A= * Added 02/11/2010 to create "nicer" scales=0A= */=0A= if (obj && typeof(obj.Get('chart.scale.round')) =3D=3D 'boolean' = && obj.Get('chart.scale.round')) {=0A= topValue =3D 10 * interval;=0A= }=0A= =0A= return [topValue * 0.2, topValue * 0.4, topValue * 0.6, topValue = * 0.8, topValue];=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * Returns an appropriate scale. The return value is actualy anm = object consiosting of:=0A= * scale.max=0A= * scale.min=0A= * scale.scale=0A= * =0A= * @param obj object The graph object=0A= * @param prop object An object consisting of configuration = properties=0A= * @return object An object containg scale information=0A= */=0A= RGraph.getScale2 =3D function (obj, opt)=0A= {=0A= var RG =3D RGraph;=0A= var ca =3D obj.canvas;=0A= var co =3D obj.context;=0A= var prop =3D obj.properties;=0A= =0A= var numlabels =3D typeof(opt['ylabels.count']) =3D=3D = 'number' ? opt['ylabels.count'] : 5;=0A= var units_pre =3D typeof(opt['units.pre']) =3D=3D 'string' ? = opt['units.pre'] : '';=0A= var units_post =3D typeof(opt['units.post']) =3D=3D 'string' ? = opt['units.post'] : '';=0A= var max =3D Number(opt['max']);=0A= var min =3D typeof(opt['min']) =3D=3D 'number' ? = opt['min'] : 0;=0A= var strict =3D opt['strict'];=0A= var decimals =3D Number(opt['scale.decimals']); // Sometimes = the default is null=0A= var point =3D opt['scale.point']; // Default is a string = in all chart libraries so no need to cast it=0A= var thousand =3D opt['scale.thousand']; // Default is a = string in all chart libraries so no need to cast it=0A= var original_max =3D max;=0A= var round =3D opt['scale.round'];=0A= var scale =3D {'max':1,'labels':[]};=0A= =0A= =0A= =0A= /**=0A= * Special case for 0=0A= * =0A= * ** Must be first **=0A= */=0A= if (!max) {=0A= =0A= var max =3D 1;=0A= =0A= var scale =3D {max:1,min:0,labels:[]};=0A= =0A= for (var i=3D0; i<numlabels; ++i) {=0A= var label =3D ((((max - min) / numlabels) + min) * (i + = 1)).toFixed(decimals);=0A= scale.labels.push(units_pre + label + units_post);=0A= }=0A= =0A= /**=0A= * Manually do decimals=0A= */=0A= } else if (max <=3D 1 && !strict) {=0A= =0A= if (max > 0.5) {=0A= =0A= max =3D 1;=0A= min =3D min;=0A= scale.min =3D min;=0A= =0A= for (var i=3D0; i<numlabels; ++i) {=0A= var label =3D ((((max - min) / numlabels) * (i + 1)) = + min).toFixed(decimals);=0A= =0A= scale.labels.push(units_pre + label + units_post);=0A= }=0A= =0A= } else if (max >=3D 0.1) {=0A= =0A= max =3D 0.5;=0A= min =3D min;=0A= scale =3D {'max': 0.5, 'min':min,'labels':[]}=0A= =0A= for (var i=3D0; i<numlabels; ++i) {=0A= var label =3D ((((max - min) / numlabels) + min) * = (i + 1)).toFixed(decimals);=0A= scale.labels.push(units_pre + label + units_post);=0A= }=0A= =0A= } else {=0A= =0A= scale =3D {'min':min,'labels':[]}=0A= var max_str =3D String(max);=0A= =0A= if (max_str.indexOf('e') > 0) {=0A= var numdecimals =3D = Math.abs(max_str.substring(max_str.indexOf('e') + 1));=0A= } else {=0A= var numdecimals =3D String(max).length - 2;=0A= }=0A= =0A= var max =3D 1 / Math.pow(10,numdecimals - 1);=0A= =0A= for (var i=3D0; i<numlabels; ++i) {=0A= var label =3D ((((max - min) / numlabels) + min) * = (i + 1));=0A= label =3D label.toExponential();=0A= label =3D label.split(/e/);=0A= label[0] =3D Math.round(label[0]);=0A= label =3D label.join('e');=0A= scale.labels.push(label);=0A= }=0A= =0A= //This makes the top scale value of the format 10e-2 = instead of 1e-1=0A= tmp =3D scale.labels[scale.labels.length - 1].split(/e/);=0A= tmp[0] +=3D 0;=0A= tmp[1] =3D Number(tmp[1]) - 1;=0A= tmp =3D tmp[0] + 'e' + tmp[1];=0A= scale.labels[scale.labels.length - 1] =3D tmp;=0A= =0A= // Add the units=0A= for (var i=3D0; i<scale.labels.length ; ++i) {=0A= scale.labels[i] =3D units_pre + scale.labels[i] + = units_post;=0A= }=0A= =0A= scale.max =3D Number(max);=0A= }=0A= =0A= =0A= } else if (!strict) {=0A= =0A= =0A= /**=0A= * Now comes the scale handling for integer values=0A= */=0A= =0A= =0A= // This accomodates decimals by rounding the max up to the = next integer=0A= max =3D Math.ceil(max);=0A= =0A= var interval =3D Math.pow(10, Math.max(1, = Number(String(Number(max) - Number(min)).length - 1)) );=0A= =0A= var topValue =3D interval;=0A= =0A= while (topValue < max) {=0A= topValue +=3D (interval / 2);=0A= }=0A= =0A= // Handles cases where the max is (for example) 50.5=0A= if (Number(original_max) > Number(topValue)) {=0A= topValue +=3D (interval / 2);=0A= }=0A= =0A= // Custom if the max is greater than 5 and less than 10=0A= if (max <=3D 10) {=0A= topValue =3D (Number(original_max) <=3D 5 ? 5 : 10);=0A= }=0A= =0A= =0A= // Added 02/11/2010 to create "nicer" scales=0A= if (obj && typeof(round) =3D=3D 'boolean' && round) {=0A= topValue =3D 10 * interval;=0A= }=0A= =0A= scale.max =3D topValue;=0A= =0A= // Now generate the scale. Temporarily set the objects = chart.scale.decimal and chart.scale.point to those=0A= //that we've been given as the number_format functuion looks = at those instead of using argumrnts.=0A= var tmp_point =3D prop['chart.scale.point'];=0A= var tmp_thousand =3D prop['chart.scale.thousand'];=0A= =0A= obj.Set('chart.scale.thousand', thousand);=0A= obj.Set('chart.scale.point', point);=0A= =0A= =0A= for (var i=3D0; i<numlabels; ++i) {=0A= scale.labels.push( RG.number_format(obj, ((((i+1) / = numlabels) * (topValue - min)) + min).toFixed(decimals), units_pre, = units_post) );=0A= }=0A= =0A= obj.Set('chart.scale.thousand', tmp_thousand);=0A= obj.Set('chart.scale.point', tmp_point);=0A= =0A= } else if (typeof(max) =3D=3D 'number' && strict) {=0A= =0A= /**=0A= * ymax is set and also strict=0A= */=0A= for (var i=3D0; i<numlabels; ++i) {=0A= scale.labels.push( RG.number_format(obj, ((((i+1) / = numlabels) * (max - min)) + min).toFixed(decimals), units_pre, = units_post) );=0A= }=0A= =0A= // ???=0A= scale.max =3D max;=0A= }=0A= =0A= =0A= scale.units_pre =3D units_pre;=0A= scale.units_post =3D units_post;=0A= scale.point =3D point;=0A= scale.decimals =3D decimals;=0A= scale.thousand =3D thousand;=0A= scale.numlabels =3D numlabels;=0A= scale.round =3D Boolean(round);=0A= scale.min =3D min;=0A= =0A= =0A= return scale;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * Returns the maximum numeric value which is in an array=0A= * =0A= * @param array arr The array (can also be a number, in which case = it's returned as-is)=0A= * @param int Whether to ignore signs (ie negative/positive)=0A= * @return int The maximum value in the array=0A= */=0A= RGraph.array_max =3D function (arr)=0A= {=0A= var max =3D null;=0A= var MathLocal =3D Math;=0A= =0A= if (typeof(arr) =3D=3D 'number') {=0A= return arr;=0A= }=0A= =0A= if (RGraph.is_null(arr)) {=0A= return 0;=0A= }=0A= =0A= for (var i=3D0,len=3Darr.length; i<len; ++i) {=0A= if (typeof(arr[i]) =3D=3D 'number') {=0A= =0A= var val =3D arguments[1] ? MathLocal.abs(arr[i]) : = arr[i];=0A= =0A= if (typeof max =3D=3D 'number') {=0A= max =3D MathLocal.max(max, val);=0A= } else {=0A= max =3D val;=0A= }=0A= }=0A= }=0A= =0A= return max;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Returns the maximum value which is in an array=0A= * =0A= * @param array arr The array=0A= * @param int len The length to pad the array to=0A= * @param mixed The value to use to pad the array (optional)=0A= */=0A= RGraph.array_pad =3D function (arr, len)=0A= {=0A= if (arr.length < len) {=0A= var val =3D arguments[2] ? arguments[2] : null;=0A= =0A= for (var i=3Darr.length; i<len; i+=3D1) {=0A= arr[i] =3D val;=0A= }=0A= }=0A= =0A= return arr;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * An array sum function=0A= * =0A= * @param array arr The array to calculate the total of=0A= * @return int The summed total of the arrays elements=0A= */=0A= RGraph.array_sum =3D function (arr)=0A= {=0A= // Allow integers=0A= if (typeof(arr) =3D=3D 'number') {=0A= return arr;=0A= }=0A= =0A= // Account for null=0A= if (RGraph.is_null(arr)) {=0A= return 0;=0A= }=0A= =0A= var i, sum;=0A= var len =3D arr.length;=0A= =0A= for(i=3D0,sum=3D0;i<len;sum+=3Darr[i++]);=0A= return sum;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Takes any number of arguments and adds them to one big linear array=0A= * which is then returned=0A= * =0A= * @param ... mixed The data to linearise. You can strings, booleans, = numbers or arrays=0A= */=0A= RGraph.array_linearize =3D function ()=0A= {=0A= var arr =3D [];=0A= var args =3D arguments;=0A= var RG =3D RGraph;=0A= =0A= for (var i=3D0,len=3Dargs.length; i<len; ++i) {=0A= =0A= if (typeof(args[i]) =3D=3D 'object' && args[i]) {=0A= for (var j=3D0; j<args[i].length; ++j) {=0A= var sub =3D RG.array_linearize(args[i][j]);=0A= =0A= for (var k=3D0; k<sub.length; ++k) {=0A= arr.push(sub[k]);=0A= }=0A= }=0A= } else {=0A= arr.push(args[i]);=0A= }=0A= }=0A= =0A= return arr;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This is a useful function which is basically a shortcut for = drawing left, right, top and bottom alligned text.=0A= * =0A= * @param object context The context=0A= * @param string font The font=0A= * @param int size The size of the text=0A= * @param int x The X coordinate=0A= * @param int y The Y coordinate=0A= * @param string text The text to draw=0A= * @parm string The vertical alignment. Can be null. = "center" gives center aligned text, "top" gives top aligned text.=0A= * Anything else produces bottom aligned text. = Default is bottom.=0A= * @param string The horizontal alignment. Can be null. = "center" gives center aligned text, "right" gives right aligned text.=0A= * Anything else produces left aligned text. = Default is left.=0A= * @param bool Whether to show a bounding box around the = text. Defaults not to=0A= * @param int The angle that the text should be rotate at = (IN DEGREES)=0A= * @param string Background color for the text=0A= * @param bool Whether the text is bold or not=0A= */=0A= RGraph.Text =3D function (context, font, size, x, y, text)=0A= {=0A= // "Cache" the args as a local variable=0A= var args =3D arguments;=0A= =0A= // Handle undefined - change it to an empty string=0A= if ((typeof(text) !=3D 'string' && typeof(text) !=3D 'number') = || text =3D=3D 'undefined') {=0A= return;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This accommodates multi-line text=0A= */=0A= if (typeof(text) =3D=3D 'string' && text.match(/\r\n/)) {=0A= =0A= var dimensions =3D RGraph.MeasureText('M', args[11], font, = size);=0A= =0A= /**=0A= * Measure the text (width and height)=0A= */=0A= =0A= var arr =3D text.split('\r\n');=0A= =0A= /**=0A= * Adjust the Y position=0A= */=0A= =0A= // This adjusts the initial y position=0A= if (args[6] && args[6] =3D=3D 'center') y =3D (y - = (dimensions[1] * ((arr.length - 1) / 2)));=0A= =0A= for (var i=3D1; i<arr.length; ++i) {=0A= =0A= RGraph.Text(context,=0A= font,=0A= size,=0A= args[9] =3D=3D -90 ? (x + (size * 1.5)) : x,=0A= y + (dimensions[1] * i),=0A= arr[i],=0A= args[6] ? args[6] : null,=0A= args[7],=0A= args[8],=0A= args[9],=0A= args[10],=0A= args[11],=0A= args[12]);=0A= }=0A= =0A= // Update text to just be the first line=0A= text =3D arr[0];=0A= }=0A= =0A= =0A= // Accommodate MSIE=0A= if (document.all && ISOLD) {=0A= y +=3D 2;=0A= }=0A= =0A= =0A= context.font =3D (args[11] ? 'Bold ': '') + size + 'pt ' + font;=0A= =0A= var i;=0A= var origX =3D x;=0A= var origY =3D y;=0A= var originalFillStyle =3D context.fillStyle;=0A= var originalLineWidth =3D context.lineWidth;=0A= =0A= // Need these now the angle can be specified, ie defaults for = the former two args=0A= if (typeof(args[6]) =3D=3D 'undefined') args[6] =3D 'bottom'; = // Vertical alignment. Default to bottom/baseline=0A= if (typeof(args[7]) =3D=3D 'undefined') args[7] =3D 'left'; = // Horizontal alignment. Default to left=0A= if (typeof(args[8]) =3D=3D 'undefined') args[8] =3D null; = // Show a bounding box. Useful for positioning during development. = Defaults to false=0A= if (typeof(args[9]) =3D=3D 'undefined') args[9] =3D 0; = // Angle (IN DEGREES) that the text should be drawn at. 0 is middle = right, and it goes clockwise=0A= =0A= // The alignment is recorded here for purposes of Opera = compatibility=0A= if (navigator.userAgent.indexOf('Opera') !=3D -1) {=0A= context.canvas.__rgraph_valign__ =3D args[6];=0A= context.canvas.__rgraph_halign__ =3D args[7];=0A= }=0A= =0A= // First, translate to x/y coords=0A= context.save();=0A= =0A= context.canvas.__rgraph_originalx__ =3D x;=0A= context.canvas.__rgraph_originaly__ =3D y;=0A= =0A= context.translate(x, y);=0A= x =3D 0;=0A= y =3D 0;=0A= =0A= // Rotate the canvas if need be=0A= if (args[9]) {=0A= context.rotate(args[9] / (180 / PI));=0A= }=0A= =0A= =0A= // Vertical alignment - defaults to bottom=0A= if (args[6]) {=0A= =0A= var vAlign =3D args[6];=0A= =0A= if (vAlign =3D=3D 'center') {=0A= context.textBaseline =3D 'middle';=0A= } else if (vAlign =3D=3D 'top') {=0A= context.textBaseline =3D 'top';=0A= }=0A= }=0A= =0A= =0A= // Hoeizontal alignment - defaults to left=0A= if (args[7]) {=0A= =0A= var hAlign =3D args[7];=0A= var width =3D context.measureText(text).width;=0A= =0A= if (hAlign) {=0A= if (hAlign =3D=3D 'center') {=0A= context.textAlign =3D 'center';=0A= } else if (hAlign =3D=3D 'right') {=0A= context.textAlign =3D 'right';=0A= }=0A= }=0A= }=0A= =0A= =0A= context.fillStyle =3D originalFillStyle;=0A= =0A= /**=0A= * Draw a bounding box if requested=0A= */=0A= context.save();=0A= context.fillText(text,0,0);=0A= context.lineWidth =3D 1;=0A= =0A= var width =3D context.measureText(text).width;=0A= var width_offset =3D (hAlign =3D=3D 'center' ? (width / = 2) : (hAlign =3D=3D 'right' ? width : 0));=0A= var height =3D size * 1.5; // !!!=0A= var height_offset =3D (vAlign =3D=3D 'center' ? (height = / 2) : (vAlign =3D=3D 'top' ? height : 0));=0A= var ieOffset =3D ISOLD ? 2 : 0;=0A= =0A= if (args[8]) {=0A= =0A= context.strokeRect(-3 - width_offset,=0A= 0 - 3 - height - ieOffset + = height_offset,=0A= width + 6,=0A= height + 6);=0A= /**=0A= * If requested, draw a background for the text=0A= */=0A= if (args[10]) {=0A= context.fillStyle =3D args[10];=0A= context.fillRect(-3 - width_offset,=0A= 0 - 3 - height - ieOffset + = height_offset,=0A= width + 6,=0A= height + 6);=0A= }=0A= =0A= =0A= context.fillStyle =3D originalFillStyle;=0A= =0A= =0A= /**=0A= * Do the actual drawing of the text=0A= */=0A= context.fillText(text,0,0);=0A= }=0A= context.restore();=0A= =0A= // Reset the lineWidth=0A= context.lineWidth =3D originalLineWidth;=0A= =0A= context.restore();=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Clears the canvas by setting the width. You can specify a colour = if you wish.=0A= * =0A= * @param object canvas The canvas to clear=0A= */=0A= RGraph.Clear =3D function (ca)=0A= {=0A= var RG =3D RGraph;=0A= var co =3D ca.getContext('2d');=0A= var color =3D arguments[1];=0A= =0A= if (!ca) {=0A= return;=0A= }=0A= =0A= RG.FireCustomEvent(ca.__object__, 'onbeforeclear');=0A= =0A= if (ISIE8 && !color) {=0A= color =3D 'white';=0A= }=0A= =0A= /**=0A= * Can now clear the canvas back to fully transparent=0A= */=0A= if (!color || (color && color =3D=3D 'rgba(0,0,0,0)' || color = =3D=3D 'transparent')) {=0A= =0A= co.clearRect(0,0,ca.width, ca.height);=0A= =0A= // Reset the globalCompositeOperation=0A= co.globalCompositeOperation =3D 'source-over';=0A= =0A= } else {=0A= =0A= co.fillStyle =3D color;=0A= co.beginPath();=0A= =0A= if (ISIE8) {=0A= co.fillRect(0,0,ca.width,ca.height);=0A= } else {=0A= co.fillRect(-10,-10,ca.width + 20,ca.height + 20);=0A= }=0A= =0A= co.fill();=0A= }=0A= =0A= //if (RG.ClearAnnotations) {=0A= //RG.ClearAnnotations(ca.id);=0A= //}=0A= =0A= /**=0A= * This removes any background image that may be present=0A= */=0A= if (RG.Registry.Get('chart.background.image.' + ca.id)) {=0A= var img =3D RG.Registry.Get('chart.background.image.' + = ca.id);=0A= img.style.position =3D 'absolute';=0A= img.style.left =3D '-10000px';=0A= img.style.top =3D '-10000px';=0A= }=0A= =0A= /**=0A= * This hides the tooltip that is showing IF it has the same = canvas ID as=0A= * that which is being cleared=0A= */=0A= if (RG.Registry.Get('chart.tooltip')) {=0A= RG.HideTooltip(ca);=0A= //RG.Redraw();=0A= }=0A= =0A= /**=0A= * Set the cursor to default=0A= */=0A= ca.style.cursor =3D 'default';=0A= =0A= RG.FireCustomEvent(ca.__object__, 'onclear');=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Draws the title of the graph=0A= * =0A= * @param object canvas The canvas object=0A= * @param string text The title to write=0A= * @param integer gutter The size of the gutter=0A= * @param integer The center X point (optional - if not given = it will be generated from the canvas width)=0A= * @param integer Size of the text. If not given it will be 14=0A= */=0A= RGraph.DrawTitle =3D function (obj, text, gutterTop)=0A= {=0A= var RG =3D RGraph;=0A= var ca =3D canvas =3D obj.canvas;=0A= var co =3D context =3D obj.context;=0A= var prop =3D obj.properties;=0A= =0A= var gutterLeft =3D prop['chart.gutter.left'];=0A= var gutterRight =3D prop['chart.gutter.right'];=0A= var gutterTop =3D gutterTop;=0A= var gutterBottom =3D prop['chart.gutter.bottom'];=0A= var size =3D arguments[4] ? arguments[4] : 12;=0A= var bold =3D prop['chart.title.bold'];=0A= var centerx =3D (arguments[3] ? arguments[3] : ((ca.width - = gutterLeft - gutterRight) / 2) + gutterLeft);=0A= var keypos =3D prop['chart.key.position'];=0A= var vpos =3D prop['chart.title.vpos'];=0A= var hpos =3D prop['chart.title.hpos'];=0A= var bgcolor =3D prop['chart.title.background'];=0A= var x =3D prop['chart.title.x'];=0A= var y =3D prop['chart.title.y'];=0A= var halign =3D 'center';=0A= var valign =3D 'center';=0A= =0A= // Account for 3D effect by faking the key position=0A= if (obj.type =3D=3D 'bar' && prop['chart.variant'] =3D=3D '3d') {=0A= keypos =3D 'gutter';=0A= }=0A= =0A= co.beginPath();=0A= co.fillStyle =3D prop['chart.text.color'] ? = prop['chart.text.color'] : 'black';=0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * Vertically center the text if the key is not present=0A= */=0A= if (keypos && keypos !=3D 'gutter') {=0A= var valign =3D 'center';=0A= =0A= } else if (!keypos) {=0A= var valign =3D 'center';=0A= =0A= } else {=0A= var valign =3D 'bottom';=0A= }=0A= =0A= =0A= =0A= =0A= =0A= // if chart.title.vpos is a number, use that=0A= if (typeof(prop['chart.title.vpos']) =3D=3D 'number') {=0A= vpos =3D prop['chart.title.vpos'] * gutterTop;=0A= =0A= if (prop['chart.xaxispos'] =3D=3D 'top') {=0A= vpos =3D prop['chart.title.vpos'] * gutterBottom + = gutterTop + (ca.height - gutterTop - gutterBottom);=0A= }=0A= =0A= } else {=0A= vpos =3D gutterTop - size - 5;=0A= =0A= if (prop['chart.xaxispos'] =3D=3D 'top') {=0A= vpos =3D ca.height - gutterBottom + size + 5;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= // if chart.title.hpos is a number, use that. It's multiplied = with the (entire) canvas width=0A= if (typeof(hpos) =3D=3D 'number') {=0A= centerx =3D hpos * ca.width;=0A= }=0A= =0A= /**=0A= * Now the chart.title.x and chart.title.y settings override (is = set) the above=0A= */=0A= if (typeof(x) =3D=3D 'number') centerx =3D x;=0A= if (typeof(y) =3D=3D 'number') vpos =3D y;=0A= =0A= =0A= =0A= =0A= /**=0A= * Horizontal alignment can now (Jan 2013) be specified=0A= */=0A= if (typeof(prop['chart.title.halign']) =3D=3D 'string') {=0A= halign =3D prop['chart.title.halign'];=0A= }=0A= =0A= /**=0A= * Vertical alignment can now (Jan 2013) be specified=0A= */=0A= if (typeof(prop['chart.title.valign']) =3D=3D 'string') {=0A= valign =3D prop['chart.title.valign'];=0A= }=0A= =0A= =0A= =0A= =0A= =0A= // Set the colour=0A= if (typeof(prop['chart.title.color'] !=3D null)) {=0A= var oldColor =3D co.fillStyle=0A= var newColor =3D prop['chart.title.color']=0A= co.fillStyle =3D newColor ? newColor : 'black';=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Default font is Arial=0A= */=0A= var font =3D prop['chart.text.font'];=0A= =0A= =0A= =0A= =0A= /**=0A= * Override the default font with chart.title.font=0A= */=0A= if (typeof(prop['chart.title.font']) =3D=3D 'string') {=0A= font =3D prop['chart.title.font'];=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Draw the title=0A= */=0A= RG.Text2(obj,{'font':font,=0A= 'size':size,=0A= 'x':centerx,=0A= 'y':vpos,=0A= 'text':text,=0A= 'valign':valign,=0A= 'halign':halign,=0A= 'bounding':bgcolor !=3D null,=0A= 'bounding.fill':bgcolor,=0A= 'bold':bold,=0A= 'tag':'title'=0A= });=0A= =0A= // Reset the fill colour=0A= co.fillStyle =3D oldColor;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * This function returns the mouse position in relation to the canvas=0A= * =0A= * @param object e The event object.=0A= *=0A= RGraph.getMouseXY =3D function (e)=0A= {=0A= var el =3D (ISOLD ? event.srcElement : e.target);=0A= var x;=0A= var y;=0A= =0A= // ???=0A= var paddingLeft =3D el.style.paddingLeft ? = parseInt(el.style.paddingLeft) : 0;=0A= var paddingTop =3D el.style.paddingTop ? = parseInt(el.style.paddingTop) : 0;=0A= var borderLeft =3D el.style.borderLeftWidth ? = parseInt(el.style.borderLeftWidth) : 0;=0A= var borderTop =3D el.style.borderTopWidth ? = parseInt(el.style.borderTopWidth) : 0;=0A= =0A= if (ISIE8) e =3D event;=0A= =0A= // Browser with offsetX and offsetY=0A= if (typeof(e.offsetX) =3D=3D 'number' && typeof(e.offsetY) = =3D=3D 'number') {=0A= x =3D e.offsetX;=0A= y =3D e.offsetY;=0A= =0A= // FF and other=0A= } else {=0A= x =3D 0;=0A= y =3D 0;=0A= =0A= while (el !=3D document.body && el) {=0A= x +=3D el.offsetLeft;=0A= y +=3D el.offsetTop;=0A= =0A= el =3D el.offsetParent;=0A= }=0A= =0A= x =3D e.pageX - x;=0A= y =3D e.pageY - y;=0A= }=0A= =0A= return [x, y];=0A= }*/=0A= =0A= =0A= RGraph.getMouseXY =3D function(e)=0A= {=0A= var el =3D e.target;=0A= var ca =3D el;=0A= var caStyle =3D ca.style;=0A= var offsetX =3D 0;=0A= var offsetY =3D 0;=0A= var x;=0A= var y;=0A= var ISFIXED =3D (ca.style.position =3D=3D 'fixed');=0A= var borderLeft =3D parseInt(caStyle.borderLeftWidth) || 0;=0A= var borderTop =3D parseInt(caStyle.borderTopWidth) || 0;=0A= var paddingLeft =3D parseInt(caStyle.paddingLeft) || 0=0A= var paddingTop =3D parseInt(caStyle.paddingTop) || 0=0A= var additionalX =3D borderLeft + paddingLeft;=0A= var additionalY =3D borderTop + paddingTop;=0A= =0A= =0A= if (typeof(e.offsetX) =3D=3D 'number' && typeof(e.offsetY) = =3D=3D 'number') {=0A= =0A= if (ISFIXED) {=0A= if (ISOPERA) {=0A= x =3D e.offsetX;=0A= y =3D e.offsetY;=0A= =0A= } else if (ISWEBKIT) {=0A= x =3D e.offsetX - paddingLeft - borderLeft;=0A= y =3D e.offsetY - paddingTop - borderTop;=0A= =0A= } else if (ISIE) {=0A= x =3D e.offsetX - paddingLeft;=0A= y =3D e.offsetY - paddingTop;=0A= =0A= } else {=0A= x =3D e.offsetX;=0A= y =3D e.offsetY;=0A= }=0A= =0A= =0A= =0A= =0A= } else {=0A= =0A= =0A= =0A= =0A= if (!ISIE && !ISOPERA) {=0A= x =3D e.offsetX - borderLeft - paddingLeft;=0A= y =3D e.offsetY - borderTop - paddingTop;=0A= =0A= } else if (ISIE) {=0A= x =3D e.offsetX - paddingLeft;=0A= y =3D e.offsetY - paddingTop;=0A= =0A= } else {=0A= x =3D e.offsetX;=0A= y =3D e.offsetY;=0A= }=0A= } =0A= =0A= } else {=0A= =0A= if (typeof(el.offsetParent) !=3D 'undefined') {=0A= do {=0A= offsetX +=3D el.offsetLeft;=0A= offsetY +=3D el.offsetTop;=0A= } while ((el =3D el.offsetParent));=0A= }=0A= =0A= x =3D e.pageX - offsetX - additionalX;=0A= y =3D e.pageY - offsetY - additionalY;=0A= =0A= x -=3D (2 * (parseInt(document.body.style.borderLeftWidth) = || 0));=0A= y -=3D (2 * (parseInt(document.body.style.borderTopWidth) || = 0));=0A= =0A= //x +=3D (parseInt(caStyle.borderLeftWidth) || 0);=0A= //y +=3D (parseInt(caStyle.borderTopWidth) || 0);=0A= }=0A= =0A= // We return a javascript array with x and y defined=0A= return [x, y];=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function returns a two element array of the canvas x/y = position in=0A= * relation to the page=0A= * =0A= * @param object canvas=0A= */=0A= RGraph.getCanvasXY =3D function (canvas)=0A= {=0A= var x =3D 0;=0A= var y =3D 0;=0A= var el =3D canvas; // !!!=0A= =0A= do {=0A= =0A= x +=3D el.offsetLeft;=0A= y +=3D el.offsetTop;=0A= =0A= // ACCOUNT FOR TABLES IN wEBkIT=0A= if (el.tagName.toLowerCase() =3D=3D 'table' && (ISCHROME || = ISSAFARI)) {=0A= x +=3D parseInt(el.border) || 0;=0A= y +=3D parseInt(el.border) || 0;=0A= }=0A= =0A= el =3D el.offsetParent;=0A= =0A= } while (el && el.tagName.toLowerCase() !=3D 'body');=0A= =0A= =0A= var paddingLeft =3D canvas.style.paddingLeft ? = parseInt(canvas.style.paddingLeft) : 0;=0A= var paddingTop =3D canvas.style.paddingTop ? = parseInt(canvas.style.paddingTop) : 0;=0A= var borderLeft =3D canvas.style.borderLeftWidth ? = parseInt(canvas.style.borderLeftWidth) : 0;=0A= var borderTop =3D canvas.style.borderTopWidth ? = parseInt(canvas.style.borderTopWidth) : 0;=0A= =0A= if (navigator.userAgent.indexOf('Firefox') > 0) {=0A= x +=3D parseInt(document.body.style.borderLeftWidth) || 0;=0A= y +=3D parseInt(document.body.style.borderTopWidth) || 0;=0A= }=0A= =0A= return [x + paddingLeft + borderLeft, y + paddingTop + = borderTop];=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function determines whther a canvas is fixed (CSS = positioning) or not. If not it returns=0A= * false. If it is then the element that is fixed is returned (it may = be a parent of the canvas).=0A= * =0A= * @return Either false or the fixed positioned element=0A= */=0A= RGraph.isFixed =3D function (canvas)=0A= {=0A= var obj =3D canvas;=0A= var i =3D 0;=0A= =0A= while (obj && obj.tagName.toLowerCase() !=3D 'body' && i < 99) {=0A= =0A= if (obj.style.position =3D=3D 'fixed') {=0A= return obj;=0A= }=0A= =0A= obj =3D obj.offsetParent;=0A= }=0A= =0A= return false;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Registers a graph object (used when the canvas is redrawn)=0A= * =0A= * @param object obj The object to be registered=0A= */=0A= RGraph.Register =3D function (obj)=0A= {=0A= // Checking this property ensures the object is only registered = once=0A= if (!obj.Get('chart.noregister')) {=0A= // As of 21st/1/2012 the object registry is now used=0A= RGraph.ObjectRegistry.Add(obj);=0A= obj.Set('chart.noregister', true);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Causes all registered objects to be redrawn=0A= * =0A= * @param string An optional color to use to clear the canvas=0A= */=0A= RGraph.Redraw =3D function ()=0A= {=0A= var objectRegistry =3D RGraph.ObjectRegistry.objects.byCanvasID;=0A= =0A= // Get all of the canvas tags on the page=0A= var tags =3D document.getElementsByTagName('canvas');=0A= =0A= for (var i=3D0,len=3Dtags.length; i<len; ++i) {=0A= if (tags[i].__object__ && tags[i].__object__.isRGraph) {=0A= =0A= // Only clear the canvas if it's not Trace'ing - this = applies to the Line/Scatter Trace effects=0A= if (!tags[i].noclear) {=0A= RGraph.Clear(tags[i], arguments[0] ? arguments[0] : = null);=0A= }=0A= }=0A= }=0A= =0A= // Go through the object registry and redraw *all* of the = canvas'es that have been registered=0A= for (var i=3D0,len=3DobjectRegistry.length; i<len; ++i) {=0A= if (objectRegistry[i]) {=0A= var id =3D objectRegistry[i][0];=0A= objectRegistry[i][1].Draw();=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Causes all registered objects ON THE GIVEN CANVAS to be redrawn=0A= * =0A= * @param canvas object The canvas object to redraw=0A= * @param bool Optional boolean which defaults to true and = determines whether to clear the canvas=0A= */=0A= RGraph.RedrawCanvas =3D function (canvas)=0A= {=0A= var objects =3D = RGraph.ObjectRegistry.getObjectsByCanvasID(canvas.id);=0A= =0A= /**=0A= * First clear the canvas=0A= */=0A= if (!arguments[1] || (typeof(arguments[1]) =3D=3D 'boolean' && = !arguments[1] =3D=3D false) ) {=0A= RGraph.Clear(canvas);=0A= }=0A= =0A= /**=0A= * Now redraw all the charts associated with that canvas=0A= */=0A= for (var i=3D0,len=3Dobjects.length; i<len; ++i) {=0A= if (objects[i]) {=0A= if (objects[i] && objects[i].isRGraph) { // Is it an = RGraph object ??=0A= objects[i].Draw();=0A= }=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function draws the background for the bar chart, line chart = and scatter chart.=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.background.Draw =3D function (obj)=0A= {=0A= var RG =3D RGraph;=0A= var ca =3D canvas =3D obj.canvas;=0A= var co =3D context =3D obj.context;=0A= var prop =3D obj.properties;=0A= =0A= var height =3D 0;=0A= var gutterLeft =3D obj.gutterLeft;=0A= var gutterRight =3D obj.gutterRight;=0A= var gutterTop =3D obj.gutterTop;=0A= var gutterBottom =3D obj.gutterBottom;=0A= var variant =3D prop['chart.variant'];=0A= =0A= co.fillStyle =3D prop['chart.text.color'];=0A= =0A= // If it's a bar and 3D variant, translate=0A= if (variant =3D=3D '3d') {=0A= co.save();=0A= co.translate(10, -5);=0A= }=0A= =0A= // X axis title=0A= if (typeof(prop['chart.title.xaxis']) =3D=3D 'string' && = prop['chart.title.xaxis'].length) {=0A= =0A= var size =3D prop['chart.text.size'] + 2;=0A= var font =3D prop['chart.text.font'];=0A= var bold =3D prop['chart.title.xaxis.bold'];=0A= =0A= if (typeof(prop['chart.title.xaxis.size']) =3D=3D 'number') {=0A= size =3D prop['chart.title.xaxis.size'];=0A= }=0A= =0A= if (typeof(prop['chart.title.xaxis.font']) =3D=3D 'string') {=0A= font =3D prop['chart.title.xaxis.font'];=0A= }=0A= =0A= var hpos =3D ((ca.width - gutterLeft - gutterRight) / 2) + = gutterLeft;=0A= var vpos =3D ca.height - gutterBottom + 25;=0A= =0A= if (typeof(prop['chart.title.xaxis.pos']) =3D=3D 'number') {=0A= vpos =3D ca.height - (gutterBottom * = prop['chart.title.xaxis.pos']);=0A= }=0A= =0A= RG.Text2(obj, {'font':font,=0A= 'size':size,=0A= 'x':hpos,=0A= 'y':vpos,=0A= 'text':prop['chart.title.xaxis'],=0A= 'halign':'center',=0A= 'valign':'center',=0A= 'bold':bold,=0A= 'tag': 'title xaxis'=0A= });=0A= }=0A= =0A= // Y axis title=0A= if (typeof(prop['chart.title.yaxis']) =3D=3D 'string' && = prop['chart.title.yaxis'].length) {=0A= =0A= var size =3D prop['chart.text.size'] + 2;=0A= var font =3D prop['chart.text.font'];=0A= var angle =3D 270;=0A= var bold =3D prop['chart.title.yaxis.bold'];=0A= var color =3D prop['chart.title.yaxis.color'];=0A= =0A= if (typeof(prop['chart.title.yaxis.pos']) =3D=3D 'number') {=0A= var yaxis_title_pos =3D prop['chart.title.yaxis.pos'] * = gutterLeft;=0A= } else {=0A= var yaxis_title_pos =3D ((gutterLeft - 25) / gutterLeft) = * gutterLeft;=0A= }=0A= =0A= if (typeof(prop['chart.title.yaxis.size']) =3D=3D 'number') {=0A= size =3D prop['chart.title.yaxis.size'];=0A= }=0A= =0A= if (typeof(prop['chart.title.yaxis.font']) =3D=3D 'string') {=0A= font =3D prop['chart.title.yaxis.font'];=0A= }=0A= =0A= if (prop['chart.title.yaxis.align'] =3D=3D 'right' || = prop['chart.title.yaxis.position'] =3D=3D 'right') {=0A= angle =3D 90;=0A= yaxis_title_pos =3D prop['chart.title.yaxis.pos'] ? = (ca.width - gutterRight) + (prop['chart.title.yaxis.pos'] * gutterRight) = :=0A= = ca.width - gutterRight + prop['chart.text.size'] + 5;=0A= } else {=0A= yaxis_title_pos =3D yaxis_title_pos;=0A= }=0A= =0A= co.fillStyle =3D color;=0A= RG.Text2(obj, {'font':font,=0A= 'size':size,=0A= 'x':yaxis_title_pos,=0A= 'y':((ca.height - gutterTop - gutterBottom) / = 2) + gutterTop,=0A= 'valign':'center',=0A= 'halign':'center',=0A= 'angle':angle,=0A= 'bold':bold,=0A= 'text':prop['chart.title.yaxis'],=0A= 'tag':'title yaxis'=0A= });=0A= }=0A= =0A= /**=0A= * If the background color is spec ified - draw that. It's a = rectangle that fills the=0A= * entire are within the gutters=0A= */=0A= var bgcolor =3D prop['chart.background.color'];=0A= if (bgcolor) {=0A= co.fillStyle =3D bgcolor;=0A= co.fillRect(gutterLeft, gutterTop, ca.width - gutterLeft - = gutterRight, ca.height - gutterTop - gutterBottom);=0A= }=0A= =0A= /**=0A= * Draw horizontal background bars=0A= */=0A= co.beginPath(); // Necessary?=0A= =0A= co.fillStyle =3D prop['chart.background.barcolor1'];=0A= co.strokeStyle =3D co.fillStyle;=0A= height =3D (ca.height - gutterBottom);=0A= =0A= for (var i=3DgutterTop; i<height ; i+=3D80) {=0A= co.fillRect(gutterLeft, i, ca.width - gutterLeft - = gutterRight, Math.min(40, ca.height - gutterBottom - i) );=0A= }=0A= =0A= co.fillStyle =3D prop['chart.background.barcolor2'];=0A= co.strokeStyle =3D co.fillStyle;=0A= height =3D (ca.height - gutterBottom);=0A= =0A= for (var i=3D (40 + gutterTop); i<height; i+=3D80) {=0A= co.fillRect(gutterLeft, i, ca.width - gutterLeft - = gutterRight, i + 40 > (ca.height - gutterBottom) ? ca.height - = (gutterBottom + i) : 40);=0A= }=0A= =0A= //context.stroke();=0A= co.beginPath();=0A= =0A= =0A= // Draw the background grid=0A= if (prop['chart.background.grid']) {=0A= =0A= // If autofit is specified, use the .numhlines and = .numvlines along with the width to work=0A= // out the hsize and vsize=0A= if (prop['chart.background.grid.autofit']) {=0A= =0A= /**=0A= * Align the grid to the tickmarks=0A= */=0A= if (prop['chart.background.grid.autofit.align']) {=0A= =0A= // Align the horizontal lines=0A= obj.Set('chart.background.grid.autofit.numhlines', = prop['chart.ylabels.count']);=0A= =0A= // Align the vertical lines for the line=0A= if (obj.type =3D=3D 'line') {=0A= if (prop['chart.labels'] && = prop['chart.labels'].length) {=0A= = obj.Set('chart.background.grid.autofit.numvlines', = prop['chart.labels'].length - 1);=0A= } else {=0A= = obj.Set('chart.background.grid.autofit.numvlines', obj.data[0].length - = 1);=0A= }=0A= =0A= // Align the vertical lines for the bar=0A= } else if (obj.type =3D=3D 'bar' && = prop['chart.labels'] && prop['chart.labels'].length) {=0A= = obj.Set('chart.background.grid.autofit.numvlines', = prop['chart.labels'].length);=0A= }=0A= }=0A= =0A= var vsize =3D ((ca.width - gutterLeft - gutterRight)) / = prop['chart.background.grid.autofit.numvlines'];=0A= var hsize =3D (ca.height - gutterTop - gutterBottom) / = prop['chart.background.grid.autofit.numhlines'];=0A= =0A= obj.Set('chart.background.grid.vsize', vsize);=0A= obj.Set('chart.background.grid.hsize', hsize);=0A= }=0A= =0A= co.beginPath();=0A= co.lineWidth =3D prop['chart.background.grid.width'] ? = prop['chart.background.grid.width'] : 1;=0A= co.strokeStyle =3D prop['chart.background.grid.color'];=0A= =0A= // Dashed background grid=0A= if (prop['chart.background.grid.dashed'] && typeof = co.setLineDash =3D=3D 'function') {=0A= co.setLineDash([3,2]);=0A= }=0A= =0A= // Dotted background grid=0A= if (prop['chart.background.grid.dotted'] && typeof = co.setLineDash =3D=3D 'function') {=0A= co.setLineDash([1,2]);=0A= }=0A= =0A= =0A= // Draw the horizontal lines=0A= if (prop['chart.background.grid.hlines']) {=0A= height =3D (ca.height - gutterBottom)=0A= for (y=3DgutterTop; y<height; = y+=3Dprop['chart.background.grid.hsize']) {=0A= context.moveTo(gutterLeft, Math.round(y));=0A= context.lineTo(ca.width - gutterRight, = Math.round(y));=0A= }=0A= }=0A= =0A= if (prop['chart.background.grid.vlines']) {=0A= // Draw the vertical lines=0A= var width =3D (ca.width - gutterRight)=0A= for (x=3DgutterLeft; x<=3Dwidth; = x+=3Dprop['chart.background.grid.vsize']) {=0A= co.moveTo(Math.round(x), gutterTop);=0A= co.lineTo(Math.round(x), ca.height - gutterBottom);=0A= }=0A= }=0A= =0A= if (prop['chart.background.grid.border']) {=0A= // Make sure a rectangle, the same colour as the grid = goes around the graph=0A= co.strokeStyle =3D prop['chart.background.grid.color'];=0A= co.strokeRect(Math.round(gutterLeft), = Math.round(gutterTop), ca.width - gutterLeft - gutterRight, ca.height - = gutterTop - gutterBottom);=0A= }=0A= }=0A= =0A= context.stroke();=0A= =0A= // Reset the line dash=0A= if (typeof co.setLineDash =3D=3D 'function') {=0A= co.setLineDash([1,0]);=0A= }=0A= =0A= // If it's a bar and 3D variant, translate=0A= if (variant =3D=3D '3d') {=0A= co.restore();=0A= }=0A= =0A= // Draw the title if one is set=0A= if ( typeof(prop['chart.title']) =3D=3D 'string') {=0A= =0A= if (obj.type =3D=3D 'gantt') {=0A= gutterTop -=3D 10;=0A= }=0A= =0A= RG.DrawTitle(obj,=0A= prop['chart.title'],=0A= gutterTop,=0A= null,=0A= prop['chart.title.size'] ? = prop['chart.title.size'] : prop['chart.text.size'] + 2);=0A= }=0A= =0A= co.stroke();=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Makes a clone of an object=0A= * =0A= * @param obj val The object to clone=0A= */=0A= RGraph.array_clone =3D function (obj)=0A= {=0A= var RG =3D RGraph;=0A= =0A= if(obj =3D=3D null || typeof(obj) !=3D 'object') {=0A= return obj;=0A= }=0A= =0A= var temp =3D [];=0A= =0A= for (var i=3D0,len=3Dobj.length;i<len; ++i) {=0A= =0A= if (typeof(obj[i]) =3D=3D 'number') {=0A= temp[i] =3D (function (arg) {return = Number(arg);})(obj[i]);=0A= } else if (typeof(obj[i]) =3D=3D 'string') {=0A= temp[i] =3D (function (arg) {return = String(arg);})(obj[i]);=0A= } else if (typeof(obj[i]) =3D=3D 'function') {=0A= temp[i] =3D obj[i];=0A= =0A= } else {=0A= temp[i] =3D RG.array_clone(obj[i]);=0A= }=0A= }=0A= =0A= return temp;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Formats a number with thousand seperators so it's easier to read=0A= * =0A= * @param integer obj The chart object=0A= * @param integer num The number to format=0A= * @param string The (optional) string to prepend to the string=0A= * @param string The (optional) string to append to the string=0A= * @return string The formatted number=0A= */=0A= RGraph.number_format =3D function (obj, num)=0A= {=0A= var RG =3D RGraph;=0A= var ca =3D obj.canvas;=0A= var co =3D obj.context;=0A= var prop =3D obj.properties;=0A= =0A= var i;=0A= var prepend =3D arguments[2] ? String(arguments[2]) : '';=0A= var append =3D arguments[3] ? String(arguments[3]) : '';=0A= var output =3D '';=0A= var decimal =3D '';=0A= var decimal_seperator =3D typeof(prop['chart.scale.point']) = =3D=3D 'string' ? prop['chart.scale.point'] : '.';=0A= var thousand_seperator =3D typeof(prop['chart.scale.thousand']) = =3D=3D 'string' ? prop['chart.scale.thousand'] : ',';=0A= RegExp.$1 =3D '';=0A= var i,j;=0A= =0A= if (typeof(prop['chart.scale.formatter']) =3D=3D 'function') {=0A= return prop['chart.scale.formatter'](obj, num);=0A= }=0A= =0A= // Ignore the preformatted version of "1e-2"=0A= if (String(num).indexOf('e') > 0) {=0A= return String(prepend + String(num) + append);=0A= }=0A= =0A= // We need then number as a string=0A= num =3D String(num);=0A= =0A= // Take off the decimal part - we re-append it later=0A= if (num.indexOf('.') > 0) {=0A= var tmp =3D num;=0A= num =3D num.replace(/\.(.*)/, ''); // The front part of = the number=0A= decimal =3D tmp.replace(/(.*)\.(.*)/, '$2'); // The decimal = part of the number=0A= }=0A= =0A= // Thousand seperator=0A= //var seperator =3D arguments[1] ? String(arguments[1]) : ',';=0A= var seperator =3D thousand_seperator;=0A= =0A= /**=0A= * Work backwards adding the thousand seperators=0A= */=0A= var foundPoint;=0A= for (i=3D(num.length - 1),j=3D0; i>=3D0; j++,i--) {=0A= var character =3D num.charAt(i);=0A= =0A= if ( j % 3 =3D=3D 0 && j !=3D 0) {=0A= output +=3D seperator;=0A= }=0A= =0A= /**=0A= * Build the output=0A= */=0A= output +=3D character;=0A= }=0A= =0A= /**=0A= * Now need to reverse the string=0A= */=0A= var rev =3D output;=0A= output =3D '';=0A= for (i=3D(rev.length - 1); i>=3D0; i--) {=0A= output +=3D rev.charAt(i);=0A= }=0A= =0A= // Tidy up=0A= //output =3D output.replace(/^-,/, '-');=0A= if (output.indexOf('-' + prop['chart.scale.thousand']) =3D=3D 0) = {=0A= output =3D '-' + output.substr(('-' + = prop['chart.scale.thousand']).length);=0A= }=0A= =0A= // Reappend the decimal=0A= if (decimal.length) {=0A= output =3D output + decimal_seperator + decimal;=0A= decimal =3D '';=0A= RegExp.$1 =3D '';=0A= }=0A= =0A= // Minor bugette=0A= if (output.charAt(0) =3D=3D '-') {=0A= output =3D output.replace(/-/, '');=0A= prepend =3D '-' + prepend;=0A= }=0A= =0A= return prepend + output + append;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Draws horizontal coloured bars on something like the bar, line or = scatter=0A= */=0A= RGraph.DrawBars =3D function (obj)=0A= {=0A= var prop =3D obj.properties;=0A= var co =3D obj.context;=0A= var ca =3D obj.canvas;=0A= var RG =3D RGraph;=0A= var hbars =3D prop['chart.background.hbars'];=0A= =0A= if (hbars =3D=3D=3D null) {=0A= return;=0A= }=0A= =0A= /**=0A= * Draws a horizontal bar=0A= */=0A= co.beginPath();=0A= =0A= for (i=3D0,len=3Dhbars.length; i<len; ++i) {=0A= =0A= var start =3D hbars[i][0];=0A= var length =3D hbars[i][1];=0A= var color =3D hbars[i][2];=0A= =0A= =0A= // Perform some bounds checking=0A= if(RG.is_null(start))start =3D obj.scale2.max=0A= if (start > obj.scale2.max) start =3D obj.scale2.max;=0A= if (RG.is_null(length)) length =3D obj.scale2.max - start;=0A= if (start + length > obj.scale2.max) length =3D = obj.scale2.max - start;=0A= if (start + length < (-1 * obj.scale2.max) ) length =3D (-1 = * obj.scale2.max) - start;=0A= =0A= if (prop['chart.xaxispos'] =3D=3D 'center' && start =3D=3D = obj.scale2.max && length < (obj.scale2.max * -2)) {=0A= length =3D obj.scale2.max * -2;=0A= }=0A= =0A= =0A= /**=0A= * Draw the bar=0A= */=0A= var x =3D prop['chart.gutter.left'];=0A= var y =3D obj.getYCoord(start);=0A= var w =3D ca.width - prop['chart.gutter.left'] - = prop['chart.gutter.right'];=0A= var h =3D obj.getYCoord(start + length) - y;=0A= =0A= // Accommodate Opera :-/=0A= if (ISOPERA !=3D -1 && prop['chart.xaxispos'] =3D=3D = 'center' && h < 0) {=0A= h *=3D -1;=0A= y =3D y - h;=0A= }=0A= =0A= /**=0A= * Account for X axis at the top=0A= */=0A= if (prop['chart.xaxispos'] =3D=3D 'top') {=0A= y =3D ca.height - y;=0A= h *=3D -1;=0A= }=0A= =0A= co.fillStyle =3D color;=0A= co.fillRect(x, y, w, h);=0A= }=0A= /*=0A= =0A= =0A= =0A= =0A= =0A= // If the X axis is at the bottom, and a negative max is = given, warn the user=0A= if (obj.Get('chart.xaxispos') =3D=3D 'bottom' && = (hbars[i][0] < 0 || (hbars[i][1] + hbars[i][1] < 0)) ) {=0A= alert('[' + obj.type.toUpperCase() + ' (ID: ' + obj.id + = ') BACKGROUND HBARS] You have a negative value in one of your background = hbars values, whilst the X axis is in the center');=0A= }=0A= =0A= var ystart =3D (obj.grapharea - (((hbars[i][0] - = obj.scale2.min) / (obj.scale2.max - obj.scale2.min)) * obj.grapharea));=0A= //var height =3D (Math.min(hbars[i][1], obj.max - = hbars[i][0]) / (obj.scale2.max - obj.scale2.min)) * obj.grapharea;=0A= var height =3D obj.getYCoord(hbars[i][0]) - = obj.getYCoord(hbars[i][1]);=0A= =0A= // Account for the X axis being in the center=0A= if (obj.Get('chart.xaxispos') =3D=3D 'center') {=0A= ystart /=3D 2;=0A= //height /=3D 2;=0A= }=0A= =0A= ystart +=3D obj.Get('chart.gutter.top')=0A= =0A= var x =3D obj.Get('chart.gutter.left');=0A= var y =3D ystart - height;=0A= var w =3D obj.canvas.width - obj.Get('chart.gutter.left') - = obj.Get('chart.gutter.right');=0A= var h =3D height;=0A= =0A= // Accommodate Opera :-/=0A= if (navigator.userAgent.indexOf('Opera') !=3D -1 && = obj.Get('chart.xaxispos') =3D=3D 'center' && h < 0) {=0A= h *=3D -1;=0A= y =3D y - h;=0A= }=0A= =0A= /**=0A= * Account for X axis at the top=0A= */=0A= //if (obj.Get('chart.xaxispos') =3D=3D 'top') {=0A= // y =3D obj.canvas.height - y;=0A= // h *=3D -1;=0A= //}=0A= =0A= //obj.context.fillStyle =3D hbars[i][2];=0A= //obj.context.fillRect(x, y, w, h);=0A= //}=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Draws in-graph labels.=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.DrawInGraphLabels =3D function (obj)=0A= {=0A= var RG =3D RGraph;=0A= var ca =3D obj.canvas;=0A= var co =3D obj.context;=0A= var prop =3D obj.properties;=0A= var labels =3D prop['chart.labels.ingraph'];=0A= var labels_processed =3D [];=0A= =0A= // Defaults=0A= var fgcolor =3D 'black';=0A= var bgcolor =3D 'white';=0A= var direction =3D 1;=0A= =0A= if (!labels) {=0A= return;=0A= }=0A= =0A= /**=0A= * Preprocess the labels array. Numbers are expanded=0A= */=0A= for (var i=3D0,len=3Dlabels.length; i<len; i+=3D1) {=0A= if (typeof(labels[i]) =3D=3D 'number') {=0A= for (var j=3D0; j<labels[i]; ++j) {=0A= labels_processed.push(null);=0A= }=0A= } else if (typeof(labels[i]) =3D=3D 'string' || = typeof(labels[i]) =3D=3D 'object') {=0A= labels_processed.push(labels[i]);=0A= =0A= } else {=0A= labels_processed.push('');=0A= }=0A= }=0A= =0A= /**=0A= * Turn off any shadow=0A= */=0A= RG.NoShadow(obj);=0A= =0A= if (labels_processed && labels_processed.length > 0) {=0A= =0A= for (var i=3D0,len=3Dlabels_processed.length; i<len; ++i) {=0A= if (labels_processed[i]) {=0A= var coords =3D obj.coords[i];=0A= =0A= if (coords && coords.length > 0) {=0A= var x =3D (obj.type =3D=3D 'bar' ? = coords[0] + (coords[2] / 2) : coords[0]);=0A= var y =3D (obj.type =3D=3D 'bar' ? = coords[1] + (coords[3] / 2) : coords[1]);=0A= var length =3D typeof(labels_processed[i][4]) = =3D=3D 'number' ? labels_processed[i][4] : 25;=0A= =0A= co.beginPath();=0A= co.fillStyle =3D 'black';=0A= co.strokeStyle =3D 'black';=0A= =0A= =0A= if (obj.type =3D=3D 'bar') {=0A= =0A= /**=0A= * X axis at the top=0A= */=0A= if (obj.Get('chart.xaxispos') =3D=3D 'top') {=0A= length *=3D -1;=0A= }=0A= =0A= if (prop['chart.variant'] =3D=3D 'dot') {=0A= co.moveTo(Math.round(x), = obj.coords[i][1] - 5);=0A= co.lineTo(Math.round(x), = obj.coords[i][1] - 5 - length);=0A= =0A= var text_x =3D Math.round(x);=0A= var text_y =3D obj.coords[i][1] - 5 - = length;=0A= =0A= } else if (prop['chart.variant'] =3D=3D = 'arrow') {=0A= co.moveTo(Math.round(x), = obj.coords[i][1] - 5);=0A= co.lineTo(Math.round(x), = obj.coords[i][1] - 5 - length);=0A= =0A= var text_x =3D Math.round(x);=0A= var text_y =3D obj.coords[i][1] - 5 - = length;=0A= =0A= } else {=0A= =0A= co.arc(Math.round(x), y, 2.5, 0, 6.28, = 0);=0A= co.moveTo(Math.round(x), y);=0A= co.lineTo(Math.round(x), y - length);=0A= =0A= var text_x =3D Math.round(x);=0A= var text_y =3D y - length;=0A= }=0A= =0A= co.stroke();=0A= co.fill();=0A= =0A= =0A= } else if (obj.type =3D=3D 'line') {=0A= =0A= if (=0A= typeof(labels_processed[i]) =3D=3D = 'object' &&=0A= typeof(labels_processed[i][3]) =3D=3D = 'number' &&=0A= labels_processed[i][3] =3D=3D -1=0A= ) {=0A= =0A= co.moveTo(Math.round(x), y + 5);=0A= co.lineTo(Math.round(x), y + 5 + length);=0A= =0A= co.stroke();=0A= co.beginPath(); = =0A= =0A= // This draws the arrow=0A= co.moveTo(Math.round(x), y + 5);=0A= co.lineTo(Math.round(x) - 3, y + 10);=0A= co.lineTo(Math.round(x) + 3, y + 10);=0A= co.closePath();=0A= =0A= var text_x =3D x;=0A= var text_y =3D y + 5 + length;=0A= =0A= } else {=0A= =0A= var text_x =3D x;=0A= var text_y =3D y - 5 - length;=0A= =0A= co.moveTo(Math.round(x), y - 5);=0A= co.lineTo(Math.round(x), y - 5 - length);=0A= =0A= co.stroke();=0A= co.beginPath();=0A= =0A= // This draws the arrow=0A= co.moveTo(Math.round(x), y - 5);=0A= co.lineTo(Math.round(x) - 3, y - 10);=0A= co.lineTo(Math.round(x) + 3, y - 10);=0A= co.closePath();=0A= }=0A= =0A= co.fill();=0A= }=0A= =0A= // Taken out on the 10th Nov 2010 - unnecessary=0A= //var width =3D = context.measureText(labels[i]).width;=0A= =0A= co.beginPath();=0A= =0A= // Fore ground color=0A= co.fillStyle =3D = (typeof(labels_processed[i]) =3D=3D 'object' && = typeof(labels_processed[i][1]) =3D=3D 'string') ? labels_processed[i][1] = : 'black';=0A= =0A= RG.Text2(obj,{'font':prop['chart.text.font'],=0A= 'size':prop['chart.text.size'],=0A= 'x':text_x,=0A= 'y':text_y,=0A= 'text': = (typeof(labels_processed[i]) =3D=3D 'object' && = typeof(labels_processed[i][0]) =3D=3D 'string') ? labels_processed[i][0] = : labels_processed[i],=0A= 'valign': 'bottom',=0A= 'halign':'center',=0A= 'bounding':true,=0A= 'bounding.fill': = (typeof(labels_processed[i]) =3D=3D 'object' && = typeof(labels_processed[i][2]) =3D=3D 'string') ? labels_processed[i][2] = : 'white',=0A= 'tag':'labels ingraph'=0A= });=0A= co.fill();=0A= }=0A= }=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function "fills in" key missing properties that various = implementations lack=0A= * =0A= * @param object e The event object=0A= */=0A= RGraph.FixEventObject =3D function (e)=0A= {=0A= if (ISOLD) {=0A= var e =3D event;=0A= =0A= e.pageX =3D (event.clientX + document.body.scrollLeft);=0A= e.pageY =3D (event.clientY + document.body.scrollTop);=0A= e.target =3D event.srcElement;=0A= =0A= if (!document.body.scrollTop && = document.documentElement.scrollTop) {=0A= e.pageX +=3D = parseInt(document.documentElement.scrollLeft);=0A= e.pageY +=3D = parseInt(document.documentElement.scrollTop);=0A= }=0A= }=0A= =0A= =0A= // Any browser that doesn't implement stopPropagation() (MSIE)=0A= if (!e.stopPropagation) {=0A= e.stopPropagation =3D function () {window.event.cancelBubble = =3D true;}=0A= }=0A= =0A= return e;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Thisz function hides the crosshairs coordinates=0A= */=0A= RGraph.HideCrosshairCoords =3D function ()=0A= {=0A= var RG =3D RGraph;=0A= var div =3D RG.Registry.Get('chart.coordinates.coords.div');=0A= =0A= if ( div=0A= && div.style.opacity =3D=3D 1=0A= && div.__object__.Get('chart.crosshairs.coords.fadeout')=0A= ) {=0A= setTimeout(function() = {RG.Registry.Get('chart.coordinates.coords.div').style.opacity =3D = 0.9;}, 50);=0A= setTimeout(function() = {RG.Registry.Get('chart.coordinates.coords.div').style.opacity =3D = 0.8;}, 100);=0A= setTimeout(function() = {RG.Registry.Get('chart.coordinates.coords.div').style.opacity =3D = 0.7;}, 150);=0A= setTimeout(function() = {RG.Registry.Get('chart.coordinates.coords.div').style.opacity =3D = 0.6;}, 200);=0A= setTimeout(function() = {RG.Registry.Get('chart.coordinates.coords.div').style.opacity =3D = 0.5;}, 250);=0A= setTimeout(function() = {RG.Registry.Get('chart.coordinates.coords.div').style.opacity =3D = 0.4;}, 300);=0A= setTimeout(function() = {RG.Registry.Get('chart.coordinates.coords.div').style.opacity =3D = 0.3;}, 350);=0A= setTimeout(function() = {RG.Registry.Get('chart.coordinates.coords.div').style.opacity =3D = 0.2;}, 400);=0A= setTimeout(function() = {RG.Registry.Get('chart.coordinates.coords.div').style.opacity =3D = 0.1;}, 450);=0A= setTimeout(function() = {RG.Registry.Get('chart.coordinates.coords.div').style.opacity =3D 0;}, = 500);=0A= setTimeout(function() = {RG.Registry.Get('chart.coordinates.coords.div').style.display =3D = 'none';}, 550);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Draws the3D axes/background=0A= */=0A= RGraph.Draw3DAxes =3D function (obj)=0A= {=0A= var prop =3D obj.properties;=0A= var co =3D obj.context;=0A= var ca =3D obj.canvas;=0A= =0A= var gutterLeft =3D prop['chart.gutter.left'];=0A= var gutterRight =3D prop['chart.gutter.right'];=0A= var gutterTop =3D prop['chart.gutter.top'];=0A= var gutterBottom =3D prop['chart.gutter.bottom'];=0A= =0A= =0A= co.strokeStyle =3D '#aaa';=0A= co.fillStyle =3D '#ddd';=0A= =0A= // Draw the vertical left side=0A= co.beginPath();=0A= co.moveTo(gutterLeft, gutterTop);=0A= co.lineTo(gutterLeft + 10, gutterTop - 5);=0A= co.lineTo(gutterLeft + 10, ca.height - gutterBottom - 5);=0A= co.lineTo(gutterLeft, ca.height - gutterBottom);=0A= co.closePath();=0A= =0A= co.stroke();=0A= co.fill();=0A= =0A= // Draw the bottom floor=0A= co.beginPath();=0A= co.moveTo(gutterLeft, ca.height - gutterBottom);=0A= co.lineTo(gutterLeft + 10, ca.height - gutterBottom - 5);=0A= co.lineTo(ca.width - gutterRight + 10, ca.height - = gutterBottom - 5);=0A= co.lineTo(ca.width - gutterRight, ca.height - gutterBottom);=0A= co.closePath();=0A= =0A= co.stroke();=0A= co.fill();=0A= }=0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * This function attempts to "fill in" missing functions from the = canvas=0A= * context object. Only two at the moment - measureText() nd = fillText().=0A= * =0A= * @param object context The canvas 2D context=0A= */=0A= RGraph.OldBrowserCompat =3D function (co)=0A= {=0A= if (!co) {=0A= return;=0A= }=0A= =0A= if (!co.measureText) {=0A= =0A= // This emulates the measureText() function=0A= co.measureText =3D function (text)=0A= {=0A= var textObj =3D document.createElement('DIV');=0A= textObj.innerHTML =3D text;=0A= textObj.style.position =3D 'absolute';=0A= textObj.style.top =3D '-100px';=0A= textObj.style.left =3D 0;=0A= document.body.appendChild(textObj);=0A= =0A= var width =3D {width: textObj.offsetWidth};=0A= =0A= textObj.style.display =3D 'none';=0A= =0A= return width;=0A= }=0A= }=0A= =0A= if (!co.fillText) {=0A= // This emulates the fillText() method=0A= co.fillText =3D function (text, targetX, targetY)=0A= {=0A= return false;=0A= }=0A= }=0A= =0A= // If IE8, add addEventListener()=0A= if (!co.canvas.addEventListener) {=0A= window.addEventListener =3D function (ev, func, bubble)=0A= {=0A= return this.attachEvent('on' + ev, func);=0A= }=0A= =0A= co.canvas.addEventListener =3D function (ev, func, bubble)=0A= {=0A= return this.attachEvent('on' + ev, func);=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Draws a rectangle with curvy corners=0A= * =0A= * @param co object The context=0A= * @param x number The X coordinate (top left of the square)=0A= * @param y number The Y coordinate (top left of the square)=0A= * @param w number The width of the rectangle=0A= * @param h number The height of the rectangle=0A= * @param number The radius of the curved corners=0A= * @param boolean Whether the top left corner is curvy=0A= * @param boolean Whether the top right corner is curvy=0A= * @param boolean Whether the bottom right corner is curvy=0A= * @param boolean Whether the bottom left corner is curvy=0A= */=0A= RGraph.strokedCurvyRect =3D function (co, x, y, w, h)=0A= {=0A= // The corner radius=0A= var r =3D arguments[5] ? arguments[5] : 3;=0A= =0A= // The corners=0A= var corner_tl =3D (arguments[6] || arguments[6] =3D=3D null) ? = true : false;=0A= var corner_tr =3D (arguments[7] || arguments[7] =3D=3D null) ? = true : false;=0A= var corner_br =3D (arguments[8] || arguments[8] =3D=3D null) ? = true : false;=0A= var corner_bl =3D (arguments[9] || arguments[9] =3D=3D null) ? = true : false;=0A= =0A= co.beginPath();=0A= =0A= // Top left side=0A= co.moveTo(x + (corner_tl ? r : 0), y);=0A= co.lineTo(x + w - (corner_tr ? r : 0), y);=0A= =0A= // Top right corner=0A= if (corner_tr) {=0A= co.arc(x + w - r, y + r, r, PI + HALFPI, TWOPI, false);=0A= }=0A= =0A= // Top right side=0A= co.lineTo(x + w, y + h - (corner_br ? r : 0) );=0A= =0A= // Bottom right corner=0A= if (corner_br) {=0A= co.arc(x + w - r, y - r + h, r, TWOPI, HALFPI, false);=0A= }=0A= =0A= // Bottom right side=0A= co.lineTo(x + (corner_bl ? r : 0), y + h);=0A= =0A= // Bottom left corner=0A= if (corner_bl) {=0A= co.arc(x + r, y - r + h, r, HALFPI, PI, false);=0A= }=0A= =0A= // Bottom left side=0A= co.lineTo(x, y + (corner_tl ? r : 0) );=0A= =0A= // Top left corner=0A= if (corner_tl) {=0A= co.arc(x + r, y + r, r, PI, PI + HALFPI, false);=0A= }=0A= =0A= co.stroke();=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Draws a filled rectangle with curvy corners=0A= * =0A= * @param context object The context=0A= * @param x number The X coordinate (top left of the square)=0A= * @param y number The Y coordinate (top left of the square)=0A= * @param w number The width of the rectangle=0A= * @param h number The height of the rectangle=0A= * @param number The radius of the curved corners=0A= * @param boolean Whether the top left corner is curvy=0A= * @param boolean Whether the top right corner is curvy=0A= * @param boolean Whether the bottom right corner is curvy=0A= * @param boolean Whether the bottom left corner is curvy=0A= */=0A= RGraph.filledCurvyRect =3D function (co, x, y, w, h)=0A= {=0A= // The corner radius=0A= var r =3D arguments[5] ? arguments[5] : 3;=0A= =0A= // The corners=0A= var corner_tl =3D (arguments[6] || arguments[6] =3D=3D null) ? = true : false;=0A= var corner_tr =3D (arguments[7] || arguments[7] =3D=3D null) ? = true : false;=0A= var corner_br =3D (arguments[8] || arguments[8] =3D=3D null) ? = true : false;=0A= var corner_bl =3D (arguments[9] || arguments[9] =3D=3D null) ? = true : false;=0A= =0A= co.beginPath();=0A= =0A= // First draw the corners=0A= =0A= // Top left corner=0A= if (corner_tl) {=0A= co.moveTo(x + r, y + r);=0A= co.arc(x + r, y + r, r, PI, PI + HALFPI, false);=0A= } else {=0A= co.fillRect(x, y, r, r);=0A= }=0A= =0A= // Top right corner=0A= if (corner_tr) {=0A= co.moveTo(x + w - r, y + r);=0A= co.arc(x + w - r, y + r, r, PI + HALFPI, 0, false);=0A= } else {=0A= co.moveTo(x + w - r, y);=0A= co.fillRect(x + w - r, y, r, r);=0A= }=0A= =0A= =0A= // Bottom right corner=0A= if (corner_br) {=0A= co.moveTo(x + w - r, y + h - r);=0A= co.arc(x + w - r, y - r + h, r, 0, HALFPI, false);=0A= } else {=0A= co.moveTo(x + w - r, y + h - r);=0A= co.fillRect(x + w - r, y + h - r, r, r);=0A= }=0A= =0A= // Bottom left corner=0A= if (corner_bl) {=0A= co.moveTo(x + r, y + h - r);=0A= co.arc(x + r, y - r + h, r, HALFPI, PI, false);=0A= } else {=0A= co.moveTo(x, y + h - r);=0A= co.fillRect(x, y + h - r, r, r);=0A= }=0A= =0A= // Now fill it in=0A= co.fillRect(x + r, y, w - r - r, h);=0A= co.fillRect(x, y + r, r + 1, h - r - r);=0A= co.fillRect(x + w - r - 1, y + r, r + 1, h - r - r);=0A= =0A= co.fill();=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Hides the zoomed canvas=0A= */=0A= RGraph.HideZoomedCanvas =3D function ()=0A= {=0A= var interval =3D 15;=0A= var frames =3D 10;=0A= =0A= if (typeof(__zoomedimage__) =3D=3D 'object') {=0A= var obj =3D __zoomedimage__.obj;=0A= var prop =3D obj.properties;=0A= } else {=0A= return;=0A= }=0A= =0A= if (prop['chart.zoom.fade.out']) {=0A= for (var i=3Dframes,j=3D1; i>=3D0; --i, ++j) {=0A= if (typeof(__zoomedimage__) =3D=3D 'object') {=0A= setTimeout("__zoomedimage__.style.opacity =3D " + = String(i / 10), j * interval);=0A= }=0A= }=0A= =0A= if (typeof(__zoomedbackground__) =3D=3D 'object') {=0A= setTimeout("__zoomedbackground__.style.opacity =3D " + = String(i / frames), j * interval);=0A= }=0A= }=0A= =0A= if (typeof(__zoomedimage__) =3D=3D 'object') {=0A= setTimeout("__zoomedimage__.style.display =3D 'none'", = prop['chart.zoom.fade.out'] ? (frames * interval) + 10 : 0);=0A= }=0A= =0A= if (typeof(__zoomedbackground__) =3D=3D 'object') {=0A= setTimeout("__zoomedbackground__.style.display =3D 'none'", = prop['chart.zoom.fade.out'] ? (frames * interval) + 10 : 0);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Adds an event handler=0A= * =0A= * @param object obj The graph object=0A= * @param string event The name of the event, eg ontooltip=0A= * @param object func The callback function=0A= */=0A= RGraph.AddCustomEventListener =3D function (obj, name, func)=0A= {=0A= var RG =3D RGraph;=0A= =0A= if (typeof(RG.events[obj.uid]) =3D=3D 'undefined') {=0A= RG.events[obj.uid] =3D [];=0A= }=0A= =0A= RG.events[obj.uid].push([obj, name, func]);=0A= =0A= return RG.events[obj.uid].length - 1;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Used to fire one of the RGraph custom events=0A= * =0A= * @param object obj The graph object that fires the event=0A= * @param string event The name of the event to fire=0A= */=0A= RGraph.FireCustomEvent =3D function (obj, name)=0A= {=0A= var RG =3D RGraph;=0A= =0A= if (obj && obj.isRGraph) {=0A= =0A= // New style of adding custom events=0A= if (obj[name]) {=0A= (obj[name])(obj);=0A= }=0A= =0A= var uid =3D obj.uid;=0A= =0A= if ( typeof(uid) =3D=3D 'string'=0A= && typeof(RG.events) =3D=3D 'object'=0A= && typeof(RG.events[uid]) =3D=3D 'object'=0A= && RG.events[uid].length > 0) {=0A= =0A= for(var j=3D0; j<RG.events[uid].length; ++j) {=0A= if (RG.events[uid][j] && RG.events[uid][j][1] =3D=3D = name) {=0A= RG.events[uid][j][2](obj);=0A= }=0A= }=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * If you prefer, you can use the SetConfig() method to set the = configuration information=0A= * for your chart. You may find that setting the configuration this = way eases reuse.=0A= * =0A= * @param object obj The graph object=0A= * @param object config The graph configuration information=0A= */=0A= RGraph.SetConfig =3D function (obj, config)=0A= {=0A= for (i in config) {=0A= if (typeof(i) =3D=3D 'string') {=0A= obj.Set(i, config[i]);=0A= }=0A= }=0A= =0A= return obj;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Clears all the custom event listeners that have been registered=0A= * =0A= * @param string Limits the clearing to this object ID=0A= */=0A= RGraph.RemoveAllCustomEventListeners =3D function ()=0A= {=0A= var RG =3D RGraph;=0A= var id =3D arguments[0];=0A= =0A= if (id && RG.events[id]) {=0A= RG.events[id] =3D [];=0A= } else {=0A= RG.events =3D [];=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Clears a particular custom event listener=0A= * =0A= * @param object obj The graph object=0A= * @param number i This is the index that is return by = .AddCustomEventListener()=0A= */=0A= RGraph.RemoveCustomEventListener =3D function (obj, i)=0A= {=0A= var RG =3D RGraph;=0A= =0A= if ( typeof(RG.events) =3D=3D 'object'=0A= && typeof(RG.events[obj.id]) =3D=3D 'object'=0A= && typeof(RG.events[obj.id][i]) =3D=3D 'object') {=0A= =0A= RG.events[obj.id][i] =3D null;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This draws the background=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.DrawBackgroundImage =3D function (obj)=0A= {=0A= var prop =3D obj.properties;=0A= var ca =3D obj.canvas;=0A= var co =3D obj.context;=0A= var RG =3D RGraph;=0A= =0A= if (typeof(prop['chart.background.image']) =3D=3D 'string') {=0A= if (typeof(ca.__rgraph_background_image__) =3D=3D = 'undefined') {=0A= var img =3D new Image();=0A= img.__object__ =3D obj;=0A= img.__canvas__ =3D ca;=0A= img.__context__ =3D co;=0A= img.src =3D obj.Get('chart.background.image');=0A= =0A= ca.__rgraph_background_image__ =3D img;=0A= } else {=0A= img =3D ca.__rgraph_background_image__;=0A= }=0A= =0A= // When the image has loaded - redraw the canvas=0A= img.onload =3D function ()=0A= {=0A= obj.__rgraph_background_image_loaded__ =3D true;=0A= RG.Clear(ca);=0A= RG.RedrawCanvas(ca);=0A= }=0A= =0A= var gutterLeft =3D obj.gutterLeft;=0A= var gutterRight =3D obj.gutterRight;=0A= var gutterTop =3D obj.gutterTop;=0A= var gutterBottom =3D obj.gutterBottom;=0A= var stretch =3D prop['chart.background.image.stretch'];=0A= var align =3D prop['chart.background.image.align'];=0A= =0A= // Handle chart.background.image.align=0A= if (typeof(align) =3D=3D 'string') {=0A= if (align.indexOf('right') !=3D -1) {=0A= var x =3D ca.width - img.width - gutterRight;=0A= } else {=0A= var x =3D gutterLeft;=0A= }=0A= =0A= if (align.indexOf('bottom') !=3D -1) {=0A= var y =3D ca.height - img.height - gutterBottom;=0A= } else {=0A= var y =3D gutterTop;=0A= }=0A= } else {=0A= var x =3D gutterLeft;=0A= var y =3D gutterTop;=0A= }=0A= =0A= // X/Y coords take precedence over the align=0A= var x =3D typeof(prop['chart.background.image.x']) =3D=3D = 'number' ? prop['chart.background.image.x'] : x;=0A= var y =3D typeof(prop['chart.background.image.y']) =3D=3D = 'number' ? prop['chart.background.image.y'] : y;=0A= var w =3D stretch ? ca.width - gutterLeft - gutterRight : = img.width;=0A= var h =3D stretch ? ca.height - gutterTop - gutterBottom : = img.height;=0A= =0A= /**=0A= * You can now specify the width and height of the image=0A= */=0A= if (typeof(prop['chart.background.image.w']) =3D=3D = 'number') w =3D prop['chart.background.image.w'];=0A= if (typeof(prop['chart.background.image.h']) =3D=3D = 'number') h =3D prop['chart.background.image.h'];=0A= =0A= co.drawImage(img,x,y,w, h);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function determines wshether an object has tooltips or not=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.hasTooltips =3D function (obj)=0A= {=0A= var prop =3D obj.properties;=0A= =0A= if (typeof(prop['chart.tooltips']) =3D=3D 'object' && = prop['chart.tooltips']) {=0A= for (var i=3D0,len=3Dprop['chart.tooltips'].length; i<len; = ++i) {=0A= if (!RGraph.is_null(obj.Get('chart.tooltips')[i])) {=0A= return true;=0A= }=0A= }=0A= } else if (typeof(prop['chart.tooltips']) =3D=3D 'function') {=0A= return true;=0A= }=0A= =0A= return false;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function creates a (G)UID which can be used to identify = objects.=0A= * =0A= * @return string (g)uid The (G)UID=0A= */=0A= RGraph.CreateUID =3D function ()=0A= {=0A= return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, = function(c)=0A= {=0A= var r =3D Math.random()*16|0, v =3D c =3D=3D 'x' ? r : = (r&0x3|0x8);=0A= return v.toString(16);=0A= });=0A= }=0A= =0A= =0A= =0A= /**=0A= * This is the new object registry, used to facilitate multiple = objects per canvas.=0A= * =0A= * @param object obj The object to register=0A= */=0A= RGraph.ObjectRegistry.Add =3D function (obj)=0A= {=0A= var uid =3D obj.uid;=0A= var id =3D obj.canvas.id;=0A= var RG =3D RGraph;=0A= =0A= /**=0A= * Index the objects by UID=0A= */=0A= RG.ObjectRegistry.objects.byUID.push([uid, obj]);=0A= =0A= /**=0A= * Index the objects by the canvas that they're drawn on=0A= */=0A= RG.ObjectRegistry.objects.byCanvasID.push([id, obj]);=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Remove an object from the object registry=0A= * =0A= * @param object obj The object to remove.=0A= */=0A= RGraph.ObjectRegistry.Remove =3D function (obj)=0A= {=0A= var id =3D obj.id;=0A= var uid =3D obj.uid;=0A= var RG =3D RGraph;=0A= =0A= for (var i=3D0; i<RG.ObjectRegistry.objects.byUID.length; ++i) {=0A= if (RG.ObjectRegistry.objects.byUID[i] && = RG.ObjectRegistry.objects.byUID[i][1].uid =3D=3D uid) {=0A= RG.ObjectRegistry.objects.byUID[i] =3D null;=0A= }=0A= }=0A= =0A= =0A= for (var i=3D0; i<RG.ObjectRegistry.objects.byCanvasID.length; = ++i) {=0A= if ( RG.ObjectRegistry.objects.byCanvasID[i]=0A= && RG.ObjectRegistry.objects.byCanvasID[i][1]=0A= && RG.ObjectRegistry.objects.byCanvasID[i][1].uid =3D=3D = uid) {=0A= =0A= RG.ObjectRegistry.objects.byCanvasID[i] =3D null;=0A= }=0A= }=0A= =0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Removes all objects from the ObjectRegistry. If either the ID of a = canvas is supplied,=0A= * or the canvas itself, then only objects pertaining to that canvas = are cleared.=0A= * =0A= * @param mixed Either a canvas object (as returned by = document.getElementById()=0A= * or the ID of a canvas (ie a string)=0A= */=0A= RGraph.ObjectRegistry.Clear =3D function ()=0A= {=0A= var RG =3D RGraph;=0A= =0A= // If an ID is supplied restrict the learing to that=0A= if (arguments[0]) {=0A= var id =3D (typeof(arguments[0]) =3D=3D 'object' ? = arguments[0].id : arguments[0]);=0A= var objects =3D RG.ObjectRegistry.getObjectsByCanvasID(id);=0A= =0A= for (var i=3D0; i<objects.length; ++i) {=0A= RG.ObjectRegistry.Remove(objects[i]);=0A= }=0A= =0A= } else {=0A= =0A= RG.ObjectRegistry.objects =3D {};=0A= RG.ObjectRegistry.objects.byUID =3D [];=0A= RG.ObjectRegistry.objects.byCanvasID =3D [];=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Lists all objects in the ObjectRegistry=0A= * =0A= * @param boolean ret Whether to return the list or alert() it=0A= */=0A= RGraph.ObjectRegistry.List =3D function ()=0A= {=0A= var list =3D [];=0A= var RG =3D RGraph;=0A= =0A= for (var i=3D0,len=3DRG.ObjectRegistry.objects.byUID.length; = i<len; ++i) {=0A= if (RG.ObjectRegistry.objects.byUID[i]) {=0A= list.push(RG.ObjectRegistry.objects.byUID[i][1].type);=0A= }=0A= }=0A= =0A= if (arguments[0]) {=0A= return list;=0A= } else {=0A= p(list);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Clears the ObjectRegistry of objects that are of a certain given = type=0A= * =0A= * @param type string The type to clear=0A= */=0A= RGraph.ObjectRegistry.ClearByType =3D function (type)=0A= {=0A= var RG =3D RGraph;=0A= var objects =3D RG.ObjectRegistry.objects.byUID;=0A= =0A= for (var i=3D0; i<objects.length; ++i) {=0A= if (objects[i]) {=0A= var uid =3D objects[i][0];=0A= var obj =3D objects[i][1];=0A= =0A= if (obj && obj.type =3D=3D type) {=0A= RG.ObjectRegistry.Remove(obj);=0A= }=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function provides an easy way to go through all of the = objects that are held in the=0A= * Registry=0A= * =0A= * @param func function This function is run for every object. Its = passed the object as an argument=0A= * @param string type Optionally, you can pass a type of object to = look for=0A= */=0A= RGraph.ObjectRegistry.Iterate =3D function (func)=0A= {=0A= var objects =3D RGraph.ObjectRegistry.objects.byUID;=0A= =0A= for (var i=3D0; i<objects.length; ++i) {=0A= =0A= if (typeof arguments[1] =3D=3D 'string') {=0A= =0A= var types =3D arguments[1].split(/,/);=0A= =0A= for (var j=3D0; j<types.length; ++j) {=0A= if (types[j] =3D=3D objects[i][1].type) {=0A= func(objects[i][1]);=0A= }=0A= }=0A= } else {=0A= func(objects[i][1]);=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Retrieves all objects for a given canvas id=0A= * =0A= * @patarm id string The canvas ID to get objects for.=0A= */=0A= RGraph.ObjectRegistry.getObjectsByCanvasID =3D function (id)=0A= {=0A= var store =3D RGraph.ObjectRegistry.objects.byCanvasID;=0A= var ret =3D [];=0A= =0A= // Loop through all of the objects and return the appropriate = ones=0A= for (var i=3D0; i<store.length; ++i) {=0A= if (store[i] && store[i][0] =3D=3D id ) {=0A= ret.push(store[i][1]);=0A= }=0A= }=0A= =0A= return ret;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Retrieves the relevant object based on the X/Y position.=0A= * =0A= * @param object e The event object=0A= * @return object The applicable (if any) object=0A= */=0A= RGraph.ObjectRegistry.getFirstObjectByXY =3D=0A= RGraph.ObjectRegistry.getObjectByXY =3D function (e)=0A= {=0A= var canvas =3D e.target;=0A= var ret =3D null;=0A= var objects =3D = RGraph.ObjectRegistry.getObjectsByCanvasID(canvas.id);=0A= =0A= for (var i=3D(objects.length - 1); i>=3D0; --i) {=0A= =0A= var obj =3D objects[i].getObjectByXY(e);=0A= =0A= if (obj) {=0A= return obj;=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Retrieves the relevant objects based on the X/Y position.=0A= * NOTE This function returns an array of objects=0A= * =0A= * @param object e The event object=0A= * @return An array of pertinent objects. Note the there may = be only one object=0A= */=0A= RGraph.ObjectRegistry.getObjectsByXY =3D function (e)=0A= {=0A= var canvas =3D e.target;=0A= var ret =3D [];=0A= var objects =3D = RGraph.ObjectRegistry.getObjectsByCanvasID(canvas.id);=0A= =0A= // Retrieve objects "front to back"=0A= for (var i=3D(objects.length - 1); i>=3D0; --i) {=0A= =0A= var obj =3D objects[i].getObjectByXY(e);=0A= =0A= if (obj) {=0A= ret.push(obj);=0A= }=0A= }=0A= =0A= return ret;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Retrieves the object with the corresponding UID=0A= * =0A= * @param string uid The UID to get the relevant object for=0A= */=0A= RGraph.ObjectRegistry.getObjectByUID =3D function (uid)=0A= {=0A= var objects =3D RGraph.ObjectRegistry.objects.byUID;=0A= =0A= for (var i=3D0; i<objects.length; ++i) {=0A= if (objects[i] && objects[i][1].uid =3D=3D uid) {=0A= return objects[i][1];=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Brings a chart to the front of the ObjectRegistry by=0A= * removing it and then readding it at the end and then=0A= * redrawing the canvas=0A= * =0A= * @param object obj The object to bring to the front=0A= * @param boolean redraw Whether to redraw the canvas after the =0A= * object has been moved=0A= */=0A= RGraph.ObjectRegistry.bringToFront =3D function (obj)=0A= {=0A= var redraw =3D typeof arguments[1] =3D=3D 'undefined' ? true : = arguments[1];=0A= =0A= RGraph.ObjectRegistry.Remove(obj);=0A= RGraph.ObjectRegistry.Add(obj);=0A= =0A= if (redraw) {=0A= RGraph.RedrawCanvas(obj.canvas);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Retrieves the objects that are the given type=0A= * =0A= * @param mixed canvas The canvas to check. It can either be the = canvas object itself or just the ID=0A= * @param string type The type to look for=0A= * @return array An array of one or more objects=0A= */=0A= RGraph.ObjectRegistry.getObjectsByType =3D function (type)=0A= {=0A= var objects =3D RGraph.ObjectRegistry.objects.byUID;=0A= var ret =3D [];=0A= =0A= for (var i=3D0; i<objects.length; ++i) {=0A= =0A= if (objects[i] && objects[i][1] && objects[i][1].type && = objects[i][1].type && objects[i][1].type =3D=3D type) {=0A= ret.push(objects[i][1]);=0A= }=0A= }=0A= =0A= return ret;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Retrieves the FIRST object that matches the given type=0A= *=0A= * @param string type The type of object to look for=0A= * @return object The FIRST object that matches the given type=0A= */=0A= RGraph.ObjectRegistry.getFirstObjectByType =3D function (type)=0A= {=0A= var objects =3D RGraph.ObjectRegistry.objects.byUID;=0A= =0A= for (var i=3D0; i<objects.length; ++i) {=0A= if (objects[i] && objects[i][1] && objects[i][1].type =3D=3D = type) {=0A= return objects[i][1];=0A= }=0A= }=0A= =0A= return null;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This takes centerx, centery, x and y coordinates and returns the=0A= * appropriate angle relative to the canvas angle system. Remember=0A= * that the canvas angle system starts at the EAST axis=0A= * =0A= * @param number cx The centerx coordinate=0A= * @param number cy The centery coordinate=0A= * @param number x The X coordinate (eg the mouseX if coming from = a click)=0A= * @param number y The Y coordinate (eg the mouseY if coming from = a click)=0A= * @return number The relevant angle (measured in in RADIANS)=0A= */=0A= RGraph.getAngleByXY =3D function (cx, cy, x, y)=0A= {=0A= var angle =3D Math.atan((y - cy) / (x - cx));=0A= angle =3D Math.abs(angle)=0A= =0A= if (x >=3D cx && y >=3D cy) {=0A= angle +=3D TWOPI;=0A= =0A= } else if (x >=3D cx && y < cy) {=0A= angle =3D (HALFPI - angle) + (PI + HALFPI);=0A= =0A= } else if (x < cx && y < cy) {=0A= angle +=3D PI;=0A= =0A= } else {=0A= angle =3D PI - angle;=0A= }=0A= =0A= /**=0A= * Upper and lower limit checking=0A= */=0A= if (angle > TWOPI) {=0A= angle -=3D TWOPI;=0A= }=0A= =0A= return angle;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function returns the distance between two points. In effect = the=0A= * radius of an imaginary circle that is centered on x1 and y1. The = name=0A= * of this function is derived from the word "Hypoteneuse", which in=0A= * trigonmetry is the longest side of a triangle=0A= * =0A= * @param number x1 The original X coordinate=0A= * @param number y1 The original Y coordinate=0A= * @param number x2 The target X coordinate=0A= * @param number y2 The target Y coordinate=0A= */=0A= RGraph.getHypLength =3D function (x1, y1, x2, y2)=0A= {=0A= var ret =3D Math.sqrt(((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 = - y1)));=0A= =0A= return ret;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function gets the end point (X/Y coordinates) of a given = radius.=0A= * You pass it the center X/Y and the radius and this function will = return=0A= * the endpoint X/Y coordinates.=0A= * =0A= * @param number cx The center X coord=0A= * @param number cy The center Y coord=0A= * @param number r The lrngth of the radius=0A= */=0A= RGraph.getRadiusEndPoint =3D function (cx, cy, angle, radius)=0A= {=0A= var x =3D cx + (Math.cos(angle) * radius);=0A= var y =3D cy + (Math.sin(angle) * radius);=0A= =0A= return [x, y];=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This installs all of the event listeners=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.InstallEventListeners =3D function (obj)=0A= {=0A= var RG =3D RGraph;=0A= var prop =3D obj.properties;=0A= =0A= /**=0A= * Don't attempt to install event listeners for older versions of = MSIE=0A= */=0A= if (ISOLD) {=0A= //return; // entinux=0A= }=0A= =0A= /**=0A= * If this function exists, then the dynamic file has been = included.=0A= */=0A= if (RG.InstallCanvasClickListener) {=0A= RG.InstallWindowMousedownListener(obj);=0A= RG.InstallWindowMouseupListener(obj);=0A= RG.InstallCanvasMousemoveListener(obj);=0A= RG.InstallCanvasMouseupListener(obj);=0A= RG.InstallCanvasMousedownListener(obj);=0A= RG.InstallCanvasClickListener(obj);=0A= =0A= } else if ( RG.hasTooltips(obj)=0A= || prop['chart.adjustable']=0A= || prop['chart.annotatable']=0A= || prop['chart.contextmenu']=0A= || prop['chart.resizable']=0A= || prop['chart.key.interactive']=0A= || prop['chart.events.click']=0A= || prop['chart.events.mousemove']=0A= || typeof obj.onclick =3D=3D 'function'=0A= || typeof obj.onmousemove =3D=3D 'function'=0A= ) {=0A= =0A= alert('[RGRAPH] You appear to have used dynamic features but = not included the file: RGraph.common.dynamic.js');=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Loosly mimicks the PHP function print_r();=0A= */=0A= RGraph.pr =3D function (obj)=0A= {=0A= var indent =3D (arguments[2] ? arguments[2] : ' ');=0A= var str =3D '';=0A= =0A= var counter =3D typeof arguments[3] =3D=3D 'number' ? = arguments[3] : 0;=0A= =0A= if (counter >=3D 5) {=0A= return '';=0A= }=0A= =0A= switch (typeof obj) {=0A= =0A= case 'string': str +=3D obj + ' (' + (typeof obj) + ', ' = + obj.length + ')'; break;=0A= case 'number': str +=3D obj + ' (' + (typeof obj) + ')'; = break;=0A= case 'boolean': str +=3D obj + ' (' + (typeof obj) + ')'; = break;=0A= case 'function': str +=3D 'function () {}'; break;=0A= case 'undefined': str +=3D 'undefined'; break;=0A= case 'null': str +=3D 'null'; break;=0A= =0A= case 'object':=0A= // In case of null=0A= if (RGraph.is_null(obj)) {=0A= str +=3D indent + 'null\n';=0A= } else {=0A= str +=3D indent + 'Object {' + '\n'=0A= for (j in obj) {=0A= str +=3D indent + ' ' + j + ' =3D> ' + = RGraph.pr(obj[j], true, indent + ' ', counter + 1) + '\n';=0A= }=0A= str +=3D indent + '}';=0A= }=0A= break;=0A= =0A= =0A= default:=0A= str +=3D 'Unknown type: ' + typeof obj + '';=0A= break;=0A= }=0A= =0A= =0A= /**=0A= * Finished, now either return if we're in a recursed call, or = alert()=0A= * if we're not.=0A= */=0A= if (!arguments[1]) {=0A= alert(str);=0A= }=0A= =0A= return str;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Produces a dashed line=0A= * =0A= * @param object co The 2D context=0A= * @param number x1 The start X coordinate=0A= * @param number y1 The start Y coordinate=0A= * @param number x2 The end X coordinate=0A= * @param number y2 The end Y coordinate=0A= */=0A= RGraph.DashedLine =3D function(co, x1, y1, x2, y2)=0A= {=0A= /**=0A= * This is the size of the dashes=0A= */=0A= var size =3D 5;=0A= =0A= /**=0A= * The optional fifth argument can be the size of the dashes=0A= */=0A= if (typeof(arguments[5]) =3D=3D 'number') {=0A= size =3D arguments[5];=0A= }=0A= =0A= var dx =3D x2 - x1;=0A= var dy =3D y2 - y1;=0A= var num =3D Math.floor(Math.sqrt((dx * dx) + (dy * dy)) / size);=0A= =0A= var xLen =3D dx / num;=0A= var yLen =3D dy / num;=0A= =0A= var count =3D 0;=0A= =0A= do {=0A= (count % 2 =3D=3D 0 && count > 0) ? co.lineTo(x1, y1) : = co.moveTo(x1, y1);=0A= =0A= x1 +=3D xLen;=0A= y1 +=3D yLen;=0A= } while(count++ <=3D num);=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Makes an AJAX call. It calls the given callback (a function) when = ready=0A= * =0A= * @param string url The URL to retrieve=0A= * @param function callback A function that is called when the = response is ready, there's an example below=0A= * called "myCallback".=0A= */=0A= RGraph.AJAX =3D function (url, callback)=0A= {=0A= // Mozilla, Safari, ...=0A= if (window.XMLHttpRequest) {=0A= var httpRequest =3D new XMLHttpRequest();=0A= =0A= // MSIE=0A= } else if (window.ActiveXObject) {=0A= var httpRequest =3D new ActiveXObject("Microsoft.XMLHTTP");=0A= }=0A= =0A= httpRequest.onreadystatechange =3D function ()=0A= {=0A= if (this.readyState =3D=3D 4 && this.status =3D=3D 200) {=0A= this.__user_callback__ =3D callback;=0A= this.__user_callback__(this.responseText);=0A= }=0A= }=0A= =0A= httpRequest.open('GET', url, true);=0A= httpRequest.send();=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Makes an AJAX POST request. It calls the given callback (a = function) when ready=0A= * =0A= * @param string url The URL to retrieve=0A= * @param object data The POST data=0A= * @param function callback A function that is called when the = response is ready, there's an example below=0A= * called "myCallback".=0A= */=0A= RGraph.AJAX.POST =3D function (url, data, callback)=0A= {=0A= // Used when building the POST string=0A= var crumbs =3D [];=0A= =0A= // Mozilla, Safari, ...=0A= if (window.XMLHttpRequest) {=0A= var httpRequest =3D new XMLHttpRequest();=0A= =0A= // MSIE=0A= } else if (window.ActiveXObject) {=0A= var httpRequest =3D new ActiveXObject("Microsoft.XMLHTTP");=0A= }=0A= =0A= httpRequest.onreadystatechange =3D function ()=0A= {=0A= if (this.readyState =3D=3D 4 && this.status =3D=3D 200) {=0A= this.__user_callback__ =3D callback;=0A= this.__user_callback__(this.responseText);=0A= }=0A= }=0A= =0A= httpRequest.open('POST', url, true);=0A= = httpRequest.setRequestHeader("Content-type","application/x-www-form-urlen= coded");=0A= =0A= for (i in data) {=0A= if (typeof i =3D=3D 'string') {=0A= crumbs.push(i + '=3D' + encodeURIComponent(data[i]));=0A= }=0A= }=0A= =0A= httpRequest.send(crumbs.join('&'));=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Uses the above function but calls the call back passing a number = as its argument=0A= * =0A= * @param url string The URL to fetch=0A= * @param callback function Your callback function (which is passed = the number as an argument)=0A= */=0A= RGraph.AJAX.getNumber =3D function (url, callback)=0A= {=0A= RGraph.AJAX(url, function ()=0A= {=0A= var num =3D parseFloat(this.responseText);=0A= =0A= callback(num);=0A= });=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Uses the above function but calls the call back passing a string = as its argument=0A= * =0A= * @param url string The URL to fetch=0A= * @param callback function Your callback function (which is passed = the string as an argument)=0A= */=0A= RGraph.AJAX.getString =3D function (url, callback)=0A= {=0A= RGraph.AJAX(url, function ()=0A= {=0A= var str =3D String(this.responseText);=0A= =0A= callback(str);=0A= });=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Uses the above function but calls the call back passing JSON (ie a = JavaScript object ) as its argument=0A= * =0A= * @param url string The URL to fetch=0A= * @param callback function Your callback function (which is passed = the JSON object as an argument)=0A= */=0A= RGraph.AJAX.getJSON =3D function (url, callback)=0A= {=0A= RGraph.AJAX(url, function ()=0A= {=0A= =0A= var json =3D eval('(' + this.responseText + ')');=0A= =0A= callback(json);=0A= });=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Uses the above RGraph.AJAX function but calls the call back = passing an array as its argument.=0A= * Useful if you're retrieving CSV data=0A= * =0A= * @param url string The URL to fetch=0A= * @param callback function Your callback function (which is passed = the CSV/array as an argument)=0A= */=0A= RGraph.AJAX.getCSV =3D function (url, callback)=0A= {=0A= var seperator =3D arguments[2] ? arguments[2] : ',';=0A= =0A= RGraph.AJAX(url, function ()=0A= {=0A= var regexp =3D new RegExp(seperator);=0A= var arr =3D this.responseText.split(regexp);=0A= =0A= // Convert the strings to numbers=0A= for (var i=3D0,len=3Darr.length;i<len;++i) {=0A= arr[i] =3D parseFloat(arr[i]);=0A= }=0A= =0A= callback(arr);=0A= });=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Rotates the canvas=0A= * =0A= * @param object canvas The canvas to rotate=0A= * @param int x The X coordinate about which to rotate the = canvas=0A= * @param int y The Y coordinate about which to rotate the = canvas=0A= * @param int angle The angle(in RADIANS) to rotate the canvas by=0A= */=0A= RGraph.RotateCanvas =3D function (ca, x, y, angle)=0A= {=0A= var co =3D ca.getContext('2d');=0A= =0A= co.translate(x, y);=0A= co.rotate(angle);=0A= co.translate(0 - x, 0 - y); =0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Measures text by creating a DIV in the document and adding the = relevant text to it.=0A= * Then checking the .offsetWidth and .offsetHeight.=0A= * =0A= * @param string text The text to measure=0A= * @param bool bold Whether the text is bold or not=0A= * @param string font The font to use=0A= * @param size number The size of the text (in pts)=0A= * @return array A two element array of the width and height = of the text=0A= */=0A= RGraph.MeasureText =3D function (text, bold, font, size)=0A= {=0A= // Add the sizes to the cache as adding DOM elements is costly = and causes slow downs=0A= if (typeof(__rgraph_measuretext_cache__) =3D=3D 'undefined') {=0A= __rgraph_measuretext_cache__ =3D [];=0A= }=0A= =0A= var str =3D text + ':' + bold + ':' + font + ':' + size;=0A= if (typeof(__rgraph_measuretext_cache__) =3D=3D 'object' && = __rgraph_measuretext_cache__[str]) {=0A= return __rgraph_measuretext_cache__[str];=0A= }=0A= =0A= if (!__rgraph_measuretext_cache__['text-div']) {=0A= var div =3D document.createElement('DIV');=0A= div.style.position =3D 'absolute';=0A= div.style.top =3D '-100px';=0A= div.style.left =3D '-100px';=0A= document.body.appendChild(div);=0A= =0A= // Now store the newly created DIV=0A= __rgraph_measuretext_cache__['text-div'] =3D div;=0A= =0A= } else if (__rgraph_measuretext_cache__['text-div']) {=0A= var div =3D __rgraph_measuretext_cache__['text-div'];=0A= }=0A= =0A= div.innerHTML =3D text.replace(/\r\n/g, '<br />');=0A= div.style.fontFamily =3D font;=0A= div.style.fontWeight =3D bold ? 'bold' : 'normal';=0A= div.style.fontSize =3D size + 'pt';=0A= =0A= var size =3D [div.offsetWidth, div.offsetHeight];=0A= =0A= //document.body.removeChild(div);=0A= __rgraph_measuretext_cache__[str] =3D size;=0A= =0A= return size;=0A= }=0A= =0A= =0A= =0A= =0A= /* New text function. Accepts two arguments:=0A= * o obj - The chart object=0A= * o opt - An object/hash/map of properties. This can consist of:=0A= * x The X coordinate (REQUIRED)=0A= * y The Y coordinate (REQUIRED)=0A= * text The text to show (REQUIRED)=0A= * font The font to use=0A= * size The size of the text (in pt)=0A= * bold Whether the text shouldd be bold or not=0A= * marker Whether to show a marker that indicates = the X/Y coordinates=0A= * valign The vertical alignment=0A= * halign The horizontal alignment=0A= * bounding Whether to draw a bounding box for the = text=0A= * boundingStroke The strokeStyle of the bounding box=0A= * boundingFill The fillStyle of the bounding box=0A= */=0A= RGraph.Text2 =3D function (obj, opt)=0A= {=0A= /**=0A= * An RGraph object can be given, or a string or the 2D rendering = context=0A= * The coords are placed on the obj.coordsText variable ONLY if = it's an RGraph object. The function=0A= * still returns the cooords though in all cases.=0A= */=0A= if (obj && obj.isRGraph) {=0A= var co =3D obj.context;=0A= var ca =3D obj.canvas;=0A= } else if (typeof obj =3D=3D 'string') {=0A= var ca =3D document.getElementById(obj);=0A= var co =3D ca.getContext('2d');=0A= } else if (typeof obj.getContext =3D=3D 'function') {=0A= var ca =3D obj;=0A= var co =3D ca.getContext('2d');=0A= } else if (obj.toString().indexOf('CanvasRenderingContext2D') = !=3D -1) {=0A= var co =3D obj;=0A= var ca =3D obj.context;=0A= }=0A= =0A= var x =3D opt.x;=0A= var y =3D opt.y;=0A= var originalX =3D x;=0A= var originalY =3D y;=0A= var text =3D opt.text;=0A= var text_multiline =3D text.split(/\r?\n/g);=0A= var numlines =3D text_multiline.length;=0A= var font =3D opt.font ? opt.font : 'Arial';=0A= var size =3D opt.size ? opt.size : 10;=0A= var size_pixels =3D size * 1.5;=0A= var bold =3D opt.bold;=0A= var halign =3D opt.halign ? opt.halign : 'left';=0A= var valign =3D opt.valign ? opt.valign : 'bottom';=0A= var tag =3D typeof opt.tag =3D=3D 'string' && = opt.tag.length > 0 ? opt.tag : '';=0A= var marker =3D opt.marker;=0A= var angle =3D opt.angle || 0;=0A= =0A= /**=0A= * Changed the name of boundingFill/boundingStroke - this allows = you to still use those names=0A= */=0A= if (typeof opt.boundingFill =3D=3D 'string') = opt['bounding.fill'] =3D opt.boundingFill;=0A= if (typeof opt.boundingStroke =3D=3D 'string') = opt['bounding.stroke'] =3D opt.boundingStroke;=0A= =0A= var bounding =3D opt.bounding;=0A= var bounding_stroke =3D opt['bounding.stroke'] ? = opt['bounding.stroke'] : 'black';=0A= var bounding_fill =3D opt['bounding.fill'] ? = opt['bounding.fill'] : 'rgba(255,255,255,0.7)';=0A= var bounding_shadow =3D opt['bounding.shadow'];=0A= var bounding_shadow_color =3D opt['bounding.shadow.color'] || = '#ccc';=0A= var bounding_shadow_blur =3D opt['bounding.shadow.blur'] || 3;=0A= var bounding_shadow_offsetx =3D opt['bounding.shadow.offsetx'] = || 3;=0A= var bounding_shadow_offsety =3D opt['bounding.shadow.offsety'] = || 3;=0A= var bounding_linewidth =3D opt['bounding.linewidth'] || 1;=0A= =0A= =0A= =0A= /**=0A= * Initialize the return value to an empty object=0A= */=0A= var ret =3D {};=0A= =0A= =0A= =0A= /**=0A= * The text arg must be a string or a number=0A= */=0A= if (typeof text =3D=3D 'number') {=0A= text =3D String(text);=0A= }=0A= =0A= if (typeof text !=3D 'string') {=0A= alert('[RGRAPH TEXT] The text given must a string or a = number');=0A= return;=0A= }=0A= =0A= =0A= =0A= /**=0A= * This facilitates vertical text=0A= */=0A= if (angle !=3D 0) {=0A= co.save();=0A= co.translate(x, y);=0A= co.rotate((Math.PI / 180) * angle)=0A= x =3D 0;=0A= y =3D 0;=0A= }=0A= =0A= =0A= =0A= /**=0A= * Set the font=0A= */=0A= co.font =3D (opt.bold ? 'bold ' : '') + size + 'pt ' + font;=0A= =0A= =0A= =0A= /**=0A= * Measure the width/height. This must be done AFTER the font has = been set=0A= */=0A= var width=3D0;=0A= for (var i=3D0; i<numlines; ++i) {=0A= width =3D Math.max(width, = co.measureText(text_multiline[i]).width);=0A= }=0A= var height =3D size_pixels * numlines;=0A= =0A= =0A= =0A= =0A= /**=0A= * Accommodate old MSIE 7/8=0A= */=0A= //if (document.all && ISOLD) {=0A= //y +=3D 2;=0A= //}=0A= =0A= =0A= =0A= /**=0A= * If marker is specified draw a marker at the X/Y coordinates=0A= */=0A= if (opt.marker) {=0A= var marker_size =3D 10;=0A= var strokestyle =3D co.strokeStyle;=0A= co.beginPath();=0A= co.strokeStyle =3D 'red';=0A= co.moveTo(x, y - marker_size);=0A= co.lineTo(x, y + marker_size);=0A= co.moveTo(x - marker_size, y);=0A= co.lineTo(x + marker_size, y);=0A= co.stroke();=0A= co.strokeStyle =3D strokestyle;=0A= }=0A= =0A= =0A= =0A= /**=0A= * Set the horizontal alignment=0A= */=0A= if (halign =3D=3D 'center') {=0A= co.textAlign =3D 'center';=0A= var boundingX =3D x - 2 - (width / 2);=0A= } else if (halign =3D=3D 'right') {=0A= co.textAlign =3D 'right';=0A= var boundingX =3D x - 2 - width;=0A= } else {=0A= co.textAlign =3D 'left';=0A= var boundingX =3D x - 2;=0A= }=0A= =0A= =0A= /**=0A= * Set the vertical alignment=0A= */=0A= if (valign =3D=3D 'center') {=0A= =0A= co.textBaseline =3D 'middle';=0A= // Move the text slightly=0A= y -=3D 1;=0A= =0A= y -=3D ((numlines - 1) / 2) * size_pixels;=0A= var boundingY =3D y - (size_pixels / 2) - 2;=0A= =0A= } else if (valign =3D=3D 'top') {=0A= co.textBaseline =3D 'top';=0A= =0A= var boundingY =3D y - 2;=0A= =0A= } else {=0A= =0A= co.textBaseline =3D 'bottom';=0A= =0A= // Move the Y coord if multiline text=0A= if (numlines > 1) {=0A= y -=3D ((numlines - 1) * size_pixels);=0A= }=0A= =0A= var boundingY =3D y - size_pixels - 2;=0A= }=0A= =0A= var boundingW =3D width + 4;=0A= var boundingH =3D height + 4;=0A= =0A= =0A= =0A= /**=0A= * Draw a bounding box if required=0A= */=0A= if (bounding) {=0A= =0A= var pre_bounding_linewidth =3D co.lineWidth;=0A= var pre_bounding_strokestyle =3D co.strokeStyle;=0A= var pre_bounding_fillstyle =3D co.fillStyle;=0A= var pre_bounding_shadowcolor =3D co.shadowColor;=0A= var pre_bounding_shadowblur =3D co.shadowBlur;=0A= var pre_bounding_shadowoffsetx =3D co.shadowOffsetX;=0A= var pre_bounding_shadowoffsety =3D co.shadowOffsetY;=0A= =0A= co.lineWidth =3D bounding_linewidth;=0A= co.strokeStyle =3D bounding_stroke;=0A= co.fillStyle =3D bounding_fill;=0A= =0A= if (bounding_shadow) {=0A= co.shadowColor =3D bounding_shadow_color;=0A= co.shadowBlur =3D bounding_shadow_blur;=0A= co.shadowOffsetX =3D bounding_shadow_offsetx;=0A= co.shadowOffsetY =3D bounding_shadow_offsety;=0A= }=0A= =0A= //obj.context.strokeRect(boundingX, boundingY, width + 6, = (size_pixels * numlines) + 4);=0A= //obj.context.fillRect(boundingX, boundingY, width + 6, = (size_pixels * numlines) + 4);=0A= co.strokeRect(boundingX, boundingY, boundingW, boundingH);=0A= co.fillRect(boundingX, boundingY, boundingW, boundingH);=0A= =0A= // Reset the linewidth,colors and shadow to it's original = setting=0A= co.lineWidth =3D pre_bounding_linewidth;=0A= co.strokeStyle =3D pre_bounding_strokestyle;=0A= co.fillStyle =3D pre_bounding_fillstyle;=0A= co.shadowColor =3D pre_bounding_shadowcolor=0A= co.shadowBlur =3D pre_bounding_shadowblur=0A= co.shadowOffsetX =3D pre_bounding_shadowoffsetx=0A= co.shadowOffsetY =3D pre_bounding_shadowoffsety=0A= }=0A= =0A= =0A= =0A= /**=0A= * Draw the text=0A= */=0A= if (numlines > 1) {=0A= for (var i=3D0; i<numlines; ++i) {=0A= co.fillText(text_multiline[i], x, y + (size_pixels * i));=0A= }=0A= } else {=0A= co.fillText(text, x, y);=0A= }=0A= =0A= =0A= =0A= /**=0A= * If the text is at 90 degrees restore() the canvas - getting = rid of the rotation=0A= * and the translate that we did=0A= */=0A= if (angle !=3D 0) {=0A= if (angle =3D=3D 90) {=0A= if (halign =3D=3D 'left') {=0A= if (valign =3D=3D 'bottom') {boundingX =3D originalX = - 2; boundingY =3D originalY - 2; boundingW =3D height + 4; boundingH = =3D width + 4;}=0A= if (valign =3D=3D 'center') {boundingX =3D originalX = - (height / 2) - 2; boundingY =3D originalY - 2; boundingW =3D height + = 4; boundingH =3D width + 4;}=0A= if (valign =3D=3D 'top') {boundingX =3D originalX = - height - 2; boundingY =3D originalY - 2; boundingW =3D height + 4; = boundingH =3D width + 4;}=0A= =0A= } else if (halign =3D=3D 'center') {=0A= if (valign =3D=3D 'bottom') {boundingX =3D originalX = - 2; boundingY =3D originalY - (width / 2) - 2; boundingW =3D height + = 4; boundingH =3D width + 4;}=0A= if (valign =3D=3D 'center') {boundingX =3D originalX = - (height / 2) - 2; boundingY =3D originalY - (width / 2) - 2; = boundingW =3D height + 4; boundingH =3D width + 4;}=0A= if (valign =3D=3D 'top') {boundingX =3D originalX = - height - 2; boundingY =3D originalY - (width / 2) - 2; boundingW =3D = height + 4; boundingH =3D width + 4;}=0A= =0A= } else if (halign =3D=3D 'right') {=0A= if (valign =3D=3D 'bottom') {boundingX =3D originalX = - 2; boundingY =3D originalY - width - 2; boundingW =3D height + 4; = boundingH =3D width + 4;}=0A= if (valign =3D=3D 'center') {boundingX =3D originalX = - (height / 2) - 2; boundingY =3D originalY - width - 2; boundingW =3D = height + 4; boundingH =3D width + 4;}=0A= if (valign =3D=3D 'top') {boundingX =3D originalX = - height - 2; boundingY =3D originalY - width - 2; boundingW =3D height = + 4; boundingH =3D width + 4;}=0A= }=0A= =0A= } else if (angle =3D=3D 180) {=0A= =0A= if (halign =3D=3D 'left') {=0A= if (valign =3D=3D 'bottom') {boundingX =3D originalX = - width - 2; boundingY =3D originalY - 2; boundingW =3D width + 4; = boundingH =3D height + 4;}=0A= if (valign =3D=3D 'center') {boundingX =3D originalX = - width - 2; boundingY =3D originalY - (height / 2) - 2; boundingW =3D = width + 4; boundingH =3D height + 4;}=0A= if (valign =3D=3D 'top') {boundingX =3D originalX = - width - 2; boundingY =3D originalY - height - 2; boundingW =3D width + = 4; boundingH =3D height + 4;}=0A= =0A= } else if (halign =3D=3D 'center') {=0A= if (valign =3D=3D 'bottom') {boundingX =3D originalX = - (width / 2) - 2; boundingY =3D originalY - 2; boundingW =3D width + 4; = boundingH =3D height + 4;}=0A= if (valign =3D=3D 'center') {boundingX =3D originalX = - (width / 2) - 2; boundingY =3D originalY - (height / 2) - 2; boundingW = =3D width + 4; boundingH =3D height + 4;}=0A= if (valign =3D=3D 'top') {boundingX =3D originalX = - (width / 2) - 2; boundingY =3D originalY - height - 2; boundingW =3D = width + 4; boundingH =3D height + 4;}=0A= =0A= } else if (halign =3D=3D 'right') {=0A= if (valign =3D=3D 'bottom') {boundingX =3D originalX = - 2; boundingY =3D originalY - 2; boundingW =3D width + 4; boundingH =3D = height + 4;}=0A= if (valign =3D=3D 'center') {boundingX =3D originalX = - 2; boundingY =3D originalY - (height / 2) - 2; boundingW =3D width + = 4; boundingH =3D height + 4;}=0A= if (valign =3D=3D 'top') {boundingX =3D originalX = - 2; boundingY =3D originalY - height - 2; boundingW =3D width + 4; = boundingH =3D height + 4;}=0A= }=0A= =0A= } else if (angle =3D=3D 270) {=0A= =0A= if (halign =3D=3D 'left') {=0A= if (valign =3D=3D 'bottom') {boundingX =3D originalX = - height - 2; boundingY =3D originalY - width - 2; boundingW =3D height = + 4; boundingH =3D width + 4;}=0A= if (valign =3D=3D 'center') {boundingX =3D originalX = - (height / 2) - 4; boundingY =3D originalY - width - 2; boundingW =3D = height + 4; boundingH =3D width + 4;}=0A= if (valign =3D=3D 'top') {boundingX =3D originalX = - 2; boundingY =3D originalY - width - 2; boundingW =3D height + 4; = boundingH =3D width + 4;}=0A= =0A= } else if (halign =3D=3D 'center') {=0A= if (valign =3D=3D 'bottom') {boundingX =3D originalX = - height - 2; boundingY =3D originalY - (width/2) - 2; boundingW =3D = height + 4; boundingH =3D width + 4;}=0A= if (valign =3D=3D 'center') {boundingX =3D originalX = - (height/2) - 4; boundingY =3D originalY - (width/2) - 2; boundingW =3D = height + 4; boundingH =3D width + 4;}=0A= if (valign =3D=3D 'top') {boundingX =3D originalX = - 2; boundingY =3D originalY - (width/2) - 2; boundingW =3D height + 4; = boundingH =3D width + 4;}=0A= =0A= } else if (halign =3D=3D 'right') {=0A= if (valign =3D=3D 'bottom') {boundingX =3D originalX = - height - 2; boundingY =3D originalY - 2; boundingW =3D height + 4; = boundingH =3D width + 4;}=0A= if (valign =3D=3D 'center') {boundingX =3D originalX = - (height/2) - 2; boundingY =3D originalY - 2; boundingW =3D height + 4; = boundingH =3D width + 4;}=0A= if (valign =3D=3D 'top') {boundingX =3D originalX = - 2; boundingY =3D originalY - 2; boundingW =3D height + 4; boundingH = =3D width + 4;}=0A= }=0A= }=0A= =0A= co.restore();=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Reset the text alignment so that text rendered=0A= */=0A= co.textBaseline =3D 'alphabetic';=0A= co.textAlign =3D 'left';=0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * Fill the ret variable with details of the text=0A= */=0A= ret.x =3D boundingX;=0A= ret.y =3D boundingY;=0A= ret.width =3D boundingW;=0A= ret.height =3D boundingH=0A= ret.object =3D obj;=0A= ret.text =3D text;=0A= ret.tag =3D tag;=0A= =0A= =0A= =0A= /**=0A= * Save and then return the details of the text (but oly=0A= * if it's an RGraph object that was given)=0A= */=0A= if (obj && obj.isRGraph && obj.coordsText) {=0A= obj.coordsText.push(ret);=0A= }=0A= =0A= return ret;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Takes a sequential index abd returns the group/index variation of = it. Eg if you have a=0A= * sequential index from a grouped bar chart this function can be = used to convert that into=0A= * an appropriate group/index combination=0A= * =0A= * @param nindex number The sequential index=0A= * @param data array The original data (which is grouped)=0A= * @return The group/index information=0A= */=0A= RGraph.sequentialIndexToGrouped =3D function (index, data)=0A= {=0A= var group =3D 0;=0A= var grouped_index =3D 0;=0A= =0A= while (--index >=3D 0) {=0A= =0A= if (RGraph.is_null(data[group])) {=0A= group++;=0A= grouped_index =3D 0;=0A= continue;=0A= }=0A= =0A= // Allow for numbers as well as arrays in the dataset=0A= if (typeof data[group] =3D=3D 'number') {=0A= group++=0A= grouped_index =3D 0;=0A= continue;=0A= }=0A= =0A= =0A= grouped_index++;=0A= =0A= if (grouped_index >=3D data[group].length) {=0A= group++;=0A= grouped_index =3D 0;=0A= }=0A= }=0A= =0A= return [group, grouped_index];=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * A sihm for the forEach array function so that it's available for = older browsers that=0A= * don't have it=0A= */=0A= if ( !Array.prototype.forEach ) {=0A= Array.prototype.forEach =3D function(fn, scope) {=0A= for(var i =3D 0, len =3D this.length; i < len; ++i) {=0A= fn.call(scope, this[i], i, this);=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Checks whether strings or numbers are empty or not. It also=0A= * handles null or variables set to undefined. If a variable really=0A= * is undefined - ie it hasn't been declared at all - you need to use=0A= * "typeof variable" and check the return value - which will be = undefined.=0A= * =0A= * @param mixed value The variable to check=0A= */=0A= function empty (value)=0A= {=0A= if (!value || value.length <=3D 0) {=0A= return true;=0A= }=0A= =0A= return false;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function highlights a rectangle=0A= * =0A= * @param object obj The chart object=0A= * @param number shape The coordinates of the rect to highlight=0A= */=0A= RGraph.Highlight.Rect =3D function (obj, shape)=0A= { =0A= var ca =3D obj.canvas;=0A= var co =3D obj.context;=0A= var prop =3D obj.properties;=0A= =0A= if (prop['chart.tooltips.highlight']) {=0A= =0A= =0A= // Safari seems to need this=0A= co.lineWidth =3D 1;=0A= =0A= /**=0A= * Draw a rectangle on the canvas to highlight the = appropriate area=0A= */=0A= co.beginPath();=0A= =0A= co.strokeStyle =3D prop['chart.highlight.stroke'];=0A= co.fillStyle =3D prop['chart.highlight.fill'];=0A= =0A= = co.strokeRect(shape['x'],shape['y'],shape['width'],shape['height']);=0A= = co.fillRect(shape['x'],shape['y'],shape['width'],shape['height']);=0A= co.stroke;=0A= co.fill();=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function highlights a point=0A= * =0A= * @param object obj The chart object=0A= * @param number shape The coordinates of the rect to highlight=0A= */=0A= RGraph.Highlight.Point =3D function (obj, shape)=0A= {=0A= var prop =3D obj.properties;=0A= var ca =3D obj.canvas;=0A= var co =3D obj.context;=0A= =0A= if (prop['chart.tooltips.highlight']) {=0A= =0A= /**=0A= * Draw a rectangle on the canvas to highlight the = appropriate area=0A= */=0A= co.beginPath();=0A= co.strokeStyle =3D prop['chart.highlight.stroke'];=0A= co.fillStyle =3D prop['chart.highlight.fill'];=0A= var radius =3D prop['chart.highlight.point.radius'] || = 2;=0A= co.arc(shape['x'],shape['y'],radius, 0, TWOPI, 0);=0A= co.stroke();=0A= co.fill();=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= // Some other functions. Because they're rarely changed - they're hand = minified=0A= RGraph.LinearGradient=3Dfunction(obj,x1,y1,x2,y2,color1,color2){var = gradient=3Dobj.context.createLinearGradient(x1,y1,x2,y2);var = numColors=3Darguments.length-5;for (var = i=3D5;i<arguments.length;++i){var color=3Darguments[i];var = stop=3D(i-5)/(numColors-1);gradient.addColorStop(stop,color);}return = gradient;}=0A= RGraph.RadialGradient=3Dfunction(obj,x1,y1,r1,x2,y2,r2,color1,color2){var= gradient=3Dobj.context.createRadialGradient(x1,y1,r1,x2,y2,r2);var = numColors=3Darguments.length-7;for(var i=3D7;i<arguments.length; = ++i){var color=3Darguments[i];var = stop=3D(i-7)/(numColors-1);gradient.addColorStop(stop,color);}return = gradient;}=0A= RGraph.array_shift=3Dfunction(arr){var ret=3D[];for(var = i=3D1;i<arr.length;++i){ret.push(arr[i]);}return ret;}=0A= RGraph.AddEventListener=3Dfunction(id,e,func){var = type=3Darguments[3]?arguments[3]:'unknown';RGraph.Registry.Get('chart.eve= nt.handlers').push([id,e,func,type]);}=0A= RGraph.ClearEventListeners=3Dfunction(id){if(id&&id=3D=3D'window'){window= .removeEventListener('mousedown',window.__rgraph_mousedown_event_listener= _installed__,false);window.removeEventListener('mouseup',window.__rgraph_= mouseup_event_listener_installed__,false);}else{var canvas =3D = document.getElementById(id);canvas.removeEventListener('mouseup',canvas._= _rgraph_mouseup_event_listener_installed__,false);canvas.removeEventListe= ner('mousemove',canvas.__rgraph_mousemove_event_listener_installed__,fals= e);canvas.removeEventListener('mousedown',canvas.__rgraph_mousedown_event= _listener_installed__,false);canvas.removeEventListener('click',canvas.__= rgraph_click_event_listener_installed__,false);}}=0A= RGraph.HidePalette=3Dfunction(){var = div=3DRGraph.Registry.Get('palette');if(typeof(div)=3D=3D'object'&&div){d= iv.style.visibility=3D'hidden';div.style.display=3D'none';RGraph.Registry= .Set('palette',null);}}=0A= RGraph.random=3Dfunction(min,max){var = dp=3Darguments[2]?arguments[2]:0;var r=3DMath.random();return = Number((((max - min) * r) + min).toFixed(dp));}=0A= RGraph.random.array=3Dfunction(num,min,max){var arr =3D [];for(var = i=3D0;i<num;i++)arr.push(RGraph.random(min,max));return arr;}=0A= RGraph.NoShadow=3Dfunction(obj){obj.context.shadowColor=3D'rgba(0,0,0,0)'= ;obj.context.shadowBlur=3D0;obj.context.shadowOffsetX=3D0;obj.context.sha= dowOffsetY=3D0;}=0A= RGraph.SetShadow=3Dfunction(obj,color,offsetx,offsety,blur){obj.context.s= hadowColor=3Dcolor;obj.context.shadowOffsetX=3Doffsetx;obj.context.shadow= OffsetY=3Doffsety;obj.context.shadowBlur=3Dblur;}=0A= RGraph.array_reverse=3Dfunction(arr){var newarr=3D[];for(var = i=3Darr.length-1;i>=3D0;i--){newarr.push(arr[i]);}return newarr;}=0A= RGraph.Registry.Set=3Dfunction(name,value){RGraph.Registry.store[name]=3D= value;return value;}=0A= RGraph.Registry.Get=3Dfunction(name){return RGraph.Registry.store[name];}=0A= RGraph.degrees2Radians=3Dfunction(degrees){return degrees*(PI/180);}=0A= RGraph.log=3D(function(n,base){var log=3DMath.log;return = function(n,base){return log(n)/(base?log(base):1);};})();=0A= RGraph.is_array=3Dfunction(obj){return = obj!=3Dnull&&obj.constructor.toString().indexOf('Array')!=3D-1;}=0A= RGraph.trim=3Dfunction(str){return RGraph.ltrim(RGraph.rtrim(str));}=0A= RGraph.ltrim=3Dfunction(str){return str.replace(/^(\s|\0)+/, '');}=0A= RGraph.rtrim=3Dfunction(str){return str.replace(/(\s|\0)+$/, '');}=0A= RGraph.GetHeight=3Dfunction(obj){return obj.canvas.height;}=0A= RGraph.GetWidth=3Dfunction(obj){return obj.canvas.width;}=0A= RGraph.is_null=3Dfunction(arg){if(arg=3D=3Dnull||(typeof(arg))=3D=3D'obje= ct'&&!arg){return true;}return false;}=0A= RGraph.Timer=3Dfunction(label){if(typeof(RGraph.TIMER_LAST_CHECKPOINT)=3D= =3D'undefined'){RGraph.TIMER_LAST_CHECKPOINT=3DDate.now();}var = now=3DDate.now();console.log(label+': = '+(now-RGraph.TIMER_LAST_CHECKPOINT).toString());RGraph.TIMER_LAST_CHECKP= OINT=3Dnow;}=0A= RGraph.Async=3Dfunction(func){return = setTimeout(func,arguments[1]?arguments[1]:1);}=0A= RGraph.isIE=3Dfunction(){return = navigator.userAgent.indexOf('MSIE')>0;};ISIE=3DRGraph.isIE();=0A= RGraph.isIE6=3Dfunction(){return navigator.userAgent.indexOf('MSIE = 6')>0;};ISIE6=3DRGraph.isIE6();=0A= RGraph.isIE7=3Dfunction(){return navigator.userAgent.indexOf('MSIE = 7')>0;};ISIE7=3DRGraph.isIE7();=0A= RGraph.isIE8=3Dfunction(){return navigator.userAgent.indexOf('MSIE = 8')>0;};ISIE8=3DRGraph.isIE8();=0A= RGraph.isIE9=3Dfunction(){return navigator.userAgent.indexOf('MSIE = 9')>0;};ISIE9=3DRGraph.isIE9();=0A= RGraph.isIE10=3Dfunction(){return navigator.userAgent.indexOf('MSIE = 10')>0;};ISIE10=3DRGraph.isIE10();=0A= RGraph.isIE9up=3Dfunction(){navigator.userAgent.match(/MSIE = (\d+)/);return Number(RegExp.$1)>=3D9;};ISIE9UP=3DRGraph.isIE9up();=0A= RGraph.isIE10up=3Dfunction(){navigator.userAgent.match(/MSIE = (\d+)/);return Number(RegExp.$1)>=3D10;};ISIE10UP=3DRGraph.isIE10up();=0A= RGraph.isOld=3Dfunction(){return = ISIE6||ISIE7||ISIE8;};ISOLD=3DRGraph.isOld();=0A= RGraph.Reset=3Dfunction(canvas){canvas.width=3Dcanvas.width;RGraph.Object= Registry.Clear(canvas);canvas.__rgraph_aa_translated__=3Dfalse;}=0A= function pd(variable){RGraph.pr(variable);}=0A= function p(variable){RGraph.pr(arguments[0],arguments[1],arguments[3]);}=0A= function a(variable){alert(variable);}=0A= function cl(variable){return console.log(variable);}=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries/RGraph.common.effects.js /**=0A= * = o------------------------------------------------------------------------= ------o=0A= * | This file is part of the RGraph package - you can learn more at: = |=0A= * | = |=0A= * | http://www.rgraph.net = |=0A= * | = |=0A= * | This package is licensed under the RGraph license. For all kinds = of business |=0A= * | purposes there is a small one-time licensing fee to pay and for = non |=0A= * | commercial purposes it is free to use. You can read the full = license here: |=0A= * | = |=0A= * | http://www.rgraph.net/license = |=0A= * = o------------------------------------------------------------------------= ------o=0A= */=0A= =0A= /**=0A= * This is a library of a few functions that make it easier to do=0A= * effects like fade-ins or eaxpansion.=0A= */=0A= =0A= /**=0A= * Initialise the various objects=0A= */=0A= if (typeof(RGraph) =3D=3D 'undefined') RGraph =3D = {isRGraph:true,type:'common'};=0A= =0A= RGraph.Effects =3D {};=0A= RGraph.Effects.Fade =3D {}; RGraph.Effects.jQuery = =3D {}=0A= RGraph.Effects.jQuery.HBlinds =3D {}; = RGraph.Effects.jQuery.VBlinds =3D {}=0A= RGraph.Effects.jQuery.Slide =3D {}; RGraph.Effects.Pie = =3D {}=0A= RGraph.Effects.Bar =3D {}; RGraph.Effects.Line = =3D {}=0A= RGraph.Effects.Line.jQuery =3D {}; RGraph.Effects.Fuel = =3D {}=0A= RGraph.Effects.Rose =3D {}; RGraph.Effects.Odo = =3D {}=0A= RGraph.Effects.Gauge =3D {}; RGraph.Effects.Meter = =3D {}=0A= RGraph.Effects.HBar =3D {}; RGraph.Effects.HProgress = =3D {}=0A= RGraph.Effects.VProgress =3D {}; RGraph.Effects.Radar = =3D {}=0A= RGraph.Effects.Waterfall =3D {}; RGraph.Effects.Gantt = =3D {}=0A= RGraph.Effects.Thermometer =3D {}; RGraph.Effects.Scatter = =3D {}=0A= RGraph.Effects.Scatter.jQuery =3D {}; RGraph.Effects.CornerGauge = =3D {}=0A= RGraph.Effects.jQuery.HScissors =3D {}; = RGraph.Effects.jQuery.VScissors =3D {}=0A= =0A= =0A= =0A= /**=0A= * Fadein=0A= * =0A= * This function simply uses the CSS opacity property - initially set = to zero and=0A= * increasing to 1 over the period of 0.5 second=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.Effects.Fade.In =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var duration =3D (arguments[1] && arguments[1].duration ? = arguments[1].duration : 250);=0A= var frames =3D (arguments[1] && arguments[1].frames ? = arguments[1].frames : 5);=0A= =0A= // Initially the opacity should be zero=0A= canvas.style.opacity =3D 0;=0A= =0A= // Draw the chart=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= // Now fade the chart in=0A= for (var i=3D1; i<=3Dframes; ++i) {=0A= setTimeout('document.getElementById("' + canvas.id + = '").style.opacity =3D ' + (i * (1 / frames)), i * (duration / frames));=0A= }=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], duration);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Fadeout=0A= * =0A= * This function is a reversal of the above function - fading out = instead of in=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.Effects.Fade.Out =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var duration =3D (arguments[1] && arguments[1].duration ? = arguments[1].duration : 250);=0A= var frames =3D (arguments[1] && arguments[1].frames ? = arguments[1].frames : 5);=0A= =0A= // Draw the chart=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= // Now fade the chart in=0A= for (var i=3Dframes; i>=3D0; --i) {=0A= setTimeout('document.getElementById("' + canvas.id + = '").style.opacity =3D ' + (i * (1 / frames)), (frames - i) * (duration / = frames));=0A= }=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], duration);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Expand=0A= * =0A= * This effect is like the tooltip effect of the same name. I starts = in the middle=0A= * and expands out to full size.=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.Effects.jQuery.Expand =3D function (obj)=0A= {=0A= // Check for jQuery=0A= if (typeof(jQuery) =3D=3D 'undefined') {=0A= alert('[ERROR] Could not find jQuery object - have you = included the jQuery file?');=0A= }=0A= =0A= var bounce =3D (!arguments[1] || (arguments[1] && = (arguments[1].bounce || typeof(arguments[1].bounce) =3D=3D = 'undefined'))) ? true : false;=0A= =0A= var canvas =3D obj.canvas;=0A= =0A= if (!canvas.__rgraph_div_placeholder__) {=0A= var div =3D RGraph.Effects.ReplaceCanvasWithDIV(canvas);=0A= canvas.__rgraph_div_placeholder__ =3D div;=0A= } else {=0A= div =3D canvas.__rgraph_div_placeholder__;=0A= }=0A= =0A= div.style.position =3D 'relative';=0A= canvas.style.position =3D 'absolute';=0A= canvas.style.top =3D (canvas.height / 2) + 'px';=0A= canvas.style.left =3D (canvas.width / 2) + 'px';=0A= canvas.style.width =3D 0;=0A= canvas.style.height =3D 0;=0A= =0A= =0A= canvas.style.opacity =3D 0;=0A= =0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (bounce) {=0A= jQuery('#' + obj.id).animate({=0A= opacity: 1,=0A= width: '120%',=0A= height: '120%',=0A= left: (canvas.width * -0.1) + 'px',=0A= top: (canvas.height * -0.1) + 'px'=0A= }, 500, function (){=0A= jQuery('#' + obj.id).animate({width: '90%', = height: '90%', top: (canvas.height * 0.05) + 'px', left: (canvas.width * = 0.05) + 'px'}, 250, function ()=0A= {=0A= jQuery('#' + obj.id).animate({width: '101%', = height: '101%', top: (canvas.height * -0.005) + 'px', left: = (canvas.width * -0.005) + 'px'}, 250, function ()=0A= {=0A= jQuery('#' + obj.id).animate({width: = '100%', height: '100%', top: 0, left: 0}, 250);=0A= });=0A= });=0A= });=0A= } else {=0A= jQuery('#' + obj.id).animate({=0A= opacity: 1,=0A= width: '100%',=0A= height: '100%',=0A= left: 0,=0A= top: 0=0A= }, 1000)=0A= }=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], 1000);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Contract=0A= * =0A= * This effect is a good one to use with the Expand effect to make a = transition=0A= * =0A= * @param object obj The graph object=0A= * @param null Not used=0A= * @param Optional callback to run when the effect iss = done.=0A= */=0A= RGraph.Effects.jQuery.Contract =3D function (obj)=0A= {=0A= // Check for jQuery=0A= if (typeof(jQuery) =3D=3D 'undefined') {=0A= alert('[ERROR] Could not find jQuery object - have you = included the jQuery file?');=0A= }=0A= =0A= var canvas =3D obj.canvas;=0A= =0A= if (!canvas.__rgraph_div_placeholder__) {=0A= var div =3D RGraph.Effects.ReplaceCanvasWithDIV(canvas);=0A= canvas.__rgraph_div_placeholder__ =3D div;=0A= } else {=0A= div =3D canvas.__rgraph_div_placeholder__;=0A= }=0A= =0A= div.style.position =3D 'relative';=0A= canvas.style.position =3D 'absolute';=0A= canvas.style.top =3D 0;=0A= canvas.style.left =3D 0;=0A= =0A= =0A= jQuery('#' + obj.id).animate({=0A= width: (canvas.width * 1.2) + 'px',=0A= height: (canvas.height * 1.2) + 'px',=0A= left: (canvas.width * -0.1) + 'px',=0A= top: (canvas.height * -0.1) + 'px'=0A= }, 250, function ()=0A= {=0A= jQuery('#' + obj.id).animate({=0A= opacity: 0,=0A= width: 0,=0A= height: 0,=0A= left: (canvas.width * 0.5) + 'px',=0A= top: (canvas.height * 0.5) + 'px'=0A= }, 750)=0A= });=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], 1000);=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * A function used to replace the canvas witha Div, which inturn = holds the canvas. This way the page=0A= * layout doesn't shift in the canvas is resized.=0A= * =0A= * @param object canvas The canvas to replace.=0A= */=0A= RGraph.Effects.ReplaceCanvasWithDIV =3D function (canvas)=0A= {=0A= if (!canvas.replacementDIV) {=0A= // Create the place holder DIV=0A= var div =3D document.createElement('DIV');=0A= div.style.width =3D canvas.width + 'px';=0A= div.style.height =3D canvas.height + 'px';=0A= div.style.cssFloat =3D canvas.style.cssFloat;=0A= div.style.left =3D canvas.style.left;=0A= div.style.top =3D canvas.style.top;=0A= //div.style.position =3D canvas.style.position;=0A= div.style.display =3D 'inline-block';=0A= canvas.parentNode.insertBefore(div, canvas);=0A= =0A= =0A= // Remove the canvas from the document=0A= canvas.parentNode.removeChild(canvas);=0A= =0A= // Add it back in as a child of the place holder=0A= div.appendChild(canvas);=0A= =0A= // Reset the positioning information on the canvas=0A= canvas.style.position =3D 'relative';=0A= canvas.style.left =3D (div.offsetWidth / 2) + 'px';=0A= canvas.style.top =3D (div.offsetHeight / 2) + 'px';=0A= canvas.style.cssFloat =3D '';=0A= =0A= // Add a reference to the canvas to the DIV so that repeated = plays of the anumation=0A= // don't keep replacing the canvas with a new DIV=0A= canvas.replacementDIV =3D div;=0A= =0A= } else {=0A= var div =3D canvas.replacementDIV;=0A= }=0A= =0A= return div;=0A= }=0A= =0A= =0A= /**=0A= * Snap=0A= * =0A= * Similar to the tooltip effect of the same name, this moves the = canvas in from the top left corner=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.Effects.jQuery.Snap =3D function (obj)=0A= {=0A= var delay =3D 500;=0A= =0A= var div =3D RGraph.Effects.ReplaceCanvasWithDIV(obj.canvas);=0A= =0A= obj.canvas.style.position =3D 'absolute';=0A= obj.canvas.style.top =3D 0;=0A= obj.canvas.style.left =3D 0;=0A= obj.canvas.style.width =3D 0;=0A= obj.canvas.style.height =3D 0;=0A= obj.canvas.style.opacity =3D 0;=0A= =0A= var targetLeft =3D div.offsetLeft;=0A= var targetTop =3D div.offsetTop;=0A= var targetWidth =3D div.offsetWidth;=0A= var targetHeight =3D div.offsetHeight;=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= jQuery('#' + obj.id).animate({=0A= opacity: 1,=0A= width: targetWidth + 'px',=0A= height: targetHeight + 'px',=0A= left: targetLeft + 'px',=0A= top: targetTop + 'px'=0A= }, delay);=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay + 50);=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * Reveal=0A= * =0A= * This effect issmilat to the Expand effect - the canvas is slowly = revealed from=0A= * the centre outwards=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.Effects.jQuery.Reveal =3D function (obj)=0A= {=0A= var opts =3D arguments[1] ? arguments[1] : null;=0A= var delay =3D 1000;=0A= var canvas =3D obj.canvas;=0A= var xy =3D RGraph.getCanvasXY(obj.canvas);=0A= =0A= =0A= /**=0A= * Hide the canvas and draw it=0A= */=0A= obj.canvas.style.visibility =3D 'hidden';=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= =0A= var divs =3D [=0A= ['reveal_left', xy[0], xy[1], obj.canvas.width / 2, = obj.canvas.height],=0A= ['reveal_right',(xy[0] + (obj.canvas.width / = 2)),xy[1],(obj.canvas.width / 2),obj.canvas.height],=0A= = ['reveal_top',xy[0],xy[1],obj.canvas.width,(obj.canvas.height / 2)],=0A= ['reveal_bottom',xy[0],(xy[1] + (obj.canvas.height = / 2)),obj.canvas.width,(obj.canvas.height / 2)]=0A= ];=0A= =0A= for (var i=3D0; i<divs.length; ++i) {=0A= var div =3D document.createElement('DIV');=0A= div.id =3D divs[i][0];=0A= div.style.width =3D divs[i][3]+ 'px';=0A= div.style.height =3D divs[i][4] + 'px';=0A= div.style.left =3D divs[i][1] + 'px';=0A= div.style.top =3D divs[i][2] + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.backgroundColor =3D opts && = typeof(opts['color']) =3D=3D 'string' ? opts['color'] : 'white';=0A= document.body.appendChild(div);=0A= }=0A= =0A= /**=0A= * Now the covering DIVs are in place show the canvas again=0A= */=0A= obj.canvas.style.visibility =3D 'visible';=0A= =0A= =0A= jQuery('#reveal_left').animate({width: 0}, delay);=0A= jQuery('#reveal_right').animate({left: '+=3D' + = (obj.canvas.width / 2),width: 0}, delay);=0A= jQuery('#reveal_top').animate({height: 0}, delay);=0A= jQuery('#reveal_bottom').animate({top: '+=3D' + = (obj.canvas.height / 2),height: 0}, delay);=0A= =0A= // Remove the DIVs from the DOM 100ms after the animation ends=0A= setTimeout(=0A= function ()=0A= {=0A= = document.body.removeChild(document.getElementById("reveal_top"))=0A= = document.body.removeChild(document.getElementById("reveal_bottom"))=0A= = document.body.removeChild(document.getElementById("reveal_left"))=0A= = document.body.removeChild(document.getElementById("reveal_right"))=0A= }=0A= , delay);=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * RevealCircular=0A= * =0A= * This effect is smilar to the Reveal effect - the canvas is slowly = revealed from=0A= * the centre outwards using a circular shape=0A= * =0A= * @param object obj The chart object=0A= * @param object An object of options=0A= * @param function An optional callback function that runs when = the effect is finished=0A= */=0A= RGraph.Effects.RevealCircular =3D function (obj)=0A= {=0A= var opts =3D arguments[1] ? arguments[1] : null;=0A= var callback =3D arguments[2] ? arguments[2] : null;=0A= var frames =3D 30;=0A= var RG =3D RGraph;=0A= var ca =3D obj.canvas;=0A= var co =3D obj.context;=0A= var ra =3D 0; // The initial radius of the circle that is = clipped to=0A= var cx =3D ca.width / 2;=0A= var cy =3D ca.height / 2;=0A= var target_ra =3D Math.max(ca.height, ca.width);=0A= =0A= // This is the iterator function which gradually increases the = radius of the clip circle=0A= function Grow ()=0A= {=0A= // Begin by clearing the canvas=0A= RG.Clear(ca);=0A= =0A= co.save();=0A= // First draw the circle and clip to it=0A= co.beginPath();=0A= co.arc(cx, cy, ra, 0, TWOPI, false);=0A= co.clip();=0A= =0A= // Now draw the chart=0A= obj.Draw();=0A= co.restore();=0A= =0A= =0A= // Increment the radius=0A= if (ra < target_ra) {=0A= ra +=3D target_ra / 30;=0A= RG.Effects.UpdateCanvas(Grow);=0A= =0A= } else if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= =0A= Grow();=0A= }=0A= =0A= =0A= =0A= /**=0A= * Conceal=0A= * =0A= * This effect is the reverse of the Reveal effect - instead of = revealing the canvas it=0A= * conceals it. Combined with the reveal effect would make for a nice = wipe effect.=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.Effects.jQuery.Conceal =3D function (obj)=0A= {=0A= var opts =3D arguments[1] ? arguments[1] : null;=0A= var delay =3D 1000;=0A= var canvas =3D obj.canvas;=0A= var xy =3D RGraph.getCanvasXY(obj.canvas);=0A= =0A= =0A= var divs =3D [=0A= ['conceal_left', xy[0], xy[1], 0, obj.canvas.height],=0A= ['conceal_right',(xy[0] + = obj.canvas.width),xy[1],0,obj.canvas.height],=0A= ['conceal_top',xy[0],xy[1],obj.canvas.width,0],=0A= ['conceal_bottom',xy[0],(xy[1] + = obj.canvas.height),obj.canvas.width,0]=0A= ];=0A= =0A= for (var i=3D0; i<divs.length; ++i) {=0A= var div =3D document.createElement('DIV');=0A= div.id =3D divs[i][0];=0A= div.style.width =3D divs[i][3]+ 'px';=0A= div.style.height =3D divs[i][4] + 'px';=0A= div.style.left =3D divs[i][1] + 'px';=0A= div.style.top =3D divs[i][2] + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.backgroundColor =3D opts && = typeof(opts['color']) =3D=3D 'string' ? opts['color'] : 'white';=0A= document.body.appendChild(div);=0A= }=0A= =0A= =0A= jQuery('#conceal_left').animate({width: '+=3D' + = (obj.canvas.width / 2)}, delay);=0A= jQuery('#conceal_right').animate({left: '-=3D' + = (obj.canvas.width / 2),width: (obj.canvas.width / 2)}, delay);=0A= jQuery('#conceal_top').animate({height: '+=3D' + = (obj.canvas.height / 2)}, delay);=0A= jQuery('#conceal_bottom').animate({top: '-=3D' + = (obj.canvas.height / 2),height: (obj.canvas.height / 2)}, delay);=0A= =0A= // Remove the DIVs from the DOM 100ms after the animation ends=0A= setTimeout(=0A= function ()=0A= {=0A= = document.body.removeChild(document.getElementById("conceal_top"))=0A= = document.body.removeChild(document.getElementById("conceal_bottom"))=0A= = document.body.removeChild(document.getElementById("conceal_left"))=0A= = document.body.removeChild(document.getElementById("conceal_right"))=0A= }=0A= , delay);=0A= =0A= setTimeout(function () {RGraph.Clear(obj.canvas);}, delay);=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Horizontal Blinds (open)=0A= * =0A= * @params object obj The graph object=0A= */=0A= RGraph.Effects.jQuery.HBlinds.Open =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var delay =3D 1000;=0A= var color =3D opts['color'] ? opts['color'] : 'white';=0A= var xy =3D RGraph.getCanvasXY(canvas);=0A= var height =3D canvas.height / 5;=0A= =0A= /**=0A= * First draw the chart=0A= */=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= for (var i=3D0; i<5; ++i) {=0A= var div =3D document.createElement('DIV');=0A= div.id =3D 'blinds_' + i;=0A= div.style.width =3D canvas.width + 'px';=0A= div.style.height =3D height + 'px';=0A= div.style.left =3D xy[0] + 'px';=0A= div.style.top =3D (xy[1] + (canvas.height * (i / 5))) = + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.backgroundColor =3D color;=0A= document.body.appendChild(div);=0A= =0A= jQuery('#blinds_' + i).animate({height: 0}, delay);=0A= }=0A= =0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_0'));}, = delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_1'));}, = delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_2'));}, = delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_3'));}, = delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_4'));}, = delay);=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Horizontal Blinds (close)=0A= * =0A= * @params object obj The graph object=0A= */=0A= RGraph.Effects.jQuery.HBlinds.Close =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var delay =3D 1000;=0A= var color =3D opts['color'] ? opts['color'] : 'white';=0A= var xy =3D RGraph.getCanvasXY(canvas);=0A= var height =3D canvas.height / 5;=0A= =0A= for (var i=3D0; i<5; ++i) {=0A= var div =3D document.createElement('DIV');=0A= div.id =3D 'blinds_' + i;=0A= div.style.width =3D canvas.width + 'px';=0A= div.style.height =3D 0;=0A= div.style.left =3D xy[0] + 'px';=0A= div.style.top =3D (xy[1] + (canvas.height * (i / 5))) = + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.backgroundColor =3D color;=0A= document.body.appendChild(div);=0A= =0A= jQuery('#blinds_' + i).animate({height: height + 'px'}, = delay);=0A= }=0A= =0A= setTimeout(function () {RGraph.Clear(obj.canvas);}, delay + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_0'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_1'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_2'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_3'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_4'));}, delay = + 100);=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Vertical Blinds (open)=0A= * =0A= * @params object obj The graph object=0A= */=0A= RGraph.Effects.jQuery.VBlinds.Open =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var delay =3D 1000;=0A= var color =3D opts['color'] ? opts['color'] : 'white';=0A= var xy =3D RGraph.getCanvasXY(canvas);=0A= var width =3D canvas.width / 10;=0A= =0A= /**=0A= * First draw the chart=0A= */=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= for (var i=3D0; i<10; ++i) {=0A= var div =3D document.createElement('DIV');=0A= div.id =3D 'blinds_' + i;=0A= div.style.width =3D width + 'px';=0A= div.style.height =3D canvas.height + 'px';=0A= div.style.left =3D (xy[0] + (canvas.width * (i / 10))) = + 'px';=0A= div.style.top =3D (xy[1]) + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.backgroundColor =3D color;=0A= document.body.appendChild(div);=0A= =0A= jQuery('#blinds_' + i).animate({width: 0}, delay);=0A= }=0A= =0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_0'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_1'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_2'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_3'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_4'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_5'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_6'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_7'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_8'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_9'));}, delay = + 100);=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Vertical Blinds (close)=0A= * =0A= * @params object obj The graph object=0A= */=0A= RGraph.Effects.jQuery.VBlinds.Close =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var delay =3D 1000;=0A= var color =3D opts['color'] ? opts['color'] : 'white';=0A= var xy =3D RGraph.getCanvasXY(canvas);=0A= var width =3D canvas.width / 10;=0A= =0A= // Don't draw the chart=0A= =0A= for (var i=3D0; i<10; ++i) {=0A= var div =3D document.createElement('DIV');=0A= div.id =3D 'blinds_' + i;=0A= div.style.width =3D 0;=0A= div.style.height =3D canvas.height + 'px';=0A= div.style.left =3D (xy[0] + (canvas.width * (i / 10))) = + 'px';=0A= div.style.top =3D (xy[1]) + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.backgroundColor =3D color;=0A= document.body.appendChild(div);=0A= =0A= jQuery('#blinds_' + i).animate({width: width}, delay);=0A= }=0A= =0A= setTimeout(function () {RGraph.Clear(obj.canvas, color);}, delay = + 100);=0A= =0A= if (opts['remove']) {=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_0'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_1'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_2'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_3'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_4'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_5'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_6'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_7'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_8'));}, delay = + 100);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById('blinds_9'));}, delay = + 100);=0A= }=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Pie chart grow=0A= * =0A= * Gradually increases the pie chart radius=0A= * =0A= * @params object obj The graph object=0A= */=0A= RGraph.Effects.Pie.Grow =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var color =3D opts['color'] ? opts['color'] : 'white';=0A= var xy =3D RGraph.getCanvasXY(canvas);=0A= =0A= canvas.style.visibility =3D 'hidden';=0A= RGraph.RedrawCanvas(canvas);=0A= =0A= var radius =3D obj.getRadius();=0A= =0A= if (typeof(obj.Get('chart.radius')) =3D=3D 'number') {=0A= radius =3D obj.Get('chart.radius');=0A= }=0A= =0A= //RGraph.Clear(obj.canvas);=0A= canvas.style.visibility =3D 'visible';=0A= =0A= obj.Set('chart.radius', 0);=0A= =0A= RGraph.Effects.Animate(obj, {'chart.radius': radius}, = arguments[2]);=0A= }=0A= =0A= =0A= /**=0A= * Grow=0A= * =0A= * The Bar chart Grow effect gradually increases the values of the = bars=0A= * =0A= * @param object obj The graph object=0A= * @param object An array of options=0A= * @param function A function to call when the effect is complete=0A= */=0A= RGraph.Effects.Bar.Grow =3D function (obj)=0A= {=0A= // entinux=0A= var frames =3D (arguments[1] && arguments[1].frames) ? = arguments[1].frames : 30;=0A= =0A= // Callback=0A= var callback =3D arguments[2];=0A= =0A= // Save the data=0A= obj.original_data =3D RGraph.array_clone(obj.data);=0A= =0A= // Zero the data=0A= obj.__animation_frame__ =3D 0;=0A= =0A= // Stop the scale from changing by setting chart.ymax (if it's = not already set)=0A= if (obj.Get('chart.ymax') =3D=3D null) {=0A= =0A= var ymax =3D 0;=0A= =0A= for (var i=3D0; i<obj.data.length; ++i) {=0A= if (RGraph.is_array(obj.data[i]) && = obj.Get('chart.grouping') =3D=3D 'stacked') {=0A= ymax =3D Math.max(ymax, = Math.abs(RGraph.array_sum(obj.data[i])));=0A= =0A= } else if (RGraph.is_array(obj.data[i]) && = obj.Get('chart.grouping') =3D=3D 'grouped') {=0A= ymax =3D Math.max(ymax, = Math.abs(RGraph.array_max(obj.data[i])));=0A= } else {=0A= ymax =3D Math.max(ymax, Math.abs(obj.data[i]));=0A= }=0A= }=0A= =0A= var scale =3D RGraph.getScale2(obj, {'max':ymax});=0A= obj.Set('chart.ymax', scale.max);=0A= }=0A= =0A= function Grow ()=0A= {=0A= var numFrames =3D frames; // entinux=0A= var yMin =3D (obj.Get('chart.ymin') =3D=3D null) ? 0 : = obj.Get('chart.ymin'); // entinux=0A= =0A= if (!obj.__animation_frame__) {=0A= obj.__animation_frame__ =3D 0;=0A= obj.__original_hmargin__ =3D obj.Get('chart.hmargin');=0A= obj.__hmargin__ =3D ((obj.canvas.width - = obj.Get('chart.gutter.left') - obj.Get('chart.gutter.right')) / = obj.data.length) / 2;=0A= //obj.Set('chart.hmargin', obj.__hmargin__); // entinux=0A= }=0A= =0A= // Alter the Bar chart data depending on the frame=0A= for (var j=3D0; j<obj.original_data.length; ++j) {=0A= if (typeof(obj.data[j]) =3D=3D 'object') {=0A= for (var k=3D0; k<obj.data[j].length; ++k) {=0A= obj.data[j][k] =3D yMin + = ((obj.__animation_frame__ / numFrames) * (obj.original_data[j][k] - = yMin)); // entinux=0A= }=0A= } else {=0A= obj.data[j] =3D yMin + ((obj.__animation_frame__ / = numFrames) * (obj.original_data[j] - yMin)); // entinux=0A= }=0A= }=0A= =0A= /**=0A= * Increment the hmargin to the target=0A= */=0A= //obj.Set('chart.hmargin', ((1 - (obj.__animation_frame__ / = numFrames)) * (obj.__hmargin__ - obj.__original_hmargin__)) + = obj.__original_hmargin__); // entinux=0A= =0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (obj.__animation_frame__ < numFrames) {=0A= obj.__animation_frame__ +=3D 1;=0A= =0A= RGraph.Effects.UpdateCanvas(Grow);=0A= // Call the callback function if it's defined=0A= } else {=0A= if (callback) {=0A= callback(obj);=0A= }=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(Grow);=0A= }=0A= =0A= =0A= /**=0A= * A wrapper function that encapsulate requestAnimationFrame=0A= * =0A= * @param function func The animation function=0A= */=0A= RGraph.Effects.UpdateCanvas =3D function (func)=0A= {=0A= window.requestAnimationFrame =3D window.requestAnimationFrame=0A= || = window.webkitRequestAnimationFrame=0A= || window.msRequestAnimationFrame=0A= || = window.amozRequestAnimationFrame=0A= || (function = (func){setTimeout(func, 16.666);});=0A= =0A= window.requestAnimationFrame(func);=0A= }=0A= =0A= =0A= /**=0A= * Grow=0A= * =0A= * The Fuel chart Grow effect gradually increases the values of the = Fuel chart=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.Effects.Fuel.Grow =3D function (obj)=0A= {=0A= var callback =3D arguments[2];=0A= var numFrames =3D 30;=0A= var frame =3D 0;=0A= var origValue =3D Number(obj.currentValue);=0A= =0A= if (obj.currentValue =3D=3D null) {=0A= obj.currentValue =3D obj.min;=0A= origValue =3D obj.min;=0A= }=0A= =0A= var newValue =3D obj.value;=0A= var diff =3D newValue - origValue;=0A= var step =3D (diff / numFrames);=0A= var frame =3D 0;=0A= =0A= =0A= function Grow ()=0A= {=0A= frame++;=0A= =0A= obj.value =3D ((frame / numFrames) * diff) + origValue=0A= =0A= if (obj.value > obj.max) obj.value =3D obj.max;=0A= if (obj.value < obj.min) obj.value =3D obj.min;=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (frame < numFrames) {=0A= RGraph.Effects.UpdateCanvas(Grow);=0A= } else if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= =0A= Grow();=0A= }=0A= =0A= =0A= /**=0A= * The Animate function. Similar to the jQuery Animate() function - = simply pass it a=0A= * map of the properties and their target values, and this function = will animate=0A= * them to get to those values.=0A= * =0A= * @param object obj The chart object=0A= * @param object map A map (an associative array) of the properties = and their target values.=0A= * @param An optional function which will be called when = the animation is complete=0A= */=0A= RGraph.Effects.Animate =3D function (obj, map)=0A= {=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= RGraph.Effects.__total_frames__ =3D (map && map['frames']) ? = map['frames'] : 30;=0A= =0A= function Animate_Iterator (func)=0A= {=0A= var id =3D [obj.id + '_' + obj.type];=0A= =0A= // Very first time in - initialise the arrays=0A= if (typeof(RGraph.Effects.__current_frame__ ) =3D=3D = 'undefined') {=0A= RGraph.Effects.__current_frame__ =3D new Array();=0A= RGraph.Effects.__original_values__ =3D new Array();=0A= RGraph.Effects.__diffs__ =3D new Array();=0A= RGraph.Effects.__steps__ =3D new Array();=0A= RGraph.Effects.__callback__ =3D new Array();=0A= }=0A= =0A= // Initialise the arrays for THIS animation (not necessrily = the first in the page)=0A= if (!RGraph.Effects.__current_frame__[id]) {=0A= RGraph.Effects.__current_frame__[id] =3D = RGraph.Effects.__total_frames__;=0A= RGraph.Effects.__original_values__[id] =3D {};=0A= RGraph.Effects.__diffs__[id] =3D {};=0A= RGraph.Effects.__steps__[id] =3D {};=0A= RGraph.Effects.__callback__[id] =3D func;=0A= }=0A= =0A= for (var i in map) {=0A= if (typeof(map[i]) =3D=3D 'string' || typeof(map[i]) = =3D=3D 'number') {=0A= =0A= // If this the first frame, record the proginal value=0A= if (RGraph.Effects.__current_frame__[id] =3D=3D = RGraph.Effects.__total_frames__) {=0A= RGraph.Effects.__original_values__[id][i] =3D = obj.Get(i);=0A= RGraph.Effects.__diffs__[id][i] =3D = map[i] - RGraph.Effects.__original_values__[id][i];=0A= RGraph.Effects.__steps__[id][i] =3D = RGraph.Effects.__diffs__[id][i] / RGraph.Effects.__total_frames__;=0A= }=0A= =0A= obj.Set(i, obj.Get(i) + = RGraph.Effects.__steps__[id][i]);=0A= =0A= RGraph.RedrawCanvas(obj.canvas);=0A= }=0A= }=0A= =0A= // If the current frame number is above zero, run the = animation iterator again=0A= if (--RGraph.Effects.__current_frame__[id] > 0) {=0A= //setTimeout(Animate_Iterator, 100)=0A= RGraph.Effects.UpdateCanvas(Animate_Iterator);=0A= =0A= // Optional callback=0A= } else {=0A= =0A= if (typeof(RGraph.Effects.__callback__[id]) =3D=3D = 'function') {=0A= (RGraph.Effects.__callback__[id])(obj);=0A= }=0A= =0A= // Get rid of the arrays=0A= RGraph.Effects.__current_frame__[id] =3D null;=0A= RGraph.Effects.__original_values__[id] =3D null;=0A= RGraph.Effects.__diffs__[id] =3D null;=0A= RGraph.Effects.__steps__[id] =3D null;=0A= RGraph.Effects.__callback__[id] =3D null;=0A= =0A= }=0A= }=0A= =0A= Animate_Iterator(arguments[2]);=0A= }=0A= =0A= =0A= /**=0A= * Slide in=0A= * =0A= * This function is a wipe that can be used when switching the canvas = to a new graph=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.Effects.jQuery.Slide.In =3D function (obj)=0A= {=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= var canvas =3D obj.canvas;=0A= var div =3D RGraph.Effects.ReplaceCanvasWithDIV(obj.canvas);=0A= var delay =3D 1000;=0A= div.style.overflow=3D 'hidden';=0A= var from =3D typeof(arguments[1]) =3D=3D 'object' && = typeof(arguments[1]['from']) =3D=3D 'string' ? arguments[1]['from'] : = 'left';=0A= =0A= canvas.style.position =3D 'relative';=0A= =0A= if (from =3D=3D 'left') {=0A= canvas.style.left =3D (0 - div.offsetWidth) + 'px';=0A= canvas.style.top =3D 0;=0A= } else if (from =3D=3D 'top') {=0A= canvas.style.left =3D 0;=0A= canvas.style.top =3D (0 - div.offsetHeight) + 'px';=0A= } else if (from =3D=3D 'bottom') {=0A= canvas.style.left =3D 0;=0A= canvas.style.top =3D div.offsetHeight + 'px';=0A= } else {=0A= canvas.style.left =3D div.offsetWidth + 'px';=0A= canvas.style.top =3D 0;=0A= }=0A= =0A= jQuery('#' + obj.id).animate({left:0,top:0}, delay);=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Slide out=0A= * =0A= * This function is a wipe that can be used when switching the canvas = to a new graph=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.Effects.jQuery.Slide.Out =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var div =3D RGraph.Effects.ReplaceCanvasWithDIV(obj.canvas);=0A= var delay =3D 1000;=0A= div.style.overflow=3D 'hidden';=0A= var to =3D typeof(arguments[1]) =3D=3D 'object' && arguments[1] = && typeof(arguments[1]['to']) =3D=3D 'string' ? arguments[1]['to'] : = 'left';=0A= =0A= canvas.style.position =3D 'relative';=0A= canvas.style.left =3D 0;=0A= canvas.style.top =3D 0;=0A= =0A= if (to =3D=3D 'left') {=0A= jQuery('#' + obj.id).animate({left: (0 - canvas.width) + = 'px'}, delay);=0A= } else if (to =3D=3D 'top') {=0A= jQuery('#' + obj.id).animate({left: 0, top: (0 - = div.offsetHeight) + 'px'}, delay);=0A= } else if (to =3D=3D 'bottom') {=0A= jQuery('#' + obj.id).animate({top: (0 + div.offsetHeight) + = 'px'}, delay);=0A= } else {=0A= jQuery('#' + obj.id).animate({left: (0 + canvas.width) + = 'px'}, delay);=0A= }=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Unfold=0A= * =0A= * This effect gradually increases the X/Y coordinatesfrom 0=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.Effects.Line.Unfold =3D function (obj)=0A= {=0A= obj.Set('chart.animation.factor', = obj.Get('chart.animation.unfold.initial'));=0A= RGraph.Effects.Animate(obj, {'chart.animation.factor': 1}, = arguments[2]);=0A= }=0A= =0A= =0A= /**=0A= * RoundRobin=0A= * =0A= * This effect is similar to the Pie chart RoundRobin effect=0A= * =0A= * @param object obj The chart object=0A= * @param Not used - pass null=0A= * @param function An optional callback function=0A= */=0A= RGraph.Effects.Rose.RoundRobin =3D function (obj)=0A= {=0A= var numFrames =3D 60;=0A= var currentFrame =3D 0;=0A= var original_margin =3D obj.Get('chart.margin');=0A= var margin =3D (360 / obj.data.length) / 2;=0A= var callback =3D arguments[2];=0A= =0A= obj.Set('chart.margin', margin);=0A= obj.Set('chart.animation.roundrobin.factor', 0);=0A= =0A= //RGraph.Effects.Animate(obj, {'chart.margin': original_margin, = 'chart.animation.grow.factor': 1, 'frames': 45}, arguments[2]);=0A= function RoundRobin_inner ()=0A= {=0A= if (currentFrame++ < numFrames) {=0A= obj.Set('chart.animation.roundrobin.factor', = currentFrame / numFrames);=0A= obj.Set('chart.margin', (currentFrame / numFrames) * = original_margin);=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= RGraph.Effects.UpdateCanvas(RoundRobin_inner);=0A= =0A= } else {=0A= obj.Set('chart.animation.roundrobin.factor', 1);=0A= obj.Set('chart.margin', original_margin);=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(RoundRobin_inner);=0A= }=0A= =0A= =0A= /**=0A= * UnfoldFromCenter=0A= * =0A= * Line chart unfold from center=0A= */=0A= RGraph.Effects.Line.UnfoldFromCenter =3D function (obj)=0A= {=0A= var numFrames =3D 30;=0A= =0A= var original_opacity =3D obj.canvas.style.opacity;=0A= obj.canvas.style.opacity =3D 0;=0A= =0A= obj.Draw();=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= var center_value =3D obj.Get('chart.xaxispos') =3D=3D 'center' ? = obj.Get('chart.ymin') : ((obj.max - obj.min) / 2) + obj.min;=0A= obj.Set('chart.ymax', obj.scale2.max);=0A= =0A= RGraph.Clear(obj.canvas);=0A= =0A= obj.canvas.style.opacity =3D original_opacity;=0A= var original_data =3D RGraph.array_clone(obj.original_data);=0A= var callback =3D arguments[2];=0A= =0A= if (!obj.__increments__) {=0A= =0A= obj.__increments__ =3D new Array();=0A= =0A= for (var dataset=3D0; dataset<original_data.length; = ++dataset) {=0A= =0A= obj.__increments__[dataset] =3D new Array();=0A= =0A= for (var i=3D0; i<original_data[dataset].length; ++i) {=0A= if (obj.Get('chart.filled') && = obj.Get('chart.filled.accumulative') && dataset > 0) {=0A= obj.__increments__[dataset][i] =3D = original_data[dataset][i] / numFrames;=0A= obj.original_data[dataset][i] =3D 0;=0A= } else {=0A= obj.__increments__[dataset][i] =3D = (original_data[dataset][i] - center_value) / numFrames;=0A= obj.original_data[dataset][i] =3D center_value;=0A= }=0A= }=0A= }=0A= }=0A= =0A= function UnfoldFromCenter ()=0A= {=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= for (var dataset=3D0; dataset<original_data.length; = ++dataset) {=0A= for (var i=3D0; i<original_data[dataset].length; ++i) {=0A= obj.original_data[dataset][i] +=3D = obj.__increments__[dataset][i];=0A= }=0A= }=0A= =0A= if (--numFrames > 0) {=0A= RGraph.Effects.UpdateCanvas(UnfoldFromCenter);=0A= } else {=0A= obj.original_data =3D RGraph.array_clone(original_data);=0A= obj.__increments__ =3D null;=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= }=0A= =0A= UnfoldFromCenter();=0A= }=0A= =0A= =0A= =0A= /**=0A= * UnfoldFromCenterTrace=0A= */=0A= RGraph.Effects.Line.jQuery.UnfoldFromCenterTrace =3D function (obj)=0A= {=0A= // Hide the canvas first=0A= obj.canvas.style.visibility =3D 'hidden';=0A= setTimeout(function () {obj.canvas.style.visibility =3D = 'visible';}, 10);=0A= =0A= /**=0A= * First draw the chart so we can get the max=0A= */=0A= obj.Draw();=0A= RGraph.Clear(obj.canvas);=0A= =0A= =0A= var data =3D RGraph.array_clone(obj.original_data);=0A= var callback =3D arguments[2];=0A= =0A= /**=0A= * When the Trace function finishes it calls this function=0A= */=0A= function Unfold_callback ()=0A= {=0A= obj.original_data =3D data;=0A= RGraph.Effects.Line.UnfoldFromCenter(obj, null, callback);=0A= }=0A= =0A= /**=0A= * Determine the mid-point=0A= */=0A= var half =3D obj.Get('chart.xaxispos') =3D=3D 'center' ? obj.min = : ((obj.max - obj.min) / 2) + obj.min;=0A= obj.Set('chart.ymax', obj.max);=0A= =0A= for (var i=3D0; i<obj.original_data.length; ++i) {=0A= for (var j=3D0; j<obj.original_data[i].length; ++j) {=0A= obj.original_data[i][j] =3D (obj.Get('chart.filled') && = obj.Get('chart.filled.accumulative') && i > 0) ? 0 : half;=0A= }=0A= }=0A= =0A= //RGraph.Clear(obj.canvas);=0A= RGraph.Effects.Line.jQuery.Trace(obj, {'duration':1000}, = Unfold_callback);=0A= }=0A= =0A= =0A= =0A= /**=0A= * FoldToCenter=0A= * =0A= * Line chart FoldTocenter=0A= */=0A= RGraph.Effects.Line.FoldToCenter =3D function (obj)=0A= {=0A= var totalFrames =3D 30;=0A= var numFrame =3D totalFrames;=0A= RGraph.RedrawCanvas(obj.canvas);=0A= var center_value =3D obj.scale2.max / 2;=0A= obj.Set('chart.ymax', obj.scale2.max);=0A= RGraph.Clear(obj.canvas);=0A= var original_data =3D RGraph.array_clone(obj.original_data);=0A= obj.Set('chart.shadow.blur', 0);=0A= var callback =3D arguments[2];=0A= =0A= function FoldToCenter ()=0A= {=0A= for (var i=3D0; i<obj.data.length; ++i) {=0A= if (obj.data[i].length) {=0A= for (var j=3D0; j<obj.data[i].length; ++j) {=0A= if (obj.original_data[i][j] > center_value) {=0A= obj.original_data[i][j] =3D = ((original_data[i][j] - center_value) * (numFrame/totalFrames)) + = center_value;=0A= } else {=0A= obj.original_data[i][j] =3D center_value - = ((center_value - original_data[i][j]) * (numFrame/totalFrames));=0A= }=0A= }=0A= }=0A= }=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas)=0A= =0A= if (numFrame-- > 0) {=0A= RGraph.Effects.UpdateCanvas(FoldToCenter);=0A= } else if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(FoldToCenter);=0A= }=0A= =0A= =0A= /**=0A= * Odo Grow=0A= * =0A= * This effect gradually increases the represented value=0A= * =0A= * @param object obj The chart object=0A= * @param Not used - pass null=0A= * @param function An optional callback function=0A= */=0A= RGraph.Effects.Odo.Grow =3D function (obj)=0A= {=0A= var numFrames =3D 30;=0A= var curFrame =3D 0;=0A= var origValue =3D Number(obj.currentValue);=0A= var newValue =3D obj.value;=0A= var diff =3D newValue - origValue;=0A= var step =3D (diff / numFrames);=0A= var callback =3D arguments[2];=0A= =0A= function Grow_inner ()=0A= {=0A= obj.value =3D origValue + (curFrame * step);=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (++curFrame <=3D numFrames) {=0A= RGraph.Effects.UpdateCanvas(Grow_inner);=0A= } else if (callback) {=0A= callback(obj);=0A= }=0A= }=0A= =0A= //setTimeout(Grow, 100);=0A= Grow_inner();=0A= }=0A= =0A= =0A= /**=0A= * Meter Grow=0A= * =0A= * This effect gradually increases the represented value=0A= * =0A= * @param object obj The chart object=0A= * @param Not used - pass null=0A= * @param function An optional callback function=0A= */=0A= RGraph.Effects.Meter.Grow =3D function (obj)=0A= {=0A= if (!obj.currentValue) {=0A= obj.currentValue =3D obj.min;=0A= }=0A= =0A= var totalFrames =3D 60;=0A= var numFrame =3D 0;=0A= var diff =3D obj.value - obj.currentValue;=0A= var step =3D diff / totalFrames=0A= var callback =3D arguments[2];=0A= var initial =3D obj.currentValue;=0A= =0A= function Grow_meter_inner ()=0A= {=0A= obj.value =3D initial + (numFrame++ * step);=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (numFrame++ <=3D totalFrames) {=0A= RGraph.Effects.UpdateCanvas(Grow_meter_inner);=0A= } else if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= =0A= Grow_meter_inner();=0A= }=0A= =0A= =0A= /**=0A= * Grow=0A= * =0A= * The HBar chart Grow effect gradually increases the values of the = bars=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.Effects.HBar.Grow =3D function (obj)=0A= {=0A= // Save the data=0A= obj.original_data =3D RGraph.array_clone(obj.data);=0A= =0A= // Zero the data=0A= obj.__animation_frame__ =3D 0;=0A= =0A= // Stop the scale from changing by setting chart.ymax (if it's = not already set)=0A= if (obj.Get('chart.xmax') =3D=3D 0) {=0A= =0A= var xmax =3D 0;=0A= =0A= for (var i=3D0; i<obj.data.length; ++i) {=0A= if (RGraph.is_array(obj.data[i]) && = obj.Get('chart.grouping') =3D=3D 'stacked') {=0A= xmax =3D Math.max(xmax, = RGraph.array_sum(obj.data[i]));=0A= } else if (RGraph.is_array(obj.data[i]) && = obj.Get('chart.grouping') =3D=3D 'grouped') {=0A= xmax =3D Math.max(xmax, = RGraph.array_max(obj.data[i]));=0A= } else {=0A= xmax =3D Math.max(xmax, = RGraph.array_max(obj.data[i]));=0A= }=0A= }=0A= =0A= var scale2 =3D RGraph.getScale2(obj, {'max':xmax});=0A= obj.Set('chart.xmax', scale2.max);=0A= }=0A= =0A= /**=0A= * Turn off shadow blur for the duration of the animation=0A= */=0A= if (obj.Get('chart.shadow.blur') > 0) {=0A= var __original_shadow_blur__ =3D = obj.Get('chart.shadow.blur');=0A= obj.Set('chart.shadow.blur', 0);=0A= }=0A= =0A= function Grow ()=0A= {=0A= var numFrames =3D 30;=0A= =0A= if (!obj.__animation_frame__) {=0A= obj.__animation_frame__ =3D 0;=0A= obj.__original_vmargin__ =3D obj.Get('chart.vmargin');=0A= obj.__vmargin__ =3D ((obj.canvas.height - = obj.Get('chart.gutter.top') - obj.Get('chart.gutter.bottom')) / = obj.data.length) / 2;=0A= obj.Set('chart.vmargin', obj.__vmargin__);=0A= }=0A= =0A= // Alter the Bar chart data depending on the frame=0A= for (var j=3D0; j<obj.original_data.length; ++j) {=0A= =0A= // This stops the animatioon from being completely linear=0A= var easing =3D = Math.pow(Math.sin((obj.__animation_frame__ * (90 / numFrames)) / (180 / = PI)), 4);=0A= =0A= if (typeof(obj.data[j]) =3D=3D 'object') {=0A= for (var k=3D0; k<obj.data[j].length; ++k) {=0A= obj.data[j][k] =3D (obj.__animation_frame__ / = numFrames) * obj.original_data[j][k] * easing;=0A= }=0A= } else {=0A= obj.data[j] =3D (obj.__animation_frame__ / = numFrames) * obj.original_data[j] * easing;=0A= }=0A= }=0A= =0A= /**=0A= * Increment the vmargin to the target=0A= */=0A= obj.Set('chart.vmargin', ((1 - (obj.__animation_frame__ / = numFrames)) * (obj.__vmargin__ - obj.__original_vmargin__)) + = obj.__original_vmargin__);=0A= =0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (obj.__animation_frame__ < numFrames) {=0A= obj.__animation_frame__ +=3D 1;=0A= =0A= RGraph.Effects.UpdateCanvas(Grow);=0A= =0A= // Turn any shadow blur back on=0A= } else {=0A= if (typeof(__original_shadow_blur__) =3D=3D 'number' && = __original_shadow_blur__ > 0) {=0A= obj.Set('chart.shadow.blur', = __original_shadow_blur__);=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= }=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(Grow);=0A= }=0A= =0A= =0A= /**=0A= * Trace=0A= * =0A= * This effect is for the Line chart, uses the jQuery library and = slowly=0A= * uncovers the Line , but you can see the background of the chart. = This effect=0A= * is quite new (1/10/2011) and as such should be used with caution.=0A= * =0A= * @param object obj The graph object=0A= * @param object Not used=0A= * @param int A number denoting how long (in millseconds) the = animation should last for. Defauld=0A= * is 1500=0A= */=0A= RGraph.Effects.Line.jQuery.Trace =3D function (obj)=0A= {=0A= var callback =3D typeof(arguments[2]) =3D=3D 'function' ? = arguments[2] : function () {};=0A= var opt =3D arguments[1] || [];=0A= =0A= if (!opt['duration']) {=0A= opt['duration'] =3D 1000;=0A= }=0A= =0A= RGraph.Clear(obj.canvas);=0A= //obj.Draw();=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= /**=0A= * Create the DIV that the second canvas will sit in=0A= */=0A= var div =3D document.createElement('DIV');=0A= var xy =3D RGraph.getCanvasXY(obj.canvas);=0A= div.id =3D '__rgraph_trace_animation_' + RGraph.random(0, = 4351623) + '__';=0A= div.style.left =3D xy[0] + 'px';=0A= div.style.top =3D xy[1] + 'px';=0A= div.style.width =3D obj.Get('chart.gutter.left');=0A= div.style.height =3D obj.canvas.height + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.overflow =3D 'hidden';=0A= document.body.appendChild(div);=0A= =0A= obj.canvas.__rgraph_trace_div__ =3D div;=0A= =0A= /**=0A= * Make the second canvas=0A= */=0A= var id =3D '__rgraph_line_trace_animation_' + = RGraph.random(0, 99999999) + '__';=0A= var canvas2 =3D document.createElement('CANVAS');=0A= =0A= =0A= =0A= =0A= // Copy the 3D CSS transformation properties across from the = original canvas=0A= var properties =3D = ['WebkitTransform','MozTransform','OTransform','MSTransform','transform']= ;=0A= =0A= for (i in properties) {=0A= var name =3D properties[i];=0A= if (typeof(obj.canvas.style[name]) =3D=3D 'string' && = obj.canvas.style[name]) {=0A= canvas2.style[name] =3D obj.canvas.style[name];=0A= }=0A= }=0A= =0A= =0A= =0A= obj.canvas.__rgraph_line_canvas2__ =3D canvas2;=0A= canvas2.width =3D obj.canvas.width;=0A= canvas2.height =3D obj.canvas.height;=0A= canvas2.style.position =3D 'absolute';=0A= canvas2.style.left =3D 0;=0A= canvas2.style.top =3D 0;=0A= =0A= =0A= // This stops the clear effect clearing the canvas - which can = happen if you have multiple canvas tags on the page all with=0A= // dynamic effects that do redrawing=0A= canvas2.noclear =3D true;=0A= =0A= canvas2.id =3D id;=0A= div.appendChild(canvas2);=0A= =0A= var reposition_canvas2 =3D function (e)=0A= {=0A= var xy =3D RGraph.getCanvasXY(obj.canvas);=0A= =0A= div.style.left =3D xy[0] + 'px';=0A= div.style.top =3D xy[1] + 'px';=0A= }=0A= window.addEventListener('resize', reposition_canvas2, false)=0A= =0A= /**=0A= * Make a copy of the original Line object=0A= */=0A= var obj2 =3D new RGraph.Line(id, = RGraph.array_clone(obj.original_data));=0A= =0A= // Remove the new line from the ObjectRegistry so that it isn't = redawn=0A= RGraph.ObjectRegistry.Remove(obj2);=0A= =0A= for (i in obj.properties) {=0A= if (typeof(i) =3D=3D 'string') {=0A= obj2.Set(i, obj.properties[i]);=0A= }=0A= }=0A= =0A= //obj2.Set('chart.tooltips', null);=0A= obj2.Set('chart.labels', []);=0A= obj2.Set('chart.background.grid', false);=0A= obj2.Set('chart.background.barcolor1', 'rgba(0,0,0,0)');=0A= obj2.Set('chart.background.barcolor2', 'rgba(0,0,0,0)');=0A= obj2.Set('chart.ylabels', false);=0A= obj2.Set('chart.noaxes', true);=0A= obj2.Set('chart.title', '');=0A= obj2.Set('chart.title.xaxis', '');=0A= obj2.Set('chart.title.yaxis', '');=0A= obj2.Set('chart.filled.accumulative', = obj.Get('chart.filled.accumulative'));=0A= obj.Set('chart.key', []);=0A= obj2.Draw();=0A= =0A= obj.canvas.__rgraph_trace_obj2__ =3D obj2;=0A= =0A= =0A= /**=0A= * This effectively hides the line=0A= */=0A= obj.Set('chart.line.visible', false);=0A= obj.Set('chart.colors', ['rgba(0,0,0,0)']);=0A= if (obj.Get('chart.filled')) {=0A= var original_fillstyle =3D obj.Get('chart.fillstyle');=0A= obj.Set('chart.fillstyle', 'rgba(0,0,0,0)');=0A= obj.Set('chart.animation.trace.original.fillstyle', = original_fillstyle);=0A= }=0A= =0A= RGraph.Clear(obj.canvas);=0A= //obj.Draw();=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= /**=0A= * Place a DIV over the canvas to stop interaction with it=0A= */=0A= if (!obj.canvas.__rgraph_trace_cover__) {=0A= var div2 =3D document.createElement('DIV');=0A= div2.id =3D '__rgraph_trace_animation_' + = RGraph.random(0, 4351623) + '__';=0A= div2.style.left =3D xy[0] + 'px';=0A= div2.style.top =3D xy[1] + 'px';=0A= div2.style.width =3D obj.canvas.width + 'px';=0A= div2.style.height =3D obj.canvas.height + 'px';=0A= div2.style.position =3D 'absolute';=0A= div2.style.overflow =3D 'hidden';=0A= div2.style.backgroundColor =3D 'rgba(0,0,0,0)';=0A= div.div2 =3D div2;=0A= obj.canvas.__rgraph_trace_cover__ =3D div2;=0A= document.body.appendChild(div2);=0A= } else {=0A= div2 =3D obj.canvas.__rgraph_trace_cover__;=0A= }=0A= =0A= /**=0A= * Animate the DIV that contains the canvas=0A= */=0A= jQuery('#' + div.id).animate({=0A= width: obj.canvas.width + 'px'=0A= }, opt['duration'], function () = {RGraph.Effects.Line.Trace_callback(obj)});=0A= =0A= =0A= /**=0A= * Get rid of the second canvas and turn the line back on=0A= * on the original.=0A= */=0A= RGraph.Effects.Line.Trace_callback =3D function (obj)=0A= {=0A= var obj2 =3D obj.canvas.__rgraph_trace_obj2__;=0A= =0A= // Remove the window resize listener=0A= window.removeEventListener('resize', reposition_canvas2, = false);=0A= =0A= div.style.display =3D 'none';=0A= div2.style.display =3D 'none';=0A= =0A= //div.removeChild(canvas2);=0A= obj.Set('chart.line.visible', true);=0A= =0A= // Revert the filled status back to as it was=0A= obj.Set('chart.filled', = RGraph.array_clone(obj2.Get('chart.filled')));=0A= obj.Set('chart.fillstyle', = obj.Get('chart.animation.trace.original.fillstyle'));=0A= obj.Set('chart.colors', = RGraph.array_clone(obj2.Get('chart.colors')));=0A= obj.Set('chart.key', = RGraph.array_clone(obj2.Get('chart.key')));=0A= =0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= obj.canvas.__rgraph_trace_div__.style.display =3D 'none';=0A= obj.canvas.__rgraph_trace_div__ =3D null;=0A= obj.canvas.__rgraph_line_canvas2__.style.display =3D 'none';=0A= obj.canvas.__rgraph_line_canvas2__ =3D null;=0A= obj.canvas.__rgraph_trace_cover__.style.display =3D 'none';=0A= obj.canvas.__rgraph_trace_cover__ =3D null;=0A= =0A= =0A= callback(obj);=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * Trace2=0A= * =0A= * This is a new version of the Trace effect which no longer requires = jQuery and is more compatible=0A= * with other effects (eg Expand). This new effect is considerably = simpler and less code.=0A= * =0A= * @param object obj The graph object=0A= * @param object Options for the effect. Currently only "frames" = is available.=0A= * @param int A function that is called when the ffect is = complete=0A= */=0A= RGraph.Effects.Line.Trace2 =3D function (obj)=0A= {=0A= var callback =3D arguments[2];=0A= var numFrames =3D (arguments[1] && arguments[1].frames) ? = arguments[1].frames : 60;=0A= var frame =3D 0;=0A= =0A= obj.Set('animation.trace.clip', 0);=0A= =0A= function Grow ()=0A= {=0A= if (frame > numFrames) {=0A= if (callback) {=0A= callback(obj);=0A= }=0A= return;=0A= }=0A= =0A= obj.Set('animation.trace.clip', frame / numFrames );=0A= =0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= frame++;=0A= RGraph.Effects.UpdateCanvas(Grow);=0A= }=0A= =0A= Grow();=0A= }=0A= =0A= =0A= =0A= /**=0A= * Trace (Radar chart)=0A= * =0A= * This is a Trace effect for the Radar chart=0A= * =0A= * @param object obj The graph object=0A= * @param object Options for the effect. Currently only "frames" = is available.=0A= * @param function A function that is called when the ffect is = complete=0A= */=0A= RGraph.Effects.Radar.Trace =3D function (obj)=0A= {=0A= var callback =3D arguments[2];=0A= var numFrames =3D (arguments[1] && arguments[1].frames) ? = arguments[1].frames : 60;=0A= var frame =3D 0;=0A= =0A= obj.Set('animation.trace.clip', 0);=0A= =0A= function Grow ()=0A= {=0A= if (frame > numFrames) {=0A= if (callback) {=0A= callback(obj);=0A= }=0A= return;=0A= }=0A= =0A= obj.Set('animation.trace.clip', frame / numFrames );=0A= =0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= frame++;=0A= RGraph.Effects.UpdateCanvas(Grow);=0A= }=0A= =0A= Grow();=0A= }=0A= =0A= =0A= =0A= /**=0A= * RoundRobin=0A= * =0A= * This effect does two things:=0A= * 1. Gradually increases the size of each segment=0A= * 2. Gradually increases the size of the radius from 0=0A= * =0A= * @param object obj The graph object=0A= */=0A= RGraph.Effects.Pie.RoundRobin =3D function (obj)=0A= {=0A= var callback =3D arguments[2] ? arguments[2] : null;=0A= var opt =3D arguments[1];=0A= var currentFrame =3D 0;=0A= var numFrames =3D (opt && opt['frames']) ? opt['frames'] : 90;=0A= var targetRadius =3D obj.getRadius();=0A= =0A= obj.Set('chart.events', false);=0A= =0A= // Fix for donuts=0A= if (obj.properties['chart.variant'] =3D=3D 'donut' && = typeof(obj.properties['chart.variant.donut.width']) =3D=3D 'number') {=0A= if (RGraph.is_null(opt)) {=0A= var opt =3D {radius: null}=0A= } else {=0A= opt.radius =3D null;=0A= }=0A= }=0A= =0A= =0A= function RoundRobin_inner ()=0A= {=0A= obj.Set('chart.effect.roundrobin.multiplier', = Math.pow(Math.sin((currentFrame * (90 / numFrames)) / (180 / PI)), 2) * = (currentFrame / numFrames) );=0A= =0A= if (!opt || typeof(opt['radius']) =3D=3D 'undefined' || = opt['radius'] =3D=3D true) {=0A= obj.Set('chart.radius', targetRadius * = obj.Get('chart.effect.roundrobin.multiplier'));=0A= }=0A= =0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (currentFrame++ < numFrames) {=0A= RGraph.Effects.UpdateCanvas(RoundRobin_inner);=0A= =0A= } else {=0A= =0A= // Re-enable the events and redraw the chart.=0A= obj.Set('chart.events', true);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (callback) {=0A= callback(obj);=0A= }=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(RoundRobin_inner);=0A= }=0A= =0A= =0A= /**=0A= * Implode (pie chart)=0A= * =0A= * Here the segments are initially exploded - and gradually=0A= * contract inwards to create the Pie chart=0A= * =0A= * @param object obj The Pie chart object=0A= */=0A= RGraph.Effects.Pie.Implode =3D function (obj)=0A= {=0A= var numFrames =3D 90;=0A= var distance =3D Math.min(obj.canvas.width, obj.canvas.height);=0A= var exploded =3D obj.Get('chart.exploded');=0A= var callback =3D arguments[2];=0A= =0A= function Implode_inner ()=0A= {=0A= obj.Set('chart.exploded', Math.sin(numFrames / (180 / PI)) * = distance);=0A= RGraph.Clear(obj.canvas)=0A= //obj.Draw();=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (numFrames > 0) {=0A= numFrames--;=0A= RGraph.Effects.UpdateCanvas(Implode_inner);=0A= } else {=0A= // Finish off the animation=0A= obj.Set('chart.exploded', exploded);=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(Implode_inner);=0A= }=0A= =0A= =0A= =0A= /**=0A= * Pie chart explode=0A= * =0A= * Explodes the Pie chart - gradually incrementing the size of the = chart.explode property=0A= * =0A= * @params object obj The graph object=0A= */=0A= RGraph.Effects.Pie.Explode =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var callback =3D arguments[2] ? arguments[2] : null;=0A= var frames =3D opts['frames'] ? opts['frames'] : 60;=0A= =0A= obj.Set('chart.exploded', 0);=0A= =0A= RGraph.Effects.Animate(obj, {'frames': frames, 'chart.exploded': = Math.max(canvas.width, canvas.height)}, callback);=0A= }=0A= =0A= =0A= =0A= /**=0A= * Gauge Grow=0A= * =0A= * This effect gradually increases the represented value=0A= * =0A= * @param object obj The chart object=0A= * @param Not used - pass null=0A= * @param function An optional callback function=0A= */=0A= RGraph.Effects.Gauge.Grow =3D function (obj)=0A= {=0A= =0A= var callback =3D arguments[2];=0A= var numFrames =3D 30;=0A= var frame =3D 0;=0A= =0A= // Single pointer=0A= if (typeof(obj.value) =3D=3D 'number') {=0A= =0A= var origValue =3D Number(obj.currentValue);=0A= =0A= if (obj.currentValue =3D=3D null) {=0A= obj.currentValue =3D obj.min;=0A= origValue =3D obj.min;=0A= }=0A= =0A= var newValue =3D obj.value;=0A= var diff =3D newValue - origValue;=0A= var step =3D (diff / numFrames);=0A= var frame =3D 0;=0A= =0A= =0A= function Grow_single ()=0A= {=0A= =0A= frame++;=0A= =0A= obj.value =3D ((frame / numFrames) * diff) + origValue;=0A= =0A= if (obj.value > obj.max) obj.value =3D obj.max;=0A= if (obj.value < obj.min) obj.value =3D obj.min;=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (frame < 30) {=0A= RGraph.Effects.UpdateCanvas(Grow_single);=0A= } else if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= =0A= Grow_single();=0A= =0A= // Multiple pointers=0A= } else {=0A= =0A= if (obj.currentValue =3D=3D null) {=0A= obj.currentValue =3D [];=0A= =0A= for (var i=3D0; i<obj.value.length; ++i) {=0A= obj.currentValue[i] =3D obj.min;=0A= }=0A= =0A= origValue =3D RGraph.array_clone(obj.currentValue);=0A= }=0A= =0A= var origValue =3D RGraph.array_clone(obj.currentValue);=0A= var newValue =3D RGraph.array_clone(obj.value);=0A= var diff =3D [];=0A= var step =3D [];=0A= =0A= for (var i=3D0; i<newValue.length; ++i) {=0A= diff[i] =3D newValue[i] - Number(obj.currentValue[i]);=0A= step[i] =3D (diff[i] / numFrames);=0A= }=0A= =0A= =0A= =0A= function Grow_multiple ()=0A= {=0A= frame++;=0A= =0A= for (var i=3D0; i<obj.value.length; ++i) {=0A= =0A= obj.value[i] =3D ((frame / numFrames) * diff[i]) + = origValue[i];=0A= =0A= if (obj.value[i] > obj.max) obj.value[i] =3D obj.max;=0A= if (obj.value[i] < obj.min) obj.value[i] =3D obj.min;=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= }=0A= =0A= if (frame < 30) {=0A= RGraph.Effects.UpdateCanvas(Grow_multiple);=0A= } else if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= =0A= Grow_multiple();=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Radar chart grow=0A= * =0A= * This effect gradually increases the magnitude of the points on the = radar chart=0A= * =0A= * @param object obj The chart object=0A= * @param null Not used=0A= * @param function An optional callback that is run when the effect = is finished=0A= */=0A= RGraph.Effects.Radar.Grow =3D function (obj)=0A= {=0A= var totalframes =3D 30;=0A= var framenum =3D totalframes;=0A= var data =3D RGraph.array_clone(obj.data);=0A= var callback =3D arguments[2];=0A= obj.original_data =3D RGraph.array_clone(obj.original_data);=0A= =0A= function Grow_inner ()=0A= {=0A= for (var i=3D0; i<data.length; ++i) {=0A= =0A= if (obj.original_data[i] =3D=3D null) {=0A= obj.original_data[i] =3D [];=0A= }=0A= =0A= for (var j=3D0; j<data[i].length; ++j) {=0A= obj.original_data[i][j] =3D ((totalframes - = framenum)/totalframes) * data[i][j];=0A= }=0A= }=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (framenum > 0) {=0A= framenum--;=0A= RGraph.Effects.UpdateCanvas(Grow_inner);=0A= } else if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(Grow_inner);=0A= }=0A= =0A= =0A= /**=0A= * Waterfall Grow=0A= * =0A= * @param object obj The chart object=0A= * @param null Not used=0A= * @param function An optional function which is called when the = animation is finished=0A= */=0A= RGraph.Effects.Waterfall.Grow =3D function (obj)=0A= {=0A= var totalFrames =3D 45;=0A= var numFrame =3D 0;=0A= var data =3D RGraph.array_clone(obj.data);=0A= var callback =3D arguments[2];=0A= =0A= //Reset The data to zeros=0A= for (var i=3D0; i<obj.data.length; ++i) {=0A= obj.data[i] /=3D totalFrames;=0A= }=0A= =0A= /**=0A= * Fix the scale=0A= */=0A= if (obj.Get('chart.ymax') =3D=3D null) {=0A= var max =3D obj.getMax(data);=0A= var scale2 =3D RGraph.getScale2(obj, {'max':max});=0A= obj.Set('chart.ymax', scale2.max);=0A= }=0A= =0A= //obj.Set('chart.multiplier.x', 0);=0A= //obj.Set('chart.multiplier.w', 0);=0A= =0A= function Grow_inner ()=0A= {=0A= for (var i=3D0; i<obj.data.length; ++i) {=0A= obj.data[i] =3D data[i] * (numFrame/totalFrames);=0A= }=0A= =0A= var multiplier =3D Math.pow(Math.sin(((numFrame / = totalFrames) * 90) / (180 / PI)), 20);=0A= //obj.Set('chart.multiplier.x', (numFrame / totalFrames) * = multiplier);=0A= //obj.Set('chart.multiplier.w', (numFrame / totalFrames) * = multiplier);=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (numFrame++ < totalFrames) {=0A= RGraph.Effects.UpdateCanvas(Grow_inner);=0A= } else if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(Grow_inner)=0A= }=0A= =0A= =0A= =0A= /**=0A= * Bar chart Wave effect This effect defaults to 30 frames - which is=0A= * approximately half a second=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.Effects.Bar.Wave2 =3D=0A= RGraph.Effects.Bar.Wave =3D function (obj)=0A= {=0A= var totalframes =3D (arguments[1] && arguments[1].frames) ? = arguments[1].frames : 15;=0A= var original_data =3D [];=0A= =0A= obj.Draw();=0A= //var scale =3D RGraph.getScale2(obj, {'max':obj.max});=0A= obj.Set('chart.ymax', obj.scale2.max);=0A= RGraph.Clear(obj.canvas);=0A= =0A= for (var i=3D0; i<obj.data.length; ++i) {=0A= =0A= (function (idx)=0A= {=0A= original_data[i] =3D obj.data[i];=0A= obj.data[i] =3D typeof(obj.data[i]) =3D=3D 'object' ? [] = : 0;=0A= setTimeout(function () {Iterator(idx, totalframes);}, = 100 * i)=0A= })(i);=0A= }=0A= =0A= function Iterator(idx, frames)=0A= {=0A= if (frames-- > 0) {=0A= =0A= // Update the data point=0A= if (typeof(obj.data[idx]) =3D=3D 'number') {=0A= obj.data[idx] =3D ((totalframes - frames) / = totalframes) * original_data[idx]=0A= =0A= } else if (typeof(obj.data[idx]) =3D=3D 'object') {=0A= for (var k=3D0; k<original_data[idx].length; ++k) {=0A= obj.data[idx][k] =3D ((totalframes - frames) / = totalframes) * original_data[idx][k];=0A= }=0A= }=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= RGraph.Effects.UpdateCanvas(function () {Iterator(idx, = frames);});=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * HProgress Grow effect (which is also the VPogress Grow effect)=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.Effects.VProgress.Grow =3D=0A= RGraph.Effects.HProgress.Grow =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var context =3D obj.context;=0A= var initial_value =3D obj.currentValue;=0A= var numFrames =3D 30;=0A= var currentFrame =3D 0=0A= =0A= if (typeof(obj.value) =3D=3D 'object') {=0A= =0A= if (RGraph.is_null(obj.currentValue)) {=0A= obj.currentValue =3D [];=0A= for (var i=3D0; i<obj.value.length; ++i) {=0A= obj.currentValue[i] =3D 0;=0A= }=0A= }=0A= =0A= var diff =3D [];=0A= var increment =3D [];=0A= =0A= for (var i=3D0; i<obj.value.length; ++i) {=0A= diff[i] =3D obj.value[i] - = Number(obj.currentValue[i]);=0A= increment[i] =3D diff[i] / numFrames;=0A= }=0A= =0A= if (initial_value =3D=3D null) {=0A= initial_value =3D [];=0A= for (var i=3D0; i< obj.value.length; ++i) {=0A= initial_value[i] =3D 0;=0A= }=0A= }=0A= =0A= } else {=0A= =0A= var diff =3D obj.value - Number(obj.currentValue);=0A= var increment =3D diff / numFrames;=0A= }=0A= var callback =3D arguments[2] ? arguments[2] : null;=0A= =0A= function Grow ()=0A= {=0A= currentFrame++;=0A= =0A= if (currentFrame <=3D numFrames) {=0A= =0A= if (typeof(obj.value) =3D=3D 'object') {=0A= obj.value =3D [];=0A= for (var i=3D0; i<initial_value.length; ++i) {=0A= obj.value[i] =3D initial_value[i] + = (increment[i] * currentFrame);=0A= }=0A= } else {=0A= obj.value =3D initial_value + (increment * = currentFrame);=0A= }=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= RGraph.Effects.UpdateCanvas(Grow);=0A= =0A= } else if (callback) {=0A= callback(obj);=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(Grow);=0A= }=0A= =0A= =0A= =0A= /**=0A= * Gantt chart Grow effect=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.Effects.Gantt.Grow =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var context =3D obj.context;=0A= var numFrames =3D 30;=0A= var currentFrame =3D 0;=0A= var callback =3D arguments[2] ? arguments[2] : null;=0A= var events =3D obj.data;=0A= =0A= var original_events =3D RGraph.array_clone(events);=0A= =0A= function Grow_gantt_inner ()=0A= {=0A= if (currentFrame <=3D numFrames) {=0A= // Update the events=0A= for (var i=3D0; i<events.length; ++i) {=0A= if (typeof(events[i][0]) =3D=3D 'object') {=0A= for (var j=3D0; j<events[i].length; ++j) {=0A= events[i][j][1] =3D (currentFrame / = numFrames) * original_events[i][j][1];=0A= }=0A= } else {=0A= =0A= events[i][1] =3D (currentFrame / numFrames) * = original_events[i][1];=0A= }=0A= }=0A= =0A= obj.data =3D events;=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= currentFrame++;=0A= =0A= RGraph.Effects.UpdateCanvas(Grow_gantt_inner);=0A= =0A= } else if (callback) { =0A= callback(obj);=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(Grow_gantt_inner);=0A= }=0A= =0A= =0A= /**=0A= * This is a compatibility hack provided for Opera and Safari which=0A= * don't support ther Javascript 1.8.5 function.bind()=0A= */=0A= if (!Function.prototype.bind) { =0A= Function.prototype.bind =3D function (oThis) { =0A= if (typeof this !=3D=3D "function") { =0A= // closest thing possible to the ECMAScript 5 internal = IsCallable function =0A= if (console && console.log) {=0A= console.log('Function.prototype.bind - what is trying to be = bound is not callable');=0A= }=0A= } =0A= =0A= var aArgs =3D Array.prototype.slice.call(arguments, 1), =0A= fToBind =3D this, =0A= fNOP =3D function () {}, =0A= fBound =3D function () { =0A= return fToBind.apply(this instanceof fNOP =0A= ? this =0A= : oThis || window, =0A= = aArgs.concat(Array.prototype.slice.call(arguments))); =0A= }; =0A= =0A= fNOP.prototype =3D this.prototype; =0A= fBound.prototype =3D new fNOP(); =0A= =0A= return fBound; =0A= }; =0A= }=0A= =0A= =0A= /**=0A= * Rose chart explode=0A= * =0A= * Explodes the Rose chart - gradually incrementing the size of the = chart.explode property=0A= * =0A= * @params object obj The graph object=0A= */=0A= RGraph.Effects.Rose.Explode =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var callback =3D arguments[2] ? arguments[2] : null;=0A= var frames =3D opts['frames'] ? opts['frames'] : 60;=0A= =0A= obj.Set('chart.exploded', 0);=0A= =0A= RGraph.Effects.Animate(obj, {'frames': frames, 'chart.exploded': = Math.min(canvas.width, canvas.height)}, callback);=0A= }=0A= =0A= =0A= /**=0A= * Rose chart implode=0A= * =0A= * Implodes the Rose chart - gradually decreasing the size of the = chart.explode property. It starts at the largest of=0A= * the canvas width./height=0A= * =0A= * @params object obj The graph object=0A= */=0A= RGraph.Effects.Rose.Implode =3D function (obj)=0A= {=0A= var canvas =3D obj.canvas;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var callback =3D arguments[2] ? arguments[2] : null;=0A= var frames =3D opts['frames'] ? opts['frames'] : 60;=0A= =0A= obj.Set('chart.exploded', Math.min(canvas.width, canvas.height));=0A= =0A= RGraph.Effects.Animate(obj, {'frames': frames, 'chart.exploded': = 0}, callback);=0A= }=0A= =0A= =0A= =0A= /**=0A= * Gauge Grow=0A= * =0A= * This effect gradually increases the represented value=0A= * =0A= * @param object obj The chart object=0A= * @param Not used - pass null=0A= * @param function An optional callback function=0A= */=0A= RGraph.Effects.Thermometer.Grow =3D function (obj)=0A= {=0A= var callback =3D arguments[2];=0A= var numFrames =3D 30;=0A= var origValue =3D Number(obj.currentValue);=0A= =0A= if (obj.currentValue =3D=3D null) {=0A= obj.currentValue =3D 0=0A= origValue =3D 0;=0A= }=0A= =0A= var newValue =3D obj.value;=0A= var diff =3D newValue - origValue;=0A= var step =3D (diff / numFrames);=0A= var frame =3D 0;=0A= =0A= function Grow ()=0A= {=0A= frame++=0A= =0A= // Set the new value=0A= obj.value =3D v =3D ((frame / numFrames) * diff) + origValue=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (frame < 30) {=0A= RGraph.Effects.UpdateCanvas(Grow);=0A= } else if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(Grow);=0A= }=0A= =0A= =0A= /**=0A= * Trace=0A= * =0A= * This effect is for the Scatter chart, uses the jQuery library and = slowly=0A= * uncovers the Line/marks, but you can see the background of the = chart.=0A= * =0A= * @param object obj The graph object=0A= * @param object Options - you can specify duration to set how = long the effect lasts for=0A= */=0A= RGraph.Effects.Scatter.jQuery.Trace =3D function (obj)=0A= {=0A= var callback =3D typeof(arguments[2]) =3D=3D 'function' ? = arguments[2] : function () {};=0A= var opt =3D arguments[1] || [];=0A= =0A= if (!opt['duration']) {=0A= opt['duration'] =3D 1500;=0A= }=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= /**=0A= * Create the DIV that the second canvas will sit in=0A= */=0A= var div =3D document.createElement('DIV');=0A= var xy =3D RGraph.getCanvasXY(obj.canvas);=0A= div.id =3D '__rgraph_trace_animation_' + RGraph.random(0, = 4351623) + '__';=0A= div.style.left =3D xy[0] + 'px';=0A= div.style.top =3D xy[1] + 'px';=0A= div.style.width =3D obj.Get('chart.gutter.left');=0A= div.style.height =3D obj.canvas.height + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.overflow =3D 'hidden';=0A= document.body.appendChild(div);=0A= =0A= /**=0A= * Make the second canvas=0A= */=0A= var id =3D '__rgraph_scatter_trace_animation_' + = RGraph.random(0, 99999999) + '__';=0A= var canvas2 =3D document.createElement('CANVAS');=0A= canvas2.width =3D obj.canvas.width;=0A= canvas2.height =3D obj.canvas.height;=0A= canvas2.style.position =3D 'absolute';=0A= canvas2.style.left =3D 0;=0A= canvas2.style.top =3D 0;=0A= =0A= // This stops the clear effect clearing the canvas - which can = happen if you have multiple canvas tags on the page all with=0A= // dynamic effects that do redrawing=0A= canvas2.noclear =3D true;=0A= =0A= canvas2.id =3D id;=0A= div.appendChild(canvas2);=0A= =0A= var reposition_canvas2 =3D function (e)=0A= {=0A= =0A= var xy =3D RGraph.getCanvasXY(obj.canvas);=0A= =0A= div.style.left =3D xy[0] + 'px';=0A= div.style.top =3D xy[1] + 'px';=0A= }=0A= window.addEventListener('resize', reposition_canvas2, false)=0A= =0A= /**=0A= * Make a copy of the original Line object=0A= */=0A= var obj2 =3D new RGraph.Scatter(id, = RGraph.array_clone(obj.data));=0A= =0A= // Remove the new line from the ObjectRegistry so that it isn't = redawn=0A= RGraph.ObjectRegistry.Remove(obj2);=0A= =0A= for (i in obj.properties) {=0A= if (typeof(i) =3D=3D 'string') {=0A= obj2.Set(i, obj.properties[i]);=0A= }=0A= }=0A= =0A= =0A= obj2.Set('chart.labels', []);=0A= obj2.Set('chart.background.grid', false);=0A= obj2.Set('chart.background.barcolor1', 'rgba(0,0,0,0)');=0A= obj2.Set('chart.background.barcolor2', 'rgba(0,0,0,0)');=0A= obj2.Set('chart.ylabels', false);=0A= obj2.Set('chart.noaxes', true);=0A= obj2.Set('chart.title', '');=0A= obj2.Set('chart.title.xaxis', '');=0A= obj2.Set('chart.title.yaxis', '');=0A= obj.Set('chart.key', []);=0A= obj2.Draw();=0A= =0A= =0A= /**=0A= * This effectively hides the line=0A= */=0A= obj.Set('chart.line.visible', false);=0A= =0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= /**=0A= * Place a DIV over the canvas to stop interaction with it=0A= */=0A= if (!obj.canvas.__rgraph_scatter_trace_cover__) {=0A= var div2 =3D document.createElement('DIV');=0A= div2.id =3D '__rgraph_trace_animation_' + = RGraph.random(0, 4351623) + '__';=0A= div2.style.left =3D xy[0] + 'px';=0A= div2.style.top =3D xy[1] + 'px';=0A= div2.style.width =3D obj.canvas.width + 'px';=0A= div2.style.height =3D obj.canvas.height + 'px';=0A= div2.style.position =3D 'absolute';=0A= div2.style.overflow =3D 'hidden';=0A= div2.style.backgroundColor =3D 'rgba(0,0,0,0)';=0A= div.div2 =3D div2;=0A= obj.canvas.__rgraph_scatter_trace_cover__ =3D div2=0A= document.body.appendChild(div2);=0A= } else {=0A= div2 =3D obj.canvas.__rgraph_scatter_trace_cover__;=0A= }=0A= =0A= /**=0A= * Animate the DIV that contains the canvas=0A= */=0A= jQuery('#' + div.id).animate({=0A= width: obj.canvas.width + 'px'=0A= }, opt['duration'], function () {=0A= =0A= // Remove the window resize listener=0A= window.removeEventListener('resize', reposition_canvas2, = false);=0A= =0A= div.style.display =3D 'none';=0A= div2.style.display =3D 'none';=0A= =0A= //div.removeChild(canvas2);=0A= obj.Set('chart.line.visible', true);=0A= =0A= // Revert the colors back to what they were=0A= obj.Set('chart.colors', = RGraph.array_clone(obj2.Get('chart.colors')));=0A= obj.Set('chart.key', = RGraph.array_clone(obj2.Get('chart.key')));=0A= =0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= obj.canvas.__rgraph_trace_cover__ =3D null;=0A= =0A= callback(obj);=0A= });=0A= }=0A= =0A= =0A= =0A= /**=0A= * CornerGauge Grow=0A= * =0A= * This effect gradually increases the represented value=0A= * =0A= * @param object obj The chart object=0A= * @param Not used - pass null=0A= * @param function An optional callback function=0A= */=0A= RGraph.Effects.CornerGauge.Grow =3D function (obj)=0A= {=0A= var callback =3D arguments[2];=0A= var numFrames =3D 30;=0A= var frame =3D 0;=0A= =0A= // Single pointer=0A= if (typeof(obj.value) =3D=3D 'number') {=0A= =0A= var origValue =3D Number(obj.currentValue);=0A= =0A= if (obj.currentValue =3D=3D null) {=0A= obj.currentValue =3D obj.min;=0A= origValue =3D obj.min;=0A= }=0A= =0A= var newValue =3D obj.value;=0A= var diff =3D newValue - origValue;=0A= var step =3D (diff / numFrames);=0A= var frame =3D 0;=0A= =0A= =0A= function Grow_single ()=0A= {=0A= frame++;=0A= =0A= obj.value =3D ((frame / numFrames) * diff) + origValue=0A= =0A= if (obj.value > obj.max) obj.value =3D obj.max;=0A= if (obj.value < obj.min) obj.value =3D obj.min;=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (frame < 30) {=0A= RGraph.Effects.UpdateCanvas(Grow_single);=0A= } else if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= =0A= Grow_single();=0A= =0A= // Multiple pointers=0A= } else {=0A= =0A= if (obj.currentValue =3D=3D null) {=0A= obj.currentValue =3D [];=0A= =0A= for (var i=3D0; i<obj.value.length; ++i) {=0A= obj.currentValue[i] =3D obj.min;=0A= }=0A= =0A= origValue =3D RGraph.array_clone(obj.currentValue);=0A= }=0A= =0A= var origValue =3D RGraph.array_clone(obj.currentValue);=0A= var newValue =3D RGraph.array_clone(obj.value);=0A= var diff =3D [];=0A= var step =3D [];=0A= =0A= for (var i=3D0; i<newValue.length; ++i) {=0A= diff[i] =3D newValue[i] - Number(obj.currentValue[i]);=0A= step[i] =3D (diff[i] / numFrames);=0A= }=0A= =0A= =0A= =0A= function Grow_multiple ()=0A= {=0A= frame++;=0A= =0A= for (var i=3D0; i<obj.value.length; ++i) {=0A= =0A= obj.value[i] =3D ((frame / numFrames) * diff[i]) + = origValue[i];=0A= =0A= if (obj.value[i] > obj.max) obj.value[i] =3D obj.max;=0A= if (obj.value[i] < obj.min) obj.value[i] =3D obj.min;=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= }=0A= =0A= if (frame < 30) {=0A= RGraph.Effects.UpdateCanvas(Grow_multiple);=0A= } else if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= =0A= Grow_multiple();=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * Rose chart Grow=0A= * =0A= * This effect gradually increases the size of the Rose chart=0A= * =0A= * @param object obj The chart object=0A= * @param Not used - pass null=0A= * @param function An optional callback function=0A= */=0A= RGraph.Effects.Rose.Grow =3D function (obj)=0A= {=0A= var callback =3D arguments[2];=0A= var numFrames =3D 60;=0A= var frame =3D 0;=0A= =0A= =0A= function Grow ()=0A= {=0A= frame++;=0A= =0A= obj.Set('chart.animation.grow.multiplier', frame / = numFrames);=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (frame < numFrames) {=0A= ++frame;=0A= RGraph.Effects.UpdateCanvas(Grow);=0A= } else {=0A= obj.Set('chart.animation.grow.multiplier', 1);=0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if (typeof(callback) =3D=3D 'function') {=0A= callback(obj);=0A= }=0A= }=0A= }=0A= =0A= RGraph.Effects.UpdateCanvas(Grow);=0A= }=0A= =0A= =0A= =0A= /**=0A= * Horizontal Scissors (open)=0A= * =0A= * @param object obj The graph object=0A= * @param @object An array of options=0A= * @param function Optional callback function=0A= * =0A= */=0A= RGraph.Effects.jQuery.HScissors.Open =3D function (obj)=0A= {=0A= var canvas =3D obj.isRGraph ? obj.canvas : obj;;=0A= var id =3D canvas.id;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var delay =3D 1000;=0A= var color =3D opts['color'] ? opts['color'] : 'white';=0A= var xy =3D RGraph.getCanvasXY(canvas);=0A= var height =3D canvas.height / 5;=0A= =0A= /**=0A= * First draw the chart=0A= */=0A= RGraph.Clear(canvas);=0A= RGraph.RedrawCanvas(canvas);=0A= =0A= for (var i=3D0; i<5; ++i) {=0A= var div =3D document.getElementById(id + "scissors_" + i)=0A= if (!div) {=0A= var div =3D document.createElement('DIV');=0A= div.id =3D id + 'scissors_' + i;=0A= div.style.width =3D canvas.width + 'px';=0A= div.style.height =3D height + 'px';=0A= div.style.left =3D xy[0] + 'px';=0A= div.style.top =3D (xy[1] + (canvas.height * (i / = 5))) + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.backgroundColor =3D color;=0A= document.body.appendChild(div);=0A= }=0A= =0A= if (i % 2 =3D=3D 0) {=0A= jQuery('#' + id + 'scissors_' + i).animate({left: = canvas.width + 'px', width: 0}, delay);=0A= } else {=0A= jQuery('#' + id + 'scissors_' + i).animate({width: 0}, = delay);=0A= }=0A= }=0A= =0A= setTimeout(function () = {document.body.removeChild(document.getElementById(id + = 'scissors_0'));}, delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById(id + = 'scissors_1'));}, delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById(id + = 'scissors_2'));}, delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById(id + = 'scissors_3'));}, delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById(id + = 'scissors_4'));}, delay);=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * Horizontal Scissors (Close)=0A= * =0A= * @param object obj The graph object=0A= * @param @object An array of options=0A= * @param function Optional callback function=0A= * =0A= */=0A= RGraph.Effects.jQuery.HScissors.Close =3D function (obj)=0A= {=0A= var canvas =3D obj.isRGraph ? obj.canvas : obj;=0A= var id =3D canvas.id;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var delay =3D 1000;=0A= var color =3D opts['color'] ? opts['color'] : 'white';=0A= var xy =3D RGraph.getCanvasXY(canvas);=0A= var height =3D canvas.height / 5;=0A= =0A= /**=0A= * First draw the chart=0A= */=0A= RGraph.Clear(canvas);=0A= RGraph.RedrawCanvas(canvas);=0A= =0A= for (var i=3D0; i<5; ++i) {=0A= var div =3D document.createElement('DIV');=0A= div.id =3D id + '_scissors_' + i;=0A= div.style.width =3D 0;=0A= div.style.height =3D height + 'px';=0A= div.style.left =3D (i % 2 =3D=3D 0 ? xy[0] + = canvas.width : xy[0]) + 'px';=0A= div.style.top =3D (xy[1] + (canvas.height * (i / = 5))) + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.backgroundColor =3D color;=0A= document.body.appendChild(div);=0A= =0A= if (i % 2 =3D=3D 0) {=0A= jQuery('#' + id + '_scissors_' + i).animate({left: xy[0] = + 'px', width: canvas.width + 'px'}, delay);=0A= } else {=0A= jQuery('#' + id + '_scissors_' + i).animate({width: = canvas.width + 'px'}, delay);=0A= }=0A= }=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * Vertical Scissors (open)=0A= * =0A= * @param object obj The graph object=0A= * @param @object An array of options=0A= * @param function Optional callback function=0A= * =0A= */=0A= RGraph.Effects.jQuery.VScissors.Open =3D function (obj)=0A= {=0A= var canvas =3D obj.isRGraph ? obj.canvas : obj;;=0A= var id =3D canvas.id;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var delay =3D 1000;=0A= var color =3D opts['color'] ? opts['color'] : 'white';=0A= var xy =3D RGraph.getCanvasXY(canvas);=0A= var width =3D canvas.width / 5;=0A= =0A= /**=0A= * First draw the chart=0A= */=0A= RGraph.Clear(canvas);=0A= RGraph.RedrawCanvas(canvas);=0A= =0A= for (var i=3D0; i<5; ++i) {=0A= var div =3D document.getElementById(id + "_vscissors_" + i)=0A= if (!div) {=0A= var div =3D document.createElement('DIV');=0A= div.id =3D id + '_vscissors_' + i;=0A= div.style.width =3D width + 'px';=0A= div.style.height =3D canvas.height + 'px';=0A= div.style.left =3D xy[0] + (canvas.width * (i / = 5)) + 'px';=0A= div.style.top =3D xy[1] + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.backgroundColor =3D color;=0A= document.body.appendChild(div);=0A= }=0A= =0A= if (i % 2 =3D=3D 0) {=0A= jQuery('#' + id + '_vscissors_' + i).animate({top: xy[1] = + canvas.height + 'px', height: 0}, delay);=0A= } else {=0A= jQuery('#' + id + '_vscissors_' + i).animate({height: = 0}, delay);=0A= }=0A= }=0A= =0A= setTimeout(function () = {document.body.removeChild(document.getElementById(id + = '_vscissors_0'));}, delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById(id + = '_vscissors_1'));}, delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById(id + = '_vscissors_2'));}, delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById(id + = '_vscissors_3'));}, delay);=0A= setTimeout(function () = {document.body.removeChild(document.getElementById(id + = '_vscissors_4'));}, delay);=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Vertical Scissors (close)=0A= * =0A= * @param object obj The graph object=0A= * @param @object An array of options=0A= * @param function Optional callback function=0A= * =0A= */=0A= RGraph.Effects.jQuery.VScissors.Close =3D function (obj)=0A= {=0A= var canvas =3D obj.isRGraph ? obj.canvas : obj;=0A= var id =3D canvas.id;=0A= var opts =3D arguments[1] ? arguments[1] : [];=0A= var delay =3D 1000;=0A= var color =3D opts['color'] ? opts['color'] : 'white';=0A= var xy =3D RGraph.getCanvasXY(canvas);=0A= var width =3D canvas.width / 5;=0A= =0A= /**=0A= * First draw the chart=0A= */=0A= RGraph.Clear(canvas);=0A= RGraph.RedrawCanvas(canvas);=0A= =0A= for (var i=3D0; i<5; ++i) {=0A= var div =3D document.getElementById(id + "_vscissors_" + i)=0A= if (!div) {=0A= var div =3D document.createElement('DIV');=0A= div.id =3D id + '_vscissors_' + i;=0A= div.style.width =3D width + 'px';=0A= div.style.height =3D 0;=0A= div.style.left =3D xy[0] + (width * i) + 'px';=0A= div.style.top =3D (i % 2 =3D=3D 0 ? xy[1] + = canvas.height : xy[1]) + 'px';=0A= div.style.position =3D 'absolute';=0A= div.style.backgroundColor =3D color;=0A= document.body.appendChild(div);=0A= }=0A= =0A= if (i % 2 =3D=3D 0) {=0A= jQuery('#' + id + '_vscissors_' + i).animate({top: xy[1] = + 'px', height: canvas.height + 'px'}, delay);=0A= } else {=0A= jQuery('#' + id + '_vscissors_' + i).animate({height: = canvas.height + 'px'}, delay);=0A= }=0A= }=0A= =0A= /**=0A= * Callback=0A= */=0A= if (typeof(arguments[2]) =3D=3D 'function') {=0A= setTimeout(arguments[2], delay);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * The effect that gradually fades in the colors=0A= * =0A= * @param object obj The Bar chart object=0A= */=0A= RGraph.Effects.Bar.WaveFadeIn =3D function (obj)=0A= {=0A= var totalframes =3D (arguments[1] && arguments[1].frames) ? = arguments[1].frames : 30;=0A= =0A= for (var i=3D0; i<obj.data.length; ++i) {=0A= =0A= (function (idx)=0A= {=0A= setTimeout(function () {Iterator(idx, totalframes);}, 50 = * i)=0A= })(i);=0A= }=0A= =0A= function Iterator(idx, frames)=0A= {=0A= if (frames-- > 0) {=0A= =0A= // Update the color=0A= if = (obj.properties['chart.colors'][idx].match(/^rgba\(([\d.]+),([\d.]+),([\d= .]+),[\d.]+\)$/)) {=0A= obj.properties['chart.colors'][idx] =3D 'rgba(' + = RegExp.$1 + ',' + RegExp.$2 + ',' + RegExp.$3 + ',' + ((totalframes - = frames) / totalframes) + ')';=0A= }=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= RGraph.Effects.UpdateCanvas(function () {Iterator(idx, = frames);});=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * The effect that gradually fades out the colors=0A= * =0A= * @param object obj The Bar chart object=0A= */=0A= RGraph.Effects.Bar.WaveFadeOut =3D function (obj)=0A= {=0A= var totalframes =3D (arguments[1] && arguments[1].frames) ? = arguments[1].frames : 30;=0A= =0A= for (var i=3D0; i<obj.data.length; ++i) {=0A= =0A= (function (idx)=0A= {=0A= setTimeout(function () {Iterator(idx, totalframes);}, 50 = * i)=0A= })(i);=0A= }=0A= =0A= function Iterator(idx, frames)=0A= {=0A= if (frames-- > 0) {=0A= =0A= // Update the color=0A= if = (obj.properties['chart.colors'][idx].match(/^rgba\(([\d.]+),([\d.]+),([\d= .]+),[\d.]+\)$/)) {=0A= obj.properties['chart.colors'][idx] =3D 'rgba(' + = RegExp.$1 + ',' + RegExp.$2 + ',' + RegExp.$3 + ',' + (1 - = (((totalframes - frames) / totalframes) )) + ')';=0A= }=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.RedrawCanvas(obj.canvas);=0A= RGraph.Effects.UpdateCanvas(function () {Iterator(idx, = frames);});=0A= }=0A= }=0A= }=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries/RGraph.common.key.js /**=0A= * = o------------------------------------------------------------------------= ------o=0A= * | This file is part of the RGraph package - you can learn more at: = |=0A= * | = |=0A= * | http://www.rgraph.net = |=0A= * | = |=0A= * | This package is licensed under the RGraph license. For all kinds = of business |=0A= * | purposes there is a small one-time licensing fee to pay and for = non |=0A= * | commercial purposes it is free to use. You can read the full = license here: |=0A= * | = |=0A= * | http://www.rgraph.net/license = |=0A= * = o------------------------------------------------------------------------= ------o=0A= */=0A= =0A= if (typeof(RGraph) =3D=3D 'undefined') RGraph =3D {};=0A= =0A= /**=0A= * Draws the graph key (used by various graphs)=0A= * =0A= * @param object obj The graph object=0A= * @param array key An array of the texts to be listed in the key=0A= * @param colors An array of the colors to be used=0A= */=0A= RGraph.DrawKey =3D function (obj, key, colors)=0A= {=0A= if (!key) {=0A= return;=0A= }=0A= =0A= var RG =3D RGraph,=0A= ca =3D obj.canvas,=0A= co =3D obj.context,=0A= prop =3D obj.properties,=0A= =0A= // Key positioned in the gutter=0A= keypos =3D prop['chart.key.position'],=0A= textsize =3D prop['chart.text.size'],=0A= key_non_null =3D [],=0A= colors_non_null =3D [];=0A= =0A= co.lineWidth =3D 1;=0A= =0A= co.beginPath();=0A= =0A= /**=0A= * Change the older chart.key.vpos to chart.key.position.y=0A= */=0A= if (typeof(prop['chart.key.vpos']) =3D=3D 'number') {=0A= obj.Set('chart.key.position.y', prop['chart.key.vpos'] * = prop['chart.gutter.top']);=0A= }=0A= =0A= /**=0A= * Account for null values in the key=0A= */=0A= for (var i=3D0; i<key.length; ++i) {=0A= if (key[i] !=3D null) {=0A= colors_non_null.push(colors[i]);=0A= key_non_null.push(key[i]);=0A= }=0A= }=0A= =0A= key =3D key_non_null;=0A= colors =3D colors_non_null;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * This does the actual drawing of the key when it's in the graph=0A= * =0A= * @param object obj The graph object=0A= * @param array key The key items to draw=0A= * @param array colors An aray of colors that the key will use=0A= */=0A= function DrawKey_graph (obj, key, colors)=0A= {=0A= var text_size =3D typeof(prop['chart.key.text.size']) = =3D=3D 'number' ? prop['chart.key.text.size'] : prop['chart.text.size'];=0A= var text_font =3D prop['chart.text.font'];=0A= var gutterLeft =3D obj.gutterLeft;=0A= var gutterRight =3D obj.gutterRight;=0A= var gutterTop =3D obj.gutterTop;=0A= var gutterBottom =3D obj.gutterBottom;=0A= var hpos =3D prop['chart.yaxispos'] =3D=3D 'right' ? = gutterLeft + 10 : ca.width - gutterRight - 10;=0A= var vpos =3D gutterTop + 10;=0A= var title =3D prop['chart.title'];=0A= var blob_size =3D text_size; // The blob of color=0A= var hmargin =3D 8; // This is the size of the gaps = between the blob of color and the text=0A= var vmargin =3D 4; // This is the vertical margin of = the key=0A= var fillstyle =3D prop['chart.key.background'];=0A= var strokestyle =3D '#333';=0A= var height =3D 0;=0A= var width =3D 0;=0A= =0A= if (!obj.coords) obj.coords =3D {};=0A= obj.coords.key =3D [];=0A= =0A= =0A= // Need to set this so that measuring the text works out OK=0A= co.font =3D text_size + 'pt ' + prop['chart.text.font'];=0A= =0A= // Work out the longest bit of text=0A= for (i=3D0; i<key.length; ++i) {=0A= width =3D Math.max(width, co.measureText(key[i]).width);=0A= }=0A= =0A= width +=3D 5;=0A= width +=3D blob_size;=0A= width +=3D 5;=0A= width +=3D 5;=0A= width +=3D 5;=0A= =0A= /**=0A= * Now we know the width, we can move the key left more = accurately=0A= */=0A= if ( prop['chart.yaxispos'] =3D=3D 'left'=0A= || (obj.type =3D=3D 'pie' && !prop['chart.yaxispos'])=0A= || (obj.type =3D=3D 'hbar' && !prop['chart.yaxispos'])=0A= || (obj.type =3D=3D 'hbar' && prop['chart.yaxispos'] = =3D=3D 'center')=0A= || (obj.type =3D=3D 'rscatter' && = !prop['chart.yaxispos'])=0A= || (obj.type =3D=3D 'radar' && !prop['chart.yaxispos'])=0A= || (obj.type =3D=3D 'rose' && !prop['chart.yaxispos'])=0A= || (obj.type =3D=3D 'funnel' && !prop['chart.yaxispos'])=0A= || (obj.type =3D=3D 'vprogress' && = !prop['chart.yaxispos'])=0A= || (obj.type =3D=3D 'hprogress' && = !prop['chart.yaxispos'])=0A= ) {=0A= =0A= hpos -=3D width;=0A= }=0A= =0A= /**=0A= * Horizontal alignment=0A= */=0A= if (typeof(prop['chart.key.halign']) =3D=3D 'string') {=0A= if (prop['chart.key.halign'] =3D=3D 'left') {=0A= hpos =3D gutterLeft + 10;=0A= } else if (prop['chart.key.halign'] =3D=3D 'right') {=0A= hpos =3D ca.width - gutterRight - width;=0A= }=0A= }=0A= =0A= /**=0A= * Specific location coordinates=0A= */=0A= if (typeof(prop['chart.key.position.x']) =3D=3D 'number') {=0A= hpos =3D prop['chart.key.position.x'];=0A= }=0A= =0A= if (typeof(prop['chart.key.position.y']) =3D=3D 'number') {=0A= vpos =3D prop['chart.key.position.y'];=0A= }=0A= =0A= =0A= // Stipulate the shadow for the key box=0A= if (prop['chart.key.shadow']) {=0A= co.shadowColor =3D prop['chart.key.shadow.color'];=0A= co.shadowBlur =3D prop['chart.key.shadow.blur'];=0A= co.shadowOffsetX =3D prop['chart.key.shadow.offsetx'];=0A= co.shadowOffsetY =3D prop['chart.key.shadow.offsety'];=0A= }=0A= =0A= =0A= =0A= =0A= // Draw the box that the key resides in=0A= co.beginPath();=0A= co.fillStyle =3D prop['chart.key.background'];=0A= co.strokeStyle =3D 'black';=0A= =0A= if (typeof(prop['chart.key.position.graph.boxed']) =3D=3D = 'undefined' || (typeof(prop['chart.key.position.graph.boxed']) =3D=3D = 'boolean' && prop['chart.key.position.graph.boxed']) ) {=0A= if (arguments[3] !=3D false) {=0A= =0A= co.lineWidth =3D typeof(prop['chart.key.linewidth']) = =3D=3D 'number' ? prop['chart.key.linewidth'] : 1;=0A= =0A= // The older square rectangled key=0A= if (prop['chart.key.rounded'] =3D=3D true) {=0A= co.beginPath();=0A= co.strokeStyle =3D strokestyle;=0A= RG.strokedCurvyRect(co, Math.round(hpos), = Math.round(vpos), width - 5, 5 + ( (text_size + 5) * = RG.getKeyLength(key)),4);=0A= co.stroke();=0A= co.fill();=0A= =0A= RG.NoShadow(obj);=0A= =0A= } else {=0A= co.strokeRect(Math.round(hpos), = Math.round(vpos), width - 5, 5 + ( (text_size + 5) * = RG.getKeyLength(key)));=0A= co.fillRect(Math.round(hpos), Math.round(vpos), = width - 5, 5 + ( (text_size + 5) * RG.getKeyLength(key)));=0A= }=0A= }=0A= }=0A= =0A= RG.NoShadow(obj);=0A= =0A= co.beginPath();=0A= =0A= /**=0A= * Custom colors for the key=0A= */=0A= if (prop['chart.key.colors']) {=0A= colors =3D prop['chart.key.colors'];=0A= }=0A= =0A= =0A= =0A= = /////////////////////////////////////////////////////////////////////////= ///////////////////=0A= =0A= =0A= =0A= // Draw the labels given=0A= for (var i=3Dkey.length - 1; i>=3D0; i--) {=0A= =0A= var j =3D Number(i) + 1;=0A= =0A= /**=0A= * Draw the blob of color=0A= */=0A= if (typeof(prop['chart.key.color.shape']) =3D=3D = 'object' && typeof(prop['chart.key.color.shape'][i]) =3D=3D 'string') {=0A= var blob_shape =3D = prop['chart.key.color.shape'][i];=0A= =0A= } else if (typeof(prop['chart.key.color.shape']) = =3D=3D 'string') {=0A= var blob_shape =3D prop['chart.key.color.shape'];=0A= } else {=0A= var blob_shape =3D 'square';=0A= }=0A= =0A= if (blob_shape =3D=3D 'circle') {=0A= co.beginPath();=0A= co.fillStyle =3D colors[i];=0A= co.arc(hpos + 5 + (blob_size / 2), vpos + (5 = * j) + (text_size * j) - text_size + (blob_size / 2), blob_size / 2, 0, = 6.26, 0);=0A= co.fill();=0A= =0A= } else if (blob_shape =3D=3D 'line') {=0A= co.beginPath();=0A= co.strokeStyle =3D colors[i];=0A= co.moveTo(hpos + 5, vpos + (5 * j) + = (text_size * j) - text_size + (blob_size / 2));=0A= co.lineTo(hpos + blob_size + 5, vpos + (5 * = j) + (text_size * j) - text_size + (blob_size / 2));=0A= co.stroke();=0A= =0A= } else if (blob_shape =3D=3D 'triangle') {=0A= co.beginPath();=0A= co.strokeStyle =3D colors[i];=0A= co.moveTo(hpos + 5, vpos + (5 * j) + = (text_size * j) - text_size + blob_size);=0A= co.lineTo(hpos + (blob_size / 2) + 5, vpos + = (5 * j) + (text_size * j) - text_size );=0A= co.lineTo(hpos + blob_size + 5, vpos + (5 * = j) + (text_size * j) - text_size + blob_size);=0A= co.closePath();=0A= co.fillStyle =3D colors[i];=0A= co.fill();=0A= =0A= } else {=0A= co.fillStyle =3D colors[i];=0A= co.fillRect(hpos + 5, vpos + (5 * j) + = (text_size * j) - text_size, text_size, text_size + 1);=0A= }=0A= =0A= = /////////////////////////////////////////////////////////////////////////= //////////////////////////////////=0A= =0A= =0A= =0A= co.beginPath();=0A= co.fillStyle =3D 'black';=0A= =0A= ret =3D RG.Text2(obj, {'font': text_font,=0A= 'size': text_size,=0A= 'x': hpos + blob_size + 5 + 5,=0A= 'y': vpos + (5 * j) + = (text_size * j) + 3,=0A= 'text': key[i]});=0A= =0A= obj.coords.key[i] =3D [ret.x, ret.y, ret.width, = ret.height, key[i], colors[i], obj];=0A= }=0A= co.fill();=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * This does the actual drawing of the key when it's in the gutter=0A= * =0A= * @param object obj The graph object=0A= * @param array key The key items to draw=0A= * @param array colors An aray of colors that the key will use=0A= */=0A= function DrawKey_gutter (obj, key, colors)=0A= {=0A= var text_size =3D typeof(prop['chart.key.text.size']) = =3D=3D 'number' ? prop['chart.key.text.size'] : prop['chart.text.size'],=0A= text_font =3D prop['chart.text.font'],=0A= gutterLeft =3D obj.gutterLeft,=0A= gutterRight =3D obj.gutterRight,=0A= gutterTop =3D obj.gutterTop,=0A= gutterBottom =3D obj.gutterBottom,=0A= hpos =3D ((ca.width - gutterLeft - gutterRight) = / 2) + obj.gutterLeft,=0A= vpos =3D gutterTop - text_size - 5,=0A= title =3D prop['chart.title'],=0A= blob_size =3D text_size, // The blob of color=0A= hmargin =3D 8, // This is the size of the gaps = between the blob of color and the text=0A= vmargin =3D 4, // This is the vertical margin of = the key=0A= fillstyle =3D prop['chart.key.background'],=0A= strokestyle =3D '#999',=0A= length =3D 0;=0A= =0A= if (!obj.coords) obj.coords =3D {};=0A= obj.coords.key =3D [];=0A= =0A= =0A= =0A= // Need to work out the length of the key first=0A= co.font =3D text_size + 'pt ' + text_font;=0A= for (i=3D0; i<key.length; ++i) {=0A= length +=3D hmargin;=0A= length +=3D blob_size;=0A= length +=3D hmargin;=0A= length +=3D co.measureText(key[i]).width;=0A= }=0A= length +=3D hmargin;=0A= =0A= =0A= =0A= =0A= /**=0A= * Work out hpos since in the Pie it isn't necessarily dead = center=0A= */=0A= if (obj.type =3D=3D 'pie') {=0A= if (prop['chart.align'] =3D=3D 'left') {=0A= var hpos =3D obj.radius + gutterLeft;=0A= =0A= } else if (prop['chart.align'] =3D=3D 'right') {=0A= var hpos =3D ca.width - obj.radius - gutterRight;=0A= =0A= } else {=0A= hpos =3D ca.width / 2;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * This makes the key centered=0A= */ =0A= hpos -=3D (length / 2);=0A= =0A= =0A= /**=0A= * Override the horizontal/vertical positioning=0A= */=0A= if (typeof(prop['chart.key.position.x']) =3D=3D 'number') {=0A= hpos =3D prop['chart.key.position.x'];=0A= }=0A= if (typeof(prop['chart.key.position.y']) =3D=3D 'number') {=0A= vpos =3D prop['chart.key.position.y'];=0A= }=0A= =0A= =0A= =0A= /**=0A= * Draw the box that the key sits in=0A= */=0A= if (obj.Get('chart.key.position.gutter.boxed')) {=0A= =0A= if (prop['chart.key.shadow']) {=0A= co.shadowColor =3D prop['chart.key.shadow.color'];=0A= co.shadowBlur =3D prop['chart.key.shadow.blur'];=0A= co.shadowOffsetX =3D = prop['chart.key.shadow.offsetx'];=0A= co.shadowOffsetY =3D = prop['chart.key.shadow.offsety'];=0A= }=0A= =0A= =0A= co.beginPath();=0A= co.fillStyle =3D fillstyle;=0A= co.strokeStyle =3D strokestyle;=0A= =0A= if (prop['chart.key.rounded']) {=0A= RG.strokedCurvyRect(co, hpos, vpos - vmargin, = length, text_size + vmargin + vmargin)=0A= // Odd... RG.filledCurvyRect(co, hpos, vpos - = vmargin, length, text_size + vmargin + vmargin);=0A= } else {=0A= co.rect(hpos, vpos - vmargin, length, text_size = + vmargin + vmargin);=0A= }=0A= =0A= co.stroke();=0A= co.fill();=0A= =0A= =0A= RG.NoShadow(obj);=0A= }=0A= =0A= =0A= /**=0A= * Draw the blobs of color and the text=0A= */=0A= =0A= // Custom colors for the key=0A= if (prop['chart.key.colors']) {=0A= colors =3D prop['chart.key.colors'];=0A= }=0A= =0A= for (var i=3D0, pos=3Dhpos; i<key.length; ++i) {=0A= pos +=3D hmargin;=0A= =0A= =0A= =0A= = /////////////////////////////////////////////////////////////////////////= /////////////////////////////=0A= =0A= =0A= =0A= // Draw the blob of color=0A= if (typeof(prop['chart.key.color.shape']) =3D=3D = 'object' && typeof(prop['chart.key.color.shape'][i]) =3D=3D 'string') {=0A= var blob_shape =3D prop['chart.key.color.shape'][i];=0A= =0A= } else if (typeof(prop['chart.key.color.shape']) =3D=3D = 'string') {=0A= var blob_shape =3D prop['chart.key.color.shape'];=0A= =0A= } else {=0A= var blob_shape =3D 'square';=0A= }=0A= =0A= =0A= /**=0A= * Draw the blob of color - line=0A= */=0A= if (blob_shape =3D=3D'line') {=0A= =0A= co.beginPath();=0A= co.strokeStyle =3D colors[i];=0A= co.moveTo(pos, vpos + (blob_size / 2));=0A= co.lineTo(pos + blob_size, vpos + (blob_size / = 2));=0A= co.stroke();=0A= =0A= // Circle=0A= } else if (blob_shape =3D=3D 'circle') {=0A= =0A= co.beginPath();=0A= co.fillStyle =3D colors[i];=0A= co.moveTo(pos, vpos + (blob_size / 2));=0A= co.arc(pos + (blob_size / 2), vpos + (blob_size = / 2), (blob_size / 2), 0, 6.28, 0);=0A= co.fill();=0A= =0A= } else if (blob_shape =3D=3D 'triangle') {=0A= =0A= co.fillStyle =3D colors[i];=0A= co.beginPath();=0A= co.strokeStyle =3D colors[i];=0A= co.moveTo(pos, vpos + blob_size);=0A= co.lineTo(pos + (blob_size / 2), vpos);=0A= co.lineTo(pos + blob_size, vpos + blob_size);=0A= co.closePath();=0A= co.fill();=0A= =0A= } else {=0A= =0A= co.beginPath();=0A= co.fillStyle =3D colors[i];=0A= co.rect(pos, vpos, blob_size, blob_size);=0A= co.fill();=0A= }=0A= =0A= =0A= =0A= = /////////////////////////////////////////////////////////////////////////= /////////////////////////////=0A= =0A= =0A= =0A= =0A= pos +=3D blob_size;=0A= =0A= pos +=3D hmargin;=0A= =0A= co.beginPath();=0A= co.fillStyle =3D 'black';=0A= var ret =3D RG.Text2(obj, = {'font':text_font,'size':text_size,'x':pos,'y':vpos + text_size + 3, = 'text': key[i]});=0A= co.fill();=0A= pos +=3D co.measureText(key[i]).width;=0A= =0A= obj.coords.key[i] =3D [ret.x, ret.y, ret.width, = ret.height, key[i], colors[i], obj];=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= if (keypos && keypos =3D=3D 'gutter') {=0A= DrawKey_gutter(obj, key, colors);=0A= } else if (keypos && keypos =3D=3D 'graph') {=0A= DrawKey_graph(obj, key, colors);=0A= } else {=0A= alert('[COMMON] (' + obj.id + ') Unknown key position: ' + = keypos);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= if (prop['chart.key.interactive']) {=0A= =0A= if (!RGraph.Drawing || !RGraph.Drawing.Rect) {=0A= alert('[INTERACTIVE KEY] The drawing API Rect library = does not appear to have been included (which the interactive key uses)');=0A= }=0A= =0A= =0A= =0A= /**=0A= * Check that the RGraph.common.dynamic.js file has been = included=0A= */=0A= if (!RGraph.InstallWindowMousedownListener) {=0A= alert('[INTERACTIVE KEY] The dynamic library does not = appear to have been included');=0A= }=0A= =0A= =0A= =0A= // Determine the maximum width of the labels=0A= for (var i=3D0,len=3Dobj.coords.key.length,maxlen=3D0; = i<len; i+=3D1) {=0A= maxlen =3D Math.max(maxlen, obj.coords.key[i][2]);=0A= }=0A= =0A= =0A= obj.coords.key.forEach(function (value, index, arr)=0A= {=0A= =0A= var rect =3D new RGraph.Drawing.Rect(obj.id,value[0], = value[1], prop['chart.key.position'] =3D=3D 'gutter' ? value[2] : = maxlen, value[3])=0A= .Set('fillstyle', 'rgba(0,0,0,0)')=0A= .Draw();=0A= =0A= rect.onclick =3D function (e, shape)=0A= {=0A= var co =3D rect.context;=0A= =0A= co.fillStyle =3D = prop['chart.key.interactive.highlight.label'];=0A= co.fillRect(shape.x, shape.y, shape.width, = shape.height);=0A= =0A= if (typeof obj.interactiveKeyHighlight =3D=3D = 'function') {=0A= =0A= obj.Set('chart.key.interactive.index', index);=0A= =0A= RG.FireCustomEvent(obj, = 'onbeforeinteractivekey');=0A= obj.interactiveKeyHighlight(index);=0A= RG.FireCustomEvent(obj, 'onafterinteractivekey');=0A= }=0A= }=0A= =0A= rect.onmousemove =3D function (e, shape)=0A= {=0A= e.target.style.cursor =3D 'pointer';=0A= }=0A= });=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * Returns the key length, but accounts for null values=0A= * =0A= * @param array key The key elements=0A= */=0A= RGraph.getKeyLength =3D function (key)=0A= {=0A= var len =3D 0;=0A= =0A= for (var i=3D0; i<key.length; ++i) {=0A= if (key[i] !=3D null) {=0A= ++len;=0A= }=0A= }=0A= =0A= return len;=0A= }=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries/RGraph.common.dynamic.js /**=0A= * = o------------------------------------------------------------------------= ------o=0A= * | This file is part of the RGraph package - you can learn more at: = |=0A= * | = |=0A= * | http://www.rgraph.net = |=0A= * | = |=0A= * | This package is licensed under the RGraph license. For all kinds = of business |=0A= * | purposes there is a small one-time licensing fee to pay and for = non |=0A= * | commercial purposes it is free to use. You can read the full = license here: |=0A= * | = |=0A= * | http://www.rgraph.net/license = |=0A= * = o------------------------------------------------------------------------= ------o=0A= */=0A= =0A= /**=0A= * Initialise the various objects=0A= */=0A= if (typeof(RGraph) =3D=3D 'undefined') RGraph =3D = {isRGraph:true,type:'common'};=0A= =0A= =0A= =0A= /**=0A= * This is the window click event listener. It redraws all canvas = tags on the page.=0A= */=0A= RGraph.InstallWindowMousedownListener =3D function (obj)=0A= {=0A= if (!window.__rgraph_mousedown_event_listener_installed__) {=0A= var func =3D function (e)=0A= {=0A= /**=0A= * For firefox add the window.event object=0A= */=0A= if (navigator.userAgent.indexOf('Firefox') >=3D 0) = window.event =3D e;=0A= =0A= e =3D RGraph.FixEventObject(e);=0A= =0A= =0A= /**=0A= * First fire the user specified = window.onmousedown_rgraph listener if there is any.=0A= */=0A= =0A= if (typeof(window.onmousedown_rgraph) =3D=3D 'function') = {=0A= window.onmousedown_rgraph(e);=0A= }=0A= =0A= if (RGraph.HideTooltip && = RGraph.Registry.Get('chart.tooltip')) {=0A= = RGraph.Clear(RGraph.Registry.Get('chart.tooltip').__canvas__);=0A= RGraph.Redraw();=0A= RGraph.HideTooltip();=0A= }=0A= }=0A= window.addEventListener('mousedown', func, false);=0A= =0A= // Set this so the event listener isnt repeatedly installed=0A= window.__rgraph_mousedown_event_listener_installed__ =3D = func;=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * This is the window click event listener. It redraws all canvas = tags on the page.=0A= */=0A= RGraph.InstallWindowMouseupListener =3D function (obj)=0A= {=0A= if (!window.__rgraph_mouseup_event_listener_installed__) {=0A= var func =3D function (e)=0A= {=0A= /**=0A= * For firefox add the window.event object=0A= */=0A= if (navigator.userAgent.indexOf('Firefox') >=3D 0) = window.event =3D e;=0A= =0A= e =3D RGraph.FixEventObject(e);=0A= =0A= =0A= /**=0A= * Stop any annotating that may be going on=0A= */=0A= if (RGraph.Annotating_window_onmouseup) {=0A= RGraph.Annotating_window_onmouseup(e);=0A= return;=0A= }=0A= =0A= /**=0A= * First fire the user specified window.onmouseup_rgraph = listener if there is any=0A= */=0A= if (typeof(window.onmouseup_rgraph) =3D=3D 'function') {=0A= window.onmouseup_rgraph(e);=0A= }=0A= =0A= /**=0A= * End adjusting=0A= */=0A= if (RGraph.Registry.Get('chart.adjusting') || = RGraph.Registry.Get('chart.adjusting.gantt')) {=0A= = RGraph.FireCustomEvent(RGraph.Registry.Get('chart.adjusting'), = 'onadjustend');=0A= }=0A= =0A= RGraph.Registry.Set('chart.adjusting', null);=0A= RGraph.Registry.Set('chart.adjusting.shape', null);=0A= RGraph.Registry.Set('chart.adjusting.gantt', null);=0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= // Finally, redraw the chart=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= =0A= var tags =3D document.getElementsByTagName('canvas');=0A= for (var i=3D0; i<tags.length; ++i) {=0A= if (tags[i].__object__ && = tags[i].__object__.isRGraph) {=0A= if = (!tags[i].__object__.Get('chart.annotatable')) {=0A= if (!tags[i].__rgraph_trace_cover__ && = !noredraw) {=0A= RGraph.Clear(tags[i]);=0A= } else {=0A= var noredraw =3D true;=0A= }=0A= }=0A= }=0A= }=0A= =0A= if (!noredraw) {=0A= RGraph.Redraw();=0A= }=0A= }=0A= window.addEventListener('mouseup', func, false);=0A= =0A= // Set this so the event listener isn't repeatedly installed=0A= window.__rgraph_mouseup_event_listener_installed__ =3D func;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * This is the canvas mouseup event listener. It installs the mouseup = event for the=0A= * canvas. The mouseup event then checks the relevant object.=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.InstallCanvasMouseupListener =3D function (obj)=0A= {=0A= if (!obj.canvas.__rgraph_mouseup_event_listener_installed__) {=0A= var func =3D function (e)=0A= {=0A= /**=0A= * For firefox add the window.event object=0A= */=0A= if (navigator.userAgent.indexOf('Firefox') >=3D 0) = window.event =3D e;=0A= =0A= e =3D RGraph.FixEventObject(e);=0A= =0A= =0A= /**=0A= * First fire the user specified onmouseup listener if = there is any=0A= */=0A= if (typeof(e.target.onmouseup_rgraph) =3D=3D 'function') = {=0A= e.target.onmouseup_rgraph(e);=0A= }=0A= =0A= =0A= // = *************************************************************************=0A= // Tooltips=0A= // = *************************************************************************=0A= =0A= =0A= // This causes things at the edge of the chart area - eg = line chart hotspots - not to fire because the=0A= // cursor is out of the chart area=0A= var objects =3D RGraph.ObjectRegistry.getObjectsByXY(e);=0A= //var objects =3D = RGraph.ObjectRegistry.getObjectsByCanvasID(e.target.id);=0A= =0A= if (objects) {=0A= for (var i=3D0; i<objects.length; ++i) {=0A= =0A= var obj =3D objects[i];=0A= var id =3D objects[i].id;=0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= // Tooltips=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= =0A= =0A= if (!RGraph.is_null(obj) && RGraph.Tooltip) {=0A= =0A= var shape =3D obj.getShape(e);=0A= =0A= if (shape && shape['tooltip']) {=0A= =0A= var text =3D shape['tooltip'];=0A= =0A= if (text) {=0A= =0A= var type =3D shape['object'].type;=0A= =0A= if ( type =3D=3D 'line'=0A= || type =3D=3D 'rscatter'=0A= || (type =3D=3D 'scatter' && = !obj.Get('chart.boxplot'))=0A= || type =3D=3D 'radar') {=0A= =0A= var canvasXY =3D = RGraph.getCanvasXY(obj.canvas);=0A= var x =3D canvasXY[0] + = shape['x'];=0A= var y =3D canvasXY[1] + = shape['y'];=0A= =0A= } else {=0A= var x =3D e.pageX;=0A= var y =3D e.pageY;=0A= }=0A= =0A= // Taken out November 2012=0A= //if = (obj.Get('chart.tooltips.coords.page')) {=0A= // var x =3D e.pageX;=0A= // var y =3D e.pageY;=0A= //}=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.Redraw();=0A= obj.Highlight(shape);=0A= = RGraph.Registry.Set('chart.tooltip.shape', shape);=0A= RGraph.Tooltip(obj, text, x, y, = shape['index'], e);=0A= =0A= // Add the shape that triggered the = tooltip=0A= if = (RGraph.Registry.Get('chart.tooltip')) {=0A= = RGraph.Registry.Get('chart.tooltip').__shape__ =3D shape;=0A= =0A= RGraph.EvaluateCursor(e);=0A= }=0A= =0A= e.cancelBubble =3D true;=0A= e.stopPropagation();=0A= return false;=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= // Adjusting=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= =0A= =0A= =0A= if (RGraph.Registry.Get('chart.adjusting') || = RGraph.Registry.Get('chart.adjusting.gantt')) {=0A= = RGraph.FireCustomEvent(RGraph.Registry.Get('chart.adjusting'), = 'onadjustend');=0A= }=0A= =0A= RGraph.Registry.Set('chart.adjusting', null);=0A= RGraph.Registry.Set('chart.adjusting.shape', = null);=0A= RGraph.Registry.Set('chart.adjusting.gantt', = null);=0A= =0A= /**=0A= * If the mouse pointer is over a "front" chart = this prevents charts behind it=0A= * from firing their events.=0A= */=0A= if (shape || (obj.overChartArea && = obj.overChartArea(e)) ) {=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= obj.canvas.addEventListener('mouseup', func, false);=0A= =0A= // Set this so the canvas mouseup event listener isn't = repeatedly installed=0A= obj.canvas.__rgraph_mouseup_event_listener_installed__ =3D = func;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This is the canvas mousemove event listener.=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.InstallCanvasMousemoveListener =3D function (obj)=0A= {=0A= if (!obj.canvas.__rgraph_mousemove_event_listener_installed__) {=0A= var func =3D function (e)=0A= {=0A= /**=0A= * For firefox add the window.event object=0A= */=0A= if (navigator.userAgent.indexOf('Firefox') >=3D 0) = window.event =3D e;=0A= e =3D RGraph.FixEventObject(e);=0A= =0A= =0A= =0A= /**=0A= * First fire the user specified onmousemove listener if = there is any=0A= */=0A= if (typeof(e.target.onmousemove_rgraph) =3D=3D = 'function') {=0A= e.target.onmousemove_rgraph(e);=0A= }=0A= =0A= =0A= =0A= /**=0A= * Go through all the objects and check them to see if = anything needs doing=0A= */=0A= var objects =3D RGraph.ObjectRegistry.getObjectsByXY(e);=0A= //var objects =3D = RGraph.ObjectRegistry.getObjectsByCanvasID(e.target.id);=0A= =0A= if (objects && objects.length) {=0A= for (var i=3D0; i<objects.length; ++i) {=0A= =0A= var obj =3D objects[i];=0A= var id =3D obj.id;=0A= =0A= if (!obj.getShape) {=0A= continue;=0A= }=0A= =0A= var shape =3D obj.getShape(e);=0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= // This facilitates the chart.events.mousemove = option=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= =0A= var func =3D obj.Get('chart.events.mousemove');=0A= =0A= if (!func && typeof(obj.onmousemove) =3D=3D = 'function') {=0A= var func =3D obj.onmousemove;=0A= }=0A= =0A= /**=0A= * =0A= */=0A= if (shape) {=0A= var index =3D shape['object'].type =3D=3D = 'scatter' ? shape['index_adjusted'] : shape['index'];=0A= if (typeof(obj['$' + index]) =3D=3D 'object' = && typeof(obj['$' + index].onmousemove) =3D=3D 'function') {=0A= var func2 =3D obj['$' + = index].onmousemove;=0A= }=0A= }=0A= =0A= /**=0A= * This bit saves the current pointer style if = there isn't one already saved=0A= */=0A= if (shape && (typeof(func) =3D=3D 'function' || = typeof(func2) =3D=3D 'function')) {=0A= =0A= if = (obj.Get('chart.events.mousemove.revertto') =3D=3D null) {=0A= = obj.Set('chart.events.mousemove.revertto', e.target.style.cursor);=0A= }=0A= =0A= if (typeof(func) =3D=3D 'function') = func(e, shape);=0A= if (typeof(func2) =3D=3D 'function') = func2(e, shape);=0A= =0A= //return;=0A= =0A= } else if = (typeof(obj.Get('chart.events.mousemove.revertto')) =3D=3D 'string') {=0A= =0A= RGraph.cursor.push('default');=0A= obj.Set('chart.events.mousemove.revertto', = null);=0A= }=0A= =0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= // Tooltips=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= =0A= =0A= if ( shape=0A= && (obj.Get('chart.tooltips') && = obj.Get('chart.tooltips')[shape['index']] || shape['tooltip'])=0A= && (obj.Get('chart.tooltips.event') =3D=3D = 'onmousemove' || obj.Get('chart.tooltips.event') =3D=3D 'mousemove')=0A= && = (RGraph.is_null(RGraph.Registry.Get('chart.tooltip')) || = RGraph.Registry.Get('chart.tooltip').__index__ !=3D shape['index'] || = (typeof(shape['dataset']) =3D=3D 'number' && shape['dataset'] !=3D = RGraph.Registry.Get('chart.tooltip').__shape__['dataset']) || obj.uid = !=3D RGraph.Registry.Get('chart.tooltip').__object__.uid)=0A= ) {=0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.Redraw();=0A= = obj.canvas.__rgraph_mouseup_event_listener_installed__(e);=0A= =0A= return;=0A= }=0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= // Adjusting=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= =0A= =0A= if (obj && obj.Get('chart.adjustable')) {=0A= obj.Adjusting_mousemove(e);=0A= }=0A= =0A= =0A= /**=0A= * This facilitates breaking out of the loop when = a shape has been found - =0A= * ie the cursor is over a shape an upper chart=0A= */=0A= if (shape || (obj.overChartArea && = obj.overChartArea(e) )) {=0A= break;=0A= }=0A= }=0A= }=0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= // Crosshairs=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= =0A= =0A= if (e.target && e.target.__object__ && = e.target.__object__.Get('chart.crosshairs')) {=0A= RGraph.DrawCrosshairs(e, e.target.__object__);=0A= }=0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= // Interactive key=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= =0A= =0A= if (typeof(InteractiveKey_line_mousemove) =3D=3D = 'function') InteractiveKey_line_mousemove(e);=0A= if (typeof(InteractiveKey_pie_mousemove) =3D=3D = 'function') InteractiveKey_pie_mousemove(e);=0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= // Annotating=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D //=0A= =0A= =0A= if (e.target.__object__ && = e.target.__object__.Get('chart.annotatable') && = RGraph.Annotating_canvas_onmousemove) {=0A= RGraph.Annotating_canvas_onmousemove(e);=0A= }=0A= =0A= =0A= =0A= /**=0A= * Determine the pointer=0A= */=0A= RGraph.EvaluateCursor(e);=0A= }=0A= obj.canvas.addEventListener('mousemove', func, false);=0A= =0A= // Set this so the event listener isn't constantly added=0A= obj.canvas.__rgraph_mousemove_event_listener_installed__ =3D = func;=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * This is the canvas mousedown event listener.=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.InstallCanvasMousedownListener =3D function (obj)=0A= {=0A= if (!obj.canvas.__rgraph_mousedown_event_listener_installed__) {=0A= var func =3D function (e)=0A= {=0A= /**=0A= * For firefox add the window.event object=0A= */=0A= if (navigator.userAgent.indexOf('Firefox') >=3D 0) = window.event =3D e;=0A= =0A= e =3D RGraph.FixEventObject(e);=0A= =0A= =0A= /**=0A= * First fire the user specified onmousedown listener if = there is any=0A= */=0A= if (typeof(e.target.onmousedown_rgraph) =3D=3D = 'function') {=0A= e.target.onmousedown_rgraph(e);=0A= }=0A= =0A= /**=0A= * Annotating=0A= */=0A= if (e.target.__object__ && = e.target.__object__.Get('chart.annotatable') && = RGraph.Annotating_canvas_onmousedown) {=0A= RGraph.Annotating_canvas_onmousedown(e);=0A= return;=0A= }=0A= =0A= var obj =3D RGraph.ObjectRegistry.getObjectByXY(e);=0A= =0A= if (obj) {=0A= =0A= var id =3D obj.id;=0A= =0A= = /*************************************************************=0A= * Handle adjusting for all object types=0A= = *************************************************************/=0A= if (obj && obj.isRGraph && = obj.Get('chart.adjustable')) {=0A= =0A= /**=0A= * Check the cursor is in the correct area=0A= */=0A= var obj =3D = RGraph.ObjectRegistry.getObjectByXY(e);=0A= =0A= if (obj && obj.isRGraph) {=0A= =0A= // If applicable, get the appropriate shape = and store it in the registry=0A= switch (obj.type) {=0A= case 'bar': var shape =3D = obj.getShapeByX(e); break;=0A= case 'gantt':=0A= var shape =3D obj.getShape(e);=0A= if (shape) {=0A= var mouseXY =3D = RGraph.getMouseXY(e);=0A= = RGraph.Registry.Set('chart.adjusting.gantt', {=0A= = 'index': shape['index'],=0A= = 'object': obj,=0A= = 'mousex': mouseXY[0],=0A= = 'mousey': mouseXY[1],=0A= = 'event_start': obj.data[shape['index']][0],=0A= = 'event_duration': obj.data[shape['index']][1],=0A= = 'mode': (mouseXY[0] > (shape['x'] + shape['width'] - 5) ? = 'resize' : 'move'),=0A= = 'shape': shape=0A= = });=0A= }=0A= break;=0A= case 'line': var shape =3D = obj.getShape(e); break;=0A= default: var shape =3D null;=0A= }=0A= =0A= RGraph.Registry.Set('chart.adjusting.shape', = shape);=0A= =0A= =0A= // Fire the onadjustbegin event=0A= RGraph.FireCustomEvent(obj, 'onadjustbegin');=0A= =0A= RGraph.Registry.Set('chart.adjusting', obj);=0A= =0A= =0A= // Liberally redraw the canvas=0A= RGraph.Clear(obj.canvas);=0A= RGraph.Redraw();=0A= =0A= // Call the mousemove event listener so that = the canvas is adjusted even though the mouse isn't moved=0A= = obj.canvas.__rgraph_mousemove_event_listener_installed__(e);=0A= }=0A= }=0A= =0A= =0A= RGraph.Clear(obj.canvas);=0A= RGraph.Redraw();=0A= }=0A= }=0A= obj.canvas.addEventListener('mousedown', func, false);=0A= =0A= obj.canvas.__rgraph_mousedown_event_listener_installed__ =3D = func;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * This is the canvas click event listener. Used by the pseudo event = listener=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.InstallCanvasClickListener =3D function (obj)=0A= {=0A= if (!obj.canvas.__rgraph_click_event_listener_installed__) {=0A= var func =3D function (e)=0A= {=0A= /**=0A= * For firefox add the window.event object=0A= */=0A= if (navigator.userAgent.indexOf('Firefox') >=3D 0) = window.event =3D e;=0A= =0A= e =3D RGraph.FixEventObject(e);=0A= =0A= =0A= /**=0A= * First fire the user specified onmousedown listener if = there is any=0A= */=0A= if (typeof(e.target.onclick_rgraph) =3D=3D 'function') {=0A= e.target.onclick_rgraph(e);=0A= }=0A= =0A= var objects =3D RGraph.ObjectRegistry.getObjectsByXY(e);=0A= =0A= for (var i=3D0; i<objects.length; ++i) {=0A= =0A= var obj =3D objects[i];=0A= var id =3D obj.id;=0A= var shape =3D obj.getShape(e);=0A= =0A= /**=0A= * This bit saves the current pointer style if there = isn't one already saved=0A= */=0A= var func =3D obj.Get('chart.events.click');=0A= =0A= if (!func && typeof(obj.onclick) =3D=3D 'function') {=0A= func =3D obj.onclick;=0A= }=0A= =0A= if (shape && typeof(func) =3D=3D 'function') {=0A= func(e, shape);=0A= =0A= /**=0A= * If objects are layered on top of each other = this return=0A= * stops objects underneath from firing once the = "top"=0A= * objects user event has fired=0A= */=0A= return;=0A= }=0A= =0A= /**=0A= * The property takes priority over this.=0A= */=0A= if (shape) {=0A= =0A= var index =3D shape['object'].type =3D=3D = 'scatter' ? shape['index_adjusted'] : shape['index'];=0A= =0A= if (typeof(index) =3D=3D 'number' && obj['$' + = index]) {=0A= =0A= var func =3D obj['$' + index].onclick;=0A= =0A= if (typeof(func) =3D=3D 'function') {=0A= =0A= func(e, shape);=0A= =0A= /**=0A= * If objects are layered on top of each = other this return=0A= * stops objects underneath from firing = once the "top"=0A= * objects user event has fired=0A= */=0A= return;=0A= }=0A= }=0A= }=0A= =0A= /**=0A= * This facilitates breaking out of the loop when a = shape has been found - =0A= * ie the cursor is over a shape an upper chart=0A= */=0A= if (shape || (obj.overChartArea && = obj.overChartArea(e)) ) {=0A= break;=0A= }=0A= }=0A= }=0A= obj.canvas.addEventListener('click', func, false);=0A= =0A= obj.canvas.__rgraph_click_event_listener_installed__ =3D = func;=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * This function evaluates the various cursor settings and if there's = one for pointer, changes it to that=0A= */=0A= RGraph.EvaluateCursor =3D function (e)=0A= {=0A= var mouseXY =3D RGraph.getMouseXY(e);=0A= var mouseX =3D mouseXY[0];=0A= var mouseY =3D mouseXY[1];=0A= var canvas =3D e.target;=0A= =0A= /**=0A= * Tooltips cause the mouse pointer to change=0A= */=0A= var objects =3D = RGraph.ObjectRegistry.getObjectsByCanvasID(canvas.id);=0A= =0A= for (var i=3D0; i<objects.length; ++i) {=0A= if ((objects[i].getShape && objects[i].getShape(e)) || = (objects[i].overChartArea && objects[i].overChartArea(e))) {=0A= var obj =3D objects[i];=0A= var id =3D obj.id;=0A= }=0A= }=0A= =0A= if (!RGraph.is_null(obj)) {=0A= if (obj.getShape && obj.getShape(e)) {=0A= =0A= var shape =3D obj.getShape(e);=0A= =0A= if (obj.Get('chart.tooltips')) {=0A= =0A= var text =3D = RGraph.parseTooltipText(obj.Get('chart.tooltips'), shape['index']);=0A= =0A= if (!text && shape['object'].type =3D=3D 'scatter' = && shape['index_adjusted']) {=0A= text =3D = RGraph.parseTooltipText(obj.Get('chart.tooltips'), = shape['index_adjusted']);=0A= }=0A= =0A= /**=0A= * This essentially makes front charts "hide" the = back charts=0A= */=0A= if (text) {=0A= var pointer =3D true;=0A= }=0A= }=0A= }=0A= =0A= /**=0A= * Now go through the key coords and see if it's over that.=0A= */=0A= if (!RGraph.is_null(obj) && = obj.Get('chart.key.interactive')) {=0A= for (var j=3D0; j<obj.coords.key.length; ++j) {=0A= if (mouseX > obj.coords.key[j][0] && mouseX < = (obj.coords.key[j][0] + obj.coords.key[j][2]) && mouseY > = obj.coords.key[j][1] && mouseY < (obj.coords.key[j][1] + = obj.coords.key[j][3])) {=0A= var pointer =3D true;=0A= }=0A= }=0A= }=0A= }=0A= =0A= /**=0A= * It can be specified in the user mousemove event - remember it = can now be specified in THREE ways=0A= */=0A= if (!RGraph.is_null(shape) && !RGraph.is_null(obj)) {=0A= =0A= if (!RGraph.is_null(obj.Get('chart.events.mousemove')) && = typeof(obj.Get('chart.events.mousemove')) =3D=3D 'function') {=0A= var str =3D = (obj.Get('chart.events.mousemove')).toString();=0A= if (str.match(/pointer/) && str.match(/cursor/) && = str.match(/style/)) {=0A= var pointer =3D true;=0A= }=0A= }=0A= =0A= if (!RGraph.is_null(obj.onmousemove) && = typeof(obj.onmousemove) =3D=3D 'function') {=0A= var str =3D (obj.onmousemove).toString();=0A= if (str.match(/pointer/) && str.match(/cursor/) && = str.match(/style/)) {=0A= var pointer =3D true;=0A= }=0A= }=0A= =0A= var index =3D shape['object'].type =3D=3D 'scatter' ? = shape['index_adjusted'] : shape['index'];=0A= if (!RGraph.is_null(obj['$' + index]) && typeof(obj['$' + = index].onmousemove) =3D=3D 'function') {=0A= var str =3D (obj['$' + index].onmousemove).toString();=0A= if (str.match(/pointer/) && str.match(/cursor/) && = str.match(/style/)) { =0A= var pointer =3D true;=0A= }=0A= }=0A= }=0A= =0A= /**=0A= * Is the chart resizable? Go through all the objects again=0A= */=0A= var objects =3D RGraph.ObjectRegistry.objects.byCanvasID;=0A= =0A= for (var i=3D0; i<objects.length; ++i) {=0A= if (objects[i] && objects[i][1].Get('chart.resizable')) {=0A= var resizable =3D true;=0A= }=0A= }=0A= =0A= if (resizable && mouseX > (e.target.width - 32) && mouseY > = (e.target.height - 16)) {=0A= pointer =3D true;=0A= }=0A= =0A= =0A= if (pointer) {=0A= e.target.style.cursor =3D 'pointer';=0A= } else if (e.target.style.cursor =3D=3D 'pointer') {=0A= e.target.style.cursor =3D 'default';=0A= } else {=0A= e.target.style.cursor =3D null;=0A= }=0A= =0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= // Resize cursor=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= =0A= =0A= if (resizable && mouseX >=3D (e.target.width - 15) && mouseY = >=3D (e.target.height - 15)) {=0A= e.target.style.cursor =3D 'move';=0A= }=0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= // Interactive key=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= =0A= =0A= =0A= if (typeof(mouse_over_key) =3D=3D 'boolean' && mouse_over_key) {=0A= e.target.style.cursor =3D 'pointer';=0A= }=0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= // Gantt chart adjusting=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= =0A= =0A= if (obj && obj.type =3D=3D 'gantt' && = obj.Get('chart.adjustable')) {=0A= if (obj.getShape && obj.getShape(e)) {=0A= e.target.style.cursor =3D 'ew-resize';=0A= } else {=0A= e.target.style.cursor =3D 'default';=0A= }=0A= }=0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= // Line chart adjusting=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= =0A= =0A= if (obj && obj.type =3D=3D 'line' && = obj.Get('chart.adjustable')) {=0A= if (obj.getShape && obj.getShape(e)) {=0A= e.target.style.cursor =3D 'ns-resize';=0A= } else {=0A= e.target.style.cursor =3D 'default';=0A= }=0A= }=0A= =0A= =0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= // Annotatable=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= =0A= =0A= if (e.target.__object__ && = e.target.__object__.Get('chart.annotatable')) {=0A= e.target.style.cursor =3D 'crosshair';=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * This function handles the tooltip text being a string, function=0A= * =0A= * @param mixed tooltip This could be a string or a function. If it's = a function it's called and=0A= * the return value is used as the tooltip text=0A= * @param numbr idx The index of the tooltip.=0A= */=0A= RGraph.parseTooltipText =3D function (tooltips, idx)=0A= {=0A= // No tooltips=0A= if (!tooltips) {=0A= return null;=0A= }=0A= =0A= // Get the tooltip text=0A= if (typeof(tooltips) =3D=3D 'function') {=0A= var text =3D tooltips(idx);=0A= =0A= // A single tooltip. Only supported by the Scatter chart=0A= } else if (typeof(tooltips) =3D=3D 'string') {=0A= var text =3D tooltips;=0A= =0A= } else if (typeof(tooltips) =3D=3D 'object' && = typeof(tooltips)[idx] =3D=3D 'function') {=0A= var text =3D tooltips[idx](idx);=0A= =0A= } else if (typeof(tooltips)[idx] =3D=3D 'string' && = tooltips[idx]) {=0A= var text =3D tooltips[idx];=0A= =0A= } else {=0A= var text =3D '';=0A= }=0A= =0A= if (text =3D=3D 'undefined') {=0A= text =3D '';=0A= } else if (text =3D=3D 'null') {=0A= text =3D '';=0A= }=0A= =0A= // Conditional in case the tooltip file isn't included=0A= return RGraph.getTooltipTextFromDIV ? = RGraph.getTooltipTextFromDIV(text) : text;=0A= }=0A= =0A= =0A= =0A= /**=0A= * Draw crosshairs if enabled=0A= * =0A= * @param object obj The graph object (from which we can get the = context and canvas as required)=0A= */=0A= RGraph.DrawCrosshairs =3D function (e, obj)=0A= {=0A= var e =3D RGraph.FixEventObject(e);=0A= var width =3D obj.canvas.width;=0A= var height =3D obj.canvas.height;=0A= var mouseXY =3D RGraph.getMouseXY(e);=0A= var x =3D mouseXY[0];=0A= var y =3D mouseXY[1];=0A= var gutterLeft =3D obj.gutterLeft;=0A= var gutterRight =3D obj.gutterRight;=0A= var gutterTop =3D obj.gutterTop;=0A= var gutterBottom =3D obj.gutterBottom;=0A= var prop =3D obj.properties;=0A= =0A= RGraph.RedrawCanvas(obj.canvas);=0A= =0A= if ( x >=3D gutterLeft=0A= && y >=3D gutterTop=0A= && x <=3D (width - gutterRight)=0A= && y <=3D (height - gutterBottom)=0A= ) {=0A= =0A= var linewidth =3D prop['chart.crosshairs.linewidth'] ? = prop['chart.crosshairs.linewidth'] : 1;=0A= obj.context.lineWidth =3D linewidth ? linewidth : 1;=0A= =0A= obj.context.beginPath();=0A= obj.context.strokeStyle =3D prop['chart.crosshairs.color'];=0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * The chart.crosshairs.snap option=0A= */=0A= if (prop['chart.crosshairs.snap']) {=0A= =0A= // Linear search for the closest point=0A= var point =3D null;=0A= var dist =3D null;=0A= var len =3D null;=0A= =0A= if (obj.type =3D=3D 'line') {=0A= =0A= for (var i=3D0; i<obj.coords.length; ++i) {=0A= =0A= var len =3D = RGraph.getHypLength(obj.coords[i][0], obj.coords[i][1], x, y);=0A= =0A= // Check the mouse X coordinate=0A= if (typeof(dist) !=3D 'number' || len < dist) {=0A= var point =3D i;=0A= var dist =3D len;=0A= }=0A= }=0A= =0A= x =3D obj.coords[point][0];=0A= y =3D obj.coords[point][1];=0A= =0A= // Get the dataset=0A= for (var dataset=3D0; dataset<obj.coords2.length; = ++dataset) {=0A= for (var point=3D0; = point<obj.coords2[dataset].length; ++point) {=0A= if (obj.coords2[dataset][point][0] =3D=3D x = && obj.coords2[dataset][point][1] =3D=3D y) {=0A= obj.canvas.__crosshairs_snap_dataset__ = =3D dataset;=0A= obj.canvas.__crosshairs_snap_point__ = =3D point;=0A= }=0A= }=0A= }=0A= =0A= } else {=0A= =0A= for (var i=3D0; i<obj.coords.length; ++i) {=0A= for (var j=3D0; j<obj.coords[i].length; ++j) {=0A= =0A= // Check the mouse X coordinate=0A= var len =3D = RGraph.getHypLength(obj.coords[i][j][0], obj.coords[i][j][1], x, y);=0A= =0A= if (typeof(dist) !=3D 'number' || len < = dist) {=0A= =0A= var dataset =3D i;=0A= var point =3D j;=0A= var dist =3D len;=0A= }=0A= }=0A= =0A= }=0A= obj.canvas.__crosshairs_snap_dataset__ =3D dataset;=0A= obj.canvas.__crosshairs_snap_point__ =3D point;=0A= =0A= x =3D obj.coords[dataset][point][0];=0A= y =3D obj.coords[dataset][point][1];=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= // Draw a top vertical line=0A= if (prop['chart.crosshairs.vline']) {=0A= obj.context.moveTo(Math.round(x), Math.round(gutterTop));=0A= obj.context.lineTo(Math.round(x), Math.round(height - = gutterBottom));=0A= }=0A= =0A= // Draw a horizontal line=0A= if (prop['chart.crosshairs.hline']) {=0A= obj.context.moveTo(Math.round(gutterLeft), = Math.round(y));=0A= obj.context.lineTo(Math.round(width - gutterRight), = Math.round(y));=0A= }=0A= =0A= obj.context.stroke();=0A= =0A= =0A= /**=0A= * Need to show the coords?=0A= */=0A= if (obj.type =3D=3D 'scatter' && = prop['chart.crosshairs.coords']) {=0A= =0A= var xCoord =3D (((x - gutterLeft) / (width - gutterLeft = - gutterRight)) * (prop['chart.xmax'] - prop['chart.xmin'])) + = prop['chart.xmin'];=0A= xCoord =3D = xCoord.toFixed(prop['chart.scale.decimals']);=0A= var yCoord =3D obj.max - (((y - = prop['chart.gutter.top']) / (height - gutterTop - gutterBottom)) * = obj.max);=0A= =0A= if (obj.type =3D=3D 'scatter' && = obj.properties['chart.xaxispos'] =3D=3D 'center') {=0A= yCoord =3D (yCoord - (obj.max / 2)) * 2;=0A= }=0A= =0A= yCoord =3D yCoord.toFixed(prop['chart.scale.decimals']);=0A= =0A= var div =3D = RGraph.Registry.Get('chart.coordinates.coords.div');=0A= var mouseXY =3D RGraph.getMouseXY(e);=0A= var canvasXY =3D RGraph.getCanvasXY(obj.canvas);=0A= =0A= if (!div) {=0A= var div =3D document.createElement('DIV');=0A= div.__object__ =3D obj;=0A= div.style.position =3D 'absolute';=0A= div.style.backgroundColor =3D 'white';=0A= div.style.border =3D '1px solid black';=0A= div.style.fontFamily =3D 'Arial, Verdana, = sans-serif';=0A= div.style.fontSize =3D '10pt'=0A= div.style.padding =3D '2px';=0A= div.style.opacity =3D 1;=0A= div.style.WebkitBorderRadius =3D '3px';=0A= div.style.borderRadius =3D '3px';=0A= div.style.MozBorderRadius =3D '3px';=0A= document.body.appendChild(div);=0A= =0A= RGraph.Registry.Set('chart.coordinates.coords.div', = div);=0A= }=0A= =0A= // Convert the X/Y pixel coords to correspond to the = scale=0A= div.style.opacity =3D 1;=0A= div.style.display =3D 'inline';=0A= =0A= if (!prop['chart.crosshairs.coords.fixed']) {=0A= div.style.left =3D Math.max(2, (e.pageX - = div.offsetWidth - 3)) + 'px';=0A= div.style.top =3D Math.max(2, (e.pageY - = div.offsetHeight - 3)) + 'px';=0A= } else {=0A= div.style.left =3D canvasXY[0] + gutterLeft + 3 + = 'px';=0A= div.style.top =3D canvasXY[1] + gutterTop + 3 + = 'px';=0A= }=0A= =0A= div.innerHTML =3D '<span style=3D"color: #666">' + = prop['chart.crosshairs.coords.labels.x'] + ':</span> ' + xCoord + = '<br><span style=3D"color: #666">' + = prop['chart.crosshairs.coords.labels.y'] + ':</span> ' + yCoord;=0A= =0A= obj.canvas.addEventListener('mouseout', = RGraph.HideCrosshairCoords, false);=0A= =0A= obj.canvas.__crosshairs_labels__ =3D div;=0A= obj.canvas.__crosshairs_x__ =3D xCoord;=0A= obj.canvas.__crosshairs_y__ =3D yCoord;=0A= =0A= } else if (prop['chart.crosshairs.coords']) {=0A= alert('[RGRAPH] Showing crosshair coordinates is only = supported on the Scatter chart');=0A= }=0A= =0A= /**=0A= * Fire the oncrosshairs custom event=0A= */=0A= RGraph.FireCustomEvent(obj, 'oncrosshairs');=0A= =0A= } else {=0A= RGraph.HideCrosshairCoords();=0A= }=0A= }=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries/RGraph.common.tooltips.js /**=0A= * = o------------------------------------------------------------------------= ------o=0A= * | This file is part of the RGraph package - you can learn more at: = |=0A= * | = |=0A= * | http://www.rgraph.net = |=0A= * | = |=0A= * | This package is licensed under the RGraph license. For all kinds = of business |=0A= * | purposes there is a small one-time licensing fee to pay and for = non |=0A= * | commercial purposes it is free to use. You can read the full = license here: |=0A= * | = |=0A= * | http://www.rgraph.net/license = |=0A= * = o------------------------------------------------------------------------= ------o=0A= */=0A= =0A= if (typeof(RGraph) =3D=3D 'undefined') RGraph =3D = {isRGraph:true,type:'common'};=0A= =0A= /**=0A= * This is used in two functions, hence it's here=0A= */=0A= RGraph.tooltips =3D {};=0A= RGraph.tooltips.padding =3D '3px';=0A= RGraph.tooltips.font_face =3D 'Tahoma';=0A= RGraph.tooltips.font_size =3D '10pt';=0A= =0A= /**=0A= * Shows a tooltip next to the mouse pointer=0A= * =0A= * @param canvas object The canvas element object=0A= * @param text string The tooltip text=0A= * @param int x The X position that the tooltip should = appear at. Combined with the canvases offsetLeft=0A= * gives the absolute X position=0A= * @param int y The Y position the tooltip should appear at. = Combined with the canvases offsetTop=0A= * gives the absolute Y position=0A= * @param int idx The index of the tooltip in the graph = objects tooltip array=0A= * @param object e The event object=0A= */=0A= RGraph.Tooltip =3D function (obj, text, x, y, idx, e)=0A= {=0A= /**=0A= * chart.tooltip.override allows you to totally take control of = rendering the tooltip yourself=0A= */=0A= if (typeof(obj.Get('chart.tooltips.override')) =3D=3D = 'function') {=0A= return obj.Get('chart.tooltips.override')(obj, text, x, y, = idx);=0A= }=0A= =0A= /**=0A= * Save the X/Y coords=0A= */=0A= var originalX =3D x;=0A= var originalY =3D y;=0A= =0A= /**=0A= * This facilitates the "id:xxx" format=0A= */=0A= text =3D RGraph.getTooltipTextFromDIV(text);=0A= =0A= /**=0A= * First clear any exising timers=0A= */=0A= var timers =3D RGraph.Registry.Get('chart.tooltip.timers');=0A= =0A= if (timers && timers.length) {=0A= for (i=3D0; i<timers.length; ++i) {=0A= clearTimeout(timers[i]);=0A= }=0A= }=0A= RGraph.Registry.Set('chart.tooltip.timers', []);=0A= =0A= /**=0A= * Hide the context menu if it's currently shown=0A= */=0A= if (obj.Get('chart.contextmenu')) {=0A= RGraph.HideContext();=0A= }=0A= =0A= var effect =3D obj.Get('chart.tooltips.effect') ? = obj.Get('chart.tooltips.effect').toLowerCase() : 'fade';=0A= =0A= =0A= /**=0A= * Show a tool tip=0A= */=0A= var tooltipObj =3D document.createElement('DIV');=0A= tooltipObj.className =3D = obj.Get('chart.tooltips.css.class');=0A= tooltipObj.style.display =3D 'none';=0A= tooltipObj.style.position =3D RGraph.isFixed(obj.canvas) = ? 'fixed' : 'absolute';=0A= tooltipObj.style.left =3D 0;=0A= tooltipObj.style.top =3D 0;=0A= tooltipObj.style.backgroundColor =3D 'rgb(255,255,239)';=0A= tooltipObj.style.color =3D 'black';=0A= if (!document.all) tooltipObj.style.border =3D '';=0A= tooltipObj.style.visibility =3D 'visible';=0A= tooltipObj.style.paddingLeft =3D RGraph.tooltips.padding;=0A= tooltipObj.style.paddingRight =3D RGraph.tooltips.padding;=0A= tooltipObj.style.fontFamily =3D RGraph.tooltips.font_face;=0A= tooltipObj.style.fontSize =3D RGraph.tooltips.font_size;=0A= tooltipObj.style.zIndex =3D 3;=0A= =0A= // Only apply a border if there's content=0A= if (RGraph.trim(text).length > 0) {=0A= tooltipObj.style.border =3D '1px #bbb solid';=0A= }=0A= =0A= tooltipObj.style.borderRadius =3D '5px';=0A= tooltipObj.style.MozBorderRadius =3D '5px';=0A= tooltipObj.style.WebkitBorderRadius =3D '5px';=0A= tooltipObj.style.WebkitBoxShadow =3D 'rgba(96,96,96,0.5) 0 0 = 15px';=0A= tooltipObj.style.MozBoxShadow =3D 'rgba(96,96,96,0.5) 0 0 = 15px';=0A= tooltipObj.style.boxShadow =3D 'rgba(96,96,96,0.5) 0 0 = 15px';=0A= tooltipObj.style.filter =3D = 'progid:DXImageTransform.Microsoft.Shadow(color=3D#666666,direction=3D135= )';=0A= tooltipObj.style.opacity =3D 0;=0A= //tooltipObj.style.overflow =3D 'hidden';=0A= tooltipObj.innerHTML =3D text;=0A= tooltipObj.__text__ =3D text; // This is set = because the innerHTML can change when it's set=0A= tooltipObj.__canvas__ =3D obj.canvas;=0A= tooltipObj.style.display =3D 'inline';=0A= tooltipObj.id =3D '__rgraph_tooltip_' + = obj.canvas.id + '_' + obj.uid + '_'+ idx;=0A= tooltipObj.__event__ =3D = obj.Get('chart.tooltips.event') || 'click';=0A= tooltipObj.__object__ =3D obj;=0A= =0A= if (typeof(idx) =3D=3D 'number') {=0A= tooltipObj.__index__ =3D idx;=0A= origIdx =3D idx;=0A= }=0A= =0A= if (obj.type =3D=3D 'line' || obj.type =3D=3D 'radar') {=0A= for (var ds=3D0; ds<obj.data.length; ++ds) {=0A= if (idx >=3D obj.data[ds].length) {=0A= idx -=3D obj.data[ds].length;=0A= } else {=0A= break;=0A= }=0A= }=0A= =0A= tooltipObj.__dataset__ =3D ds;=0A= tooltipObj.__index2__ =3D idx;=0A= }=0A= =0A= document.body.appendChild(tooltipObj);=0A= =0A= var width =3D tooltipObj.offsetWidth;=0A= var height =3D tooltipObj.offsetHeight;=0A= =0A= // entinux - Special handling for IE version < 10=0A= if (navigator.userAgent.toLowerCase().match(/msie [789]/))=0A= {=0A= tooltipObj.style.textAlign =3D 'center';=0A= width =3D 150;=0A= }=0A= =0A= /**=0A= * Set the width on the tooltip so it doesn't resize if the = window is resized=0A= */=0A= tooltipObj.style.width =3D width + 'px';=0A= =0A= =0A= =0A= tooltipObj.style.top =3D (y - height - 2) + 'px';=0A= =0A= /**=0A= * If the function exists call the object specific tooltip = positioning function=0A= */=0A= if (typeof(obj.positionTooltip) =3D=3D 'function') {=0A= if (tooltipObj.innerHTML.length > 0) {=0A= =0A= obj.positionTooltip(obj, x, y, tooltipObj, origIdx ? = origIdx : idx);=0A= =0A= if (obj.Get('chart.tooltips.coords.page')) {=0A= =0A= tooltipObj.style.left =3D e.pageX - (width / 2) - = 4.25 + 'px';=0A= tooltipObj.style.top =3D e.pageY - height - 10 + = 'px';=0A= =0A= = document.getElementById('__rgraph_tooltip_pointer__').style.left =3D = (parseInt(tooltipObj.offsetWidth) / 2) - 8.5 + 'px';=0A= }=0A= }=0A= } else {=0A= tooltipObj.style.left =3D e.pageX - (width / 2) - 4.25 + = 'px';=0A= tooltipObj.style.top =3D e.pageY - height - 7 + 'px';=0A= }=0A= =0A= =0A= if (effect =3D=3D 'fade' || effect =3D=3D 'expand' || effect = =3D=3D 'contract' || effect =3D=3D 'snap') {=0A= setTimeout(function () {tooltipObj.style.opacity =3D 0.1;}, = 25);=0A= setTimeout(function () {tooltipObj.style.opacity =3D 0.2;}, = 50);=0A= setTimeout(function () {tooltipObj.style.opacity =3D 0.3;}, = 75);=0A= setTimeout(function () {tooltipObj.style.opacity =3D 0.4;}, = 100);=0A= setTimeout(function () {tooltipObj.style.opacity =3D 0.5;}, = 125);=0A= setTimeout(function () {tooltipObj.style.opacity =3D 0.6;}, = 150);=0A= setTimeout(function () {tooltipObj.style.opacity =3D 0.7;}, = 175);=0A= setTimeout(function () {tooltipObj.style.opacity =3D 0.8;}, = 200);=0A= setTimeout(function () {tooltipObj.style.opacity =3D 0.9;}, = 225);=0A= =0A= if (effect =3D=3D 'expand' || effect =3D=3D 'contract' || = effect =3D=3D 'snap') {=0A= console.log('[RGRAPH] The snap, expand and contract = tooltip effects are deprecated. Available effects now are fade and = none');=0A= }=0A= }=0A= =0A= setTimeout("if (RGraph.Registry.Get('chart.tooltip')) { = RGraph.Registry.Get('chart.tooltip').style.opacity =3D 1;}", effect = =3D=3D 'none' ? 50 : 250);=0A= =0A= /**=0A= * If the tooltip it self is clicked, cancel it=0A= */=0A= tooltipObj.onmousedown =3D function (e){e.stopPropagation();}=0A= tooltipObj.onmouseup =3D function (e){e.stopPropagation();}=0A= tooltipObj.onclick =3D function (e){if (e.button =3D=3D 0) = {e.stopPropagation();}}=0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * Keep a reference to the tooltip in the registry=0A= */=0A= RGraph.Registry.Set('chart.tooltip', tooltipObj);=0A= =0A= /**=0A= * Fire the tooltip event=0A= */=0A= RGraph.FireCustomEvent(obj, 'ontooltip');=0A= }=0A= =0A= =0A= /**=0A= * =0A= */=0A= RGraph.getTooltipTextFromDIV =3D function (text)=0A= {=0A= // This regex is duplicated firher down on roughly line 888=0A= var result =3D /^id:(.*)/.exec(text);=0A= =0A= if (result && result[1] && document.getElementById(result[1])) {=0A= text =3D document.getElementById(result[1]).innerHTML;=0A= } else if (result && result[1]) {=0A= text =3D '';=0A= }=0A= =0A= return text;=0A= }=0A= =0A= =0A= /**=0A= * =0A= */=0A= RGraph.getTooltipWidth =3D function (text, obj)=0A= {=0A= var div =3D document.createElement('DIV');=0A= div.className =3D = obj.Get('chart.tooltips.css.class');=0A= div.style.paddingLeft =3D RGraph.tooltips.padding;=0A= div.style.paddingRight =3D RGraph.tooltips.padding;=0A= div.style.fontFamily =3D RGraph.tooltips.font_face;=0A= div.style.fontSize =3D RGraph.tooltips.font_size;=0A= div.style.visibility =3D 'hidden';=0A= div.style.position =3D 'absolute';=0A= div.style.top =3D '300px';=0A= div.style.left =3D 0;=0A= div.style.display =3D 'inline';=0A= div.innerHTML =3D = RGraph.getTooltipTextFromDIV(text);=0A= document.body.appendChild(div);=0A= =0A= return div.offsetWidth;=0A= }=0A= =0A= =0A= /**=0A= * Hides the currently shown tooltip=0A= */=0A= RGraph.HideTooltip =3D function ()=0A= {=0A= var tooltip =3D RGraph.Registry.Get('chart.tooltip');=0A= var uid =3D arguments[0] && arguments[0].uid ? = arguments[0].uid : null;=0A= =0A= if (tooltip && tooltip.parentNode && (!uid || uid =3D=3D = tooltip.__canvas__.uid)) {=0A= tooltip.parentNode.removeChild(tooltip);=0A= tooltip.style.display =3D 'none'; =0A= tooltip.style.visibility =3D 'hidden';=0A= RGraph.Registry.Set('chart.tooltip', null);=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * This installs the window mousedown event listener. It clears any = highlight that may=0A= * be present.=0A= * =0A= * @param object obj The chart object=0A= *=0A= RGraph.InstallWindowMousedownTooltipListener =3D function (obj)=0A= {=0A= if = (RGraph.Registry.Get('__rgraph_event_listeners__')['window_mousedown']) {=0A= return;=0A= }=0A= =0A= // When the canvas is cleared, reset this flag so that the event = listener is installed again=0A= RGraph.AddCustomEventListener(obj, 'onclear', function (obj) = {RGraph.Registry.Get('__rgraph_event_listeners__')['window_mousedown'] = =3D false;})=0A= =0A= // NOTE: Global on purpose=0A= rgraph_window_mousedown =3D function (e)=0A= {=0A= if (RGraph.Registry.Get('chart.tooltip')) {=0A= =0A= var obj =3D = RGraph.Registry.Get('chart.tooltip').__object__;=0A= var canvas =3D obj.canvas;=0A= =0A= /**=0A= * Get rid of the tooltip and redraw all canvases on the = page=0A= *=0A= RGraph.HideTooltip();=0A= =0A= /**=0A= * No need to clear if highlighting is disabled=0A= * =0A= * TODO Really, need to check ALL of the pertinent = objects that=0A= * are drawing on the canvas using the ObjectRegistry -=0A= * ie RGraph.ObjectRegistry.getObjectsByCanvasID()=0A= *=0A= if (obj.Get('chart.tooltips.highlight')) {=0A= RGraph.RedrawCanvas(canvas);=0A= }=0A= }=0A= }=0A= window.addEventListener('mousedown', rgraph_window_mousedown, = false);=0A= RGraph.AddEventListener('window_' + obj.id, 'mousedown', = rgraph_window_mousedown);=0A= }=0A= */=0A= =0A= =0A= /**=0A= * This installs the canvas mouseup event listener. This is the = function that=0A= * actually shows the appropriate (if any) tooltip.=0A= * =0A= * @param object obj The chart object=0A= *=0A= RGraph.InstallCanvasMouseupTooltipListener =3D function (obj)=0A= {=0A= if = (RGraph.Registry.Get('__rgraph_event_listeners__')[obj.canvas.id + = '_mouseup']) {=0A= return;=0A= }=0A= RGraph.Registry.Get('__rgraph_event_listeners__')[obj.canvas.id = + '_mouseup'] =3D true;=0A= =0A= // When the canvas is cleared, reset this flag so that the event = listener is installed again=0A= RGraph.AddCustomEventListener(obj, 'onclear', function (obj) = {RGraph.Registry.Get('__rgraph_event_listeners__')[obj.canvas.id + = '_mouseup'] =3D false});=0A= =0A= // Install the onclick event handler for the tooltips=0A= //=0A= // // NOTE: Global on purpose=0A= rgraph_canvas_mouseup_func =3D function (e)=0A= {=0A= var x =3D arguments[1] ? arguments[1] : e.pageX;=0A= var y =3D arguments[2] ? arguments[2] : e.pageY;=0A= =0A= var objects =3D = RGraph.ObjectRegistry.getObjectsByCanvasID(e.target.id);=0A= =0A= // It's important to go backwards through the array so that = the front charts=0A= // are checked first, then the charts at the back=0A= for (var i=3D(objects.length - 1); i>=3D0; --i) {=0A= =0A= var shape =3D objects[i].getShape(e);=0A= =0A= if (shape && shape['object'] && = !RGraph.Registry.Get('chart.tooltip')) {=0A= =0A= /**=0A= * This allows the Scatter chart funky tooltips style=0A= *=0A= if (objects[i].type =3D=3D 'scatter' && = shape['dataset'] > 0) {=0A= for (var j=3D0; j<(objects[i].data.length - 1); = ++j) {=0A= shape['index'] +=3D = objects[i].data[j].length;=0A= }=0A= }=0A= =0A= var text =3D = RGraph.parseTooltipText(objects[i].Get('chart.tooltips'), = shape['index']);=0A= =0A= if (text) {=0A= =0A= if = (shape['object'].Get('chart.tooltips.hotspot.xonly')) {=0A= var canvasXY =3D = RGraph.getCanvasXY(objects[i].canvas);=0A= x =3D canvasXY[0] + shape[1];=0A= y =3D canvasXY[1] + shape[2];=0A= }=0A= =0A= RGraph.Tooltip(objects[i], text, x, y, = shape['index']);=0A= objects[i].Highlight(shape);=0A= =0A= e.stopPropagation();=0A= e.cancelBubble =3D true;=0A= return false;=0A= }=0A= }=0A= }=0A= }=0A= obj.canvas.addEventListener('mouseup', = rgraph_canvas_mouseup_func, false);=0A= RGraph.AddEventListener(obj.id, 'mouseup', = rgraph_canvas_mouseup_func);=0A= }=0A= */=0A= =0A= =0A= =0A= /**=0A= * This installs the canvas mousemove event listener. This is the = function that=0A= * changes the mouse pointer if need be.=0A= * =0A= * @param object obj The chart object=0A= *=0A= RGraph.InstallCanvasMousemoveTooltipListener =3D function (obj)=0A= {=0A= if = (RGraph.Registry.Get('__rgraph_event_listeners__')[obj.canvas.id + = '_mousemove']) {=0A= return;=0A= }=0A= RGraph.Registry.Get('__rgraph_event_listeners__')[obj.canvas.id = + '_mousemove'] =3D true;=0A= =0A= // When the canvas is cleared, reset this flag so that the event = listener is installed again=0A= RGraph.AddCustomEventListener(obj, 'onclear', function (obj) = {RGraph.Registry.Get('__rgraph_event_listeners__')[obj.canvas.id + = '_mousemove'] =3D false})=0A= =0A= // Install the mousemove event handler for the tooltips=0A= //=0A= // NOTE: Global on purpose=0A= rgraph_canvas_mousemove_func =3D function (e)=0A= {=0A= var objects =3D = RGraph.ObjectRegistry.getObjectsByCanvasID(e.target.id);=0A= =0A= for (var i=3D0; i<objects.length; ++i) {=0A= =0A= var shape =3D objects[i].getShape(e);=0A= =0A= if (shape && shape['object']) {=0A= =0A= /**=0A= * This allows the Scatter chart funky tooltips style=0A= *=0A= if (objects[i].type =3D=3D 'scatter' && = shape['dataset'] > 0) {=0A= for (var j=3D0; j<(objects[i].data.length - 1); = ++j) {=0A= shape['index'] +=3D = objects[i].data[j].length;=0A= }=0A= }=0A= =0A= var text =3D = RGraph.parseTooltipText(objects[i].Get('chart.tooltips'), = shape['index']);=0A= =0A= =0A= if (text) {=0A= =0A= e.target.style.cursor =3D 'pointer';=0A= =0A= /**=0A= * This facilitates the event triggering the = tooltips being mousemove=0A= *=0A= =0A= if ( = typeof(objects[i].Get('chart.tooltips.event')) =3D=3D 'string'=0A= && objects[i].Get('chart.tooltips.event') = =3D=3D 'onmousemove'=0A= && (!RGraph.Registry.Get('chart.tooltip') || = shape['index'] !=3D RGraph.Registry.Get('chart.tooltip').__index__ || = shape['object'].uid !=3D = RGraph.Registry.Get('chart.tooltip').__object__.uid)=0A= ) {=0A= =0A= // Hide any current tooltip=0A= rgraph_window_mousedown(e);=0A= =0A= rgraph_canvas_mouseup_func(e);=0A= }=0A= }=0A= }=0A= }=0A= }=0A= obj.canvas.addEventListener('mousemove', = rgraph_canvas_mousemove_func, false);=0A= RGraph.AddEventListener(obj.id, 'mousemove', = rgraph_canvas_mousemove_func);=0A= }=0A= */=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * This (as the name suggests preloads any images it can find in the = tooltip text=0A= * =0A= * @param object obj The chart object=0A= */=0A= RGraph.PreLoadTooltipImages =3D function (obj)=0A= {=0A= var tooltips =3D obj.Get('chart.tooltips');=0A= =0A= if (RGraph.hasTooltips(obj)) {=0A= =0A= if (obj.type =3D=3D 'rscatter') {=0A= tooltips =3D [];=0A= for (var i=3D0; i<obj.data.length; ++i) {=0A= tooltips.push(obj.data[3]);=0A= }=0A= }=0A= =0A= for (var i=3D0; i<tooltips.length; ++i) {=0A= // Add the text to an offscreen DIV tag=0A= var div =3D document.createElement('DIV');=0A= div.style.position =3D 'absolute';=0A= div.style.opacity =3D 0;=0A= div.style.top =3D '-100px';=0A= div.style.left =3D '-100px';=0A= div.innerHTML =3D tooltips[i];=0A= document.body.appendChild(div);=0A= =0A= // Now get the IMG tags and create them=0A= var img_tags =3D div.getElementsByTagName('IMG');=0A= =0A= // Create the image in an off-screen image tag=0A= for (var j=3D0; j<img_tags.length; ++j) {=0A= if (img_tags && img_tags[i]) {=0A= var img =3D document.createElement('IMG');=0A= img.style.position =3D 'absolute';=0A= img.style.opacity =3D 0;=0A= img.style.top =3D '-100px';=0A= img.style.left =3D '-100px';=0A= img.src =3D img_tags[i].src=0A= document.body.appendChild(img);=0A= =0A= setTimeout(function () = {document.body.removeChild(img);}, 250);=0A= }=0A= }=0A= =0A= // Now remove the div=0A= document.body.removeChild(div);=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This is the tooltips canvas onmousemove listener=0A= */=0A= RGraph.Tooltips_mousemove =3D function (obj, e)=0A= {=0A= var shape =3D obj.getShape(e);=0A= var changeCursor_tooltips =3D false=0A= =0A= if ( shape=0A= && typeof(shape['index']) =3D=3D 'number'=0A= && obj.Get('chart.tooltips')[shape['index']]=0A= ) {=0A= =0A= var text =3D = RGraph.parseTooltipText(obj.Get('chart.tooltips'), shape['index']);=0A= =0A= if (text) {=0A= =0A= /**=0A= * Change the cursor=0A= */=0A= changeCursor_tooltips =3D true;=0A= =0A= if (obj.Get('chart.tooltips.event') =3D=3D = 'onmousemove') {=0A= =0A= // Show the tooltip if it's not the same as the one = already visible=0A= if (=0A= !RGraph.Registry.Get('chart.tooltip')=0A= || = RGraph.Registry.Get('chart.tooltip').__object__.uid !=3D obj.uid=0A= || = RGraph.Registry.Get('chart.tooltip').__index__ !=3D shape['index']=0A= ) {=0A= =0A= RGraph.HideTooltip();=0A= RGraph.Clear(obj.canvas);=0A= RGraph.Redraw();=0A= RGraph.Tooltip(obj, text, e.pageX, e.pageY, = shape['index']);=0A= obj.Highlight(shape);=0A= }=0A= }=0A= }=0A= =0A= /**=0A= * More highlighting=0A= */=0A= } else if (shape && typeof(shape['index']) =3D=3D 'number') {=0A= =0A= var text =3D = RGraph.parseTooltipText(obj.Get('chart.tooltips'), shape['index']);=0A= =0A= if (text) {=0A= changeCursor_tooltips =3D true=0A= }=0A= }=0A= =0A= return changeCursor_tooltips;=0A= }=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/chart/RG/libraries/RGraph.bar.js /**=0A= * = o------------------------------------------------------------------------= ------o=0A= * | This file is part of the RGraph package - you can learn more at: = |=0A= * | = |=0A= * | http://www.rgraph.net = |=0A= * | = |=0A= * | This package is licensed under the RGraph license. For all kinds = of business |=0A= * | purposes there is a small one-time licensing fee to pay and for = non |=0A= * | commercial purposes it is free to use. You can read the full = license here: |=0A= * | = |=0A= * | http://www.rgraph.net/license = |=0A= * = o------------------------------------------------------------------------= ------o=0A= */=0A= =0A= if (typeof(RGraph) =3D=3D 'undefined') RGraph =3D {};=0A= =0A= /**=0A= * The bar chart constructor=0A= * =0A= * @param object canvas The canvas object=0A= * @param array data The chart data=0A= */=0A= RGraph.Bar =3D function (id, data)=0A= {=0A= // Get the canvas and context objects=0A= this.id =3D id;=0A= this.canvas =3D document.getElementById(id);=0A= this.context =3D this.canvas.getContext ? = this.canvas.getContext("2d") : null;=0A= this.canvas.__object__ =3D this;=0A= this.type =3D 'bar';=0A= this.max =3D 0;=0A= this.stackedOrGrouped =3D false;=0A= this.isRGraph =3D true;=0A= this.uid =3D RGraph.CreateUID();=0A= this.canvas.uid =3D this.canvas.uid ? this.canvas.uid : = RGraph.CreateUID();=0A= this.colorsParsed =3D false;=0A= =0A= =0A= /**=0A= * Compatibility with older browsers=0A= */=0A= RGraph.OldBrowserCompat(this.context);=0A= =0A= =0A= // Various config type stuff=0A= this.properties =3D {=0A= 'chart.background.barcolor1': 'rgba(0,0,0,0)',=0A= 'chart.background.barcolor2': 'rgba(0,0,0,0)',=0A= 'chart.background.grid': true,=0A= 'chart.background.grid.color': '#ddd',=0A= 'chart.background.grid.width': 1,=0A= 'chart.background.grid.hsize': 20,=0A= 'chart.background.grid.vsize': 20,=0A= 'chart.background.grid.vlines': true,=0A= 'chart.background.grid.hlines': true,=0A= 'chart.background.grid.border': true,=0A= 'chart.background.grid.autofit':true,=0A= 'chart.background.grid.autofit.numhlines': 5,=0A= 'chart.background.grid.autofit.numvlines': 20,=0A= 'chart.background.grid.dashed': false,=0A= 'chart.background.grid.dotted': false,=0A= 'chart.background.image.stretch': true,=0A= 'chart.background.image.x': null,=0A= 'chart.background.image.y': null,=0A= 'chart.background.image.w': null,=0A= 'chart.background.image.h': null,=0A= 'chart.background.image.align': null,=0A= 'chart.numyticks': 10,=0A= 'chart.hmargin': 5,=0A= 'chart.hmargin.grouped': 1,=0A= 'chart.strokecolor': 'rgba(0,0,0,0)',=0A= 'chart.axis.color': 'black',=0A= 'chart.axis.linewidth': 1,=0A= 'chart.gutter.top': 25,=0A= 'chart.gutter.bottom': 25,=0A= 'chart.gutter.left': 25,=0A= 'chart.gutter.right': 25,=0A= 'chart.labels': null,=0A= 'chart.labels.ingraph': null,=0A= 'chart.labels.above': false,=0A= 'chart.labels.above.decimals': 0,=0A= 'chart.labels.above.size': null,=0A= 'chart.labels.above.color': null,=0A= 'chart.labels.above.angle': null,=0A= 'chart.ylabels': true,=0A= 'chart.ylabels.count': 5,=0A= 'chart.ylabels.inside': false,=0A= 'chart.xlabels.offset': 0,=0A= 'chart.xaxispos': 'bottom',=0A= 'chart.yaxispos': 'left',=0A= 'chart.text.angle': 0,=0A= 'chart.text.color': 'black', // Gradients aren't = supported for this color=0A= 'chart.text.size': 10,=0A= 'chart.text.font': 'Arial',=0A= 'chart.ymin': 0,=0A= 'chart.ymax': null,=0A= 'chart.title': '',=0A= 'chart.title.font': null,=0A= 'chart.title.background': null, // Gradients aren't = supported for this color=0A= 'chart.title.hpos': null,=0A= 'chart.title.vpos': null,=0A= 'chart.title.bold': true,=0A= 'chart.title.xaxis': '',=0A= 'chart.title.xaxis.bold': true,=0A= 'chart.title.xaxis.size': null,=0A= 'chart.title.xaxis.font': null,=0A= 'chart.title.yaxis': '',=0A= 'chart.title.yaxis.bold': true,=0A= 'chart.title.yaxis.size': null,=0A= 'chart.title.yaxis.font': null,=0A= 'chart.title.yaxis.color': null, // Gradients aren't = supported for this color=0A= 'chart.title.xaxis.pos': null,=0A= 'chart.title.yaxis.pos': null,=0A= 'chart.title.x': null,=0A= 'chart.title.y': null,=0A= 'chart.title.halign': null,=0A= 'chart.title.valign': null, =0A= 'chart.colors': ['#01B4FF', '#0f0', '#00f', = '#ff0', '#0ff', '#0f0'],=0A= 'chart.colors.sequential': false,=0A= 'chart.colors.reverse': false,=0A= 'chart.grouping': 'grouped',=0A= 'chart.variant': 'bar',=0A= 'chart.variant.sketch.verticals': true,=0A= 'chart.shadow': false,=0A= 'chart.shadow.color': '#999', // Gradients aren't = supported for this color=0A= 'chart.shadow.offsetx': 3,=0A= 'chart.shadow.offsety': 3,=0A= 'chart.shadow.blur': 3,=0A= 'chart.tooltips': null,=0A= 'chart.tooltips.effect': 'fade',=0A= 'chart.tooltips.css.class': 'RGraph_tooltip',=0A= 'chart.tooltips.event': 'onclick',=0A= 'chart.tooltips.highlight': true,=0A= 'chart.highlight.stroke': 'rgba(0,0,0,0)',=0A= 'chart.highlight.fill': 'rgba(255,255,255,0.7)',=0A= 'chart.background.hbars': null,=0A= 'chart.key': null,=0A= 'chart.key.background': 'white',=0A= 'chart.key.position': 'graph',=0A= 'chart.key.shadow': false,=0A= 'chart.key.shadow.color': '#666',=0A= 'chart.key.shadow.blur': 3,=0A= 'chart.key.shadow.offsetx': 2,=0A= 'chart.key.shadow.offsety': 2,=0A= 'chart.key.position.gutter.boxed':false,=0A= 'chart.key.position.x': null,=0A= 'chart.key.position.y': null,=0A= 'chart.key.interactive': false,=0A= 'chart.key.interactive.highlight.chart.stroke':'black',=0A= = 'chart.key.interactive.highlight.chart.fill':'rgba(255,255,255,0.7)',=0A= 'chart.key.interactive.highlight.label':'rgba(255,0,0,0.2)',=0A= 'chart.key.halign': 'right',=0A= 'chart.key.color.shape': 'square',=0A= 'chart.key.rounded': true,=0A= 'chart.key.text.size': 10,=0A= 'chart.key.linewidth': 1,=0A= 'chart.key.colors': null,=0A= 'chart.contextmenu': null,=0A= 'chart.units.pre': '',=0A= 'chart.units.post': '',=0A= 'chart.scale.decimals': 0,=0A= 'chart.scale.point': '.',=0A= 'chart.scale.thousand': ',',=0A= 'chart.crosshairs': false,=0A= 'chart.crosshairs.color': '#333',=0A= 'chart.crosshairs.hline': true,=0A= 'chart.crosshairs.vline': true,=0A= 'chart.linewidth': 1,=0A= 'chart.annotatable': false,=0A= 'chart.annotate.color': 'black',=0A= 'chart.zoom.factor': 1.5,=0A= 'chart.zoom.fade.in': true,=0A= 'chart.zoom.fade.out': true,=0A= 'chart.zoom.hdir': 'right',=0A= 'chart.zoom.vdir': 'down',=0A= 'chart.zoom.frames': 25,=0A= 'chart.zoom.delay': 16.666,=0A= 'chart.zoom.shadow': true,=0A= 'chart.zoom.background': true,=0A= 'chart.resizable': false,=0A= 'chart.resize.handle.background': null,=0A= 'chart.adjustable': false,=0A= 'chart.noaxes': false,=0A= 'chart.noxaxis': false,=0A= 'chart.noyaxis': false,=0A= 'chart.events.click': null,=0A= 'chart.events.mousemove': null,=0A= 'chart.numxticks': null,=0A= 'chart.bevel': false=0A= }=0A= =0A= // Check for support=0A= if (!this.canvas) {=0A= alert('[BAR] No canvas support');=0A= return;=0A= }=0A= =0A= /**=0A= * Determine whether the chart will contain stacked or grouped = bars=0A= */=0A= for (var i=3D0; i<data.length; ++i) {=0A= if (typeof(data[i]) =3D=3D 'object' && = !RGraph.is_null(data[i])) {=0A= this.stackedOrGrouped =3D true;=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Create the dollar objects so that functions can be added to = them=0A= */=0A= var linear_data =3D RGraph.array_linearize(data);=0A= for (var i=3D0; i<linear_data.length; ++i) {=0A= this['$' + i] =3D {};=0A= }=0A= =0A= =0A= // Store the data=0A= this.data =3D data;=0A= =0A= // Used to store the coords of the bars=0A= this.coords =3D [];=0A= this.coords2 =3D [];=0A= this.coordsText =3D [];=0A= =0A= =0A= =0A= /**=0A= * This linearises the data. Doing so can make it easier to pull=0A= * out the appropriate data from tooltips=0A= */=0A= this.data_arr =3D RGraph.array_linearize(this.data);=0A= =0A= =0A= /**=0A= * Translate half a pixel for antialiasing purposes - but only if = it hasn't beeen=0A= * done already=0A= */=0A= if (!this.canvas.__rgraph_aa_translated__) {=0A= this.context.translate(0.5,0.5);=0A= =0A= this.canvas.__rgraph_aa_translated__ =3D true;=0A= }=0A= =0A= =0A= =0A= =0A= ///////////////////////////////// SHORT PROPERTIES = /////////////////////////////////=0A= =0A= =0A= =0A= =0A= var RG =3D RGraph;=0A= var ca =3D this.canvas;=0A= var co =3D ca.getContext('2d');=0A= var prop =3D this.properties;=0A= =0A= =0A= =0A= =0A= //////////////////////////////////// METHODS = ///////////////////////////////////////=0A= =0A= =0A= =0A= =0A= /**=0A= * A setter=0A= * =0A= * @param name string The name of the property to set=0A= * @param value mixed The value of the property=0A= */=0A= this.Set =3D function (name, value)=0A= {=0A= name =3D name.toLowerCase();=0A= =0A= /**=0A= * This should be done first - prepend the propertyy name = with "chart." if necessary=0A= */=0A= if (name.substr(0,6) !=3D 'chart.') {=0A= name =3D 'chart.' + name;=0A= }=0A= =0A= if (name =3D=3D 'chart.labels.abovebar') {=0A= name =3D 'chart.labels.above';=0A= }=0A= =0A= if (name =3D=3D 'chart.strokestyle') {=0A= name =3D 'chart.strokecolor';=0A= }=0A= =0A= /**=0A= * Check for xaxispos=0A= */=0A= if (name =3D=3D 'chart.xaxispos' ) {=0A= if (value !=3D 'bottom' && value !=3D 'center' && value = !=3D 'top') {=0A= alert('[BAR] (' + this.id + ') chart.xaxispos should = be top, center or bottom. Tried to set it to: ' + value + ' Changing it = to center');=0A= value =3D 'center';=0A= }=0A= =0A= if (value =3D=3D 'top') {=0A= for (var i=3D0; i<this.data.length; ++i) {=0A= if (typeof(this.data[i]) =3D=3D 'number' && = this.data[i] > 0) {=0A= alert('[BAR] The data element with index ' + = i + ' should be negative');=0A= }=0A= }=0A= }=0A= }=0A= =0A= /**=0A= * lineWidth doesn't appear to like a zero setting=0A= */=0A= if (name.toLowerCase() =3D=3D 'chart.linewidth' && value = =3D=3D 0) {=0A= value =3D 0.0001;=0A= }=0A= =0A= prop[name] =3D value;=0A= =0A= return this;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * A getter=0A= * =0A= * @param name string The name of the property to get=0A= */=0A= this.Get =3D function (name)=0A= {=0A= /**=0A= * This should be done first - prepend the property name with = "chart." if necessary=0A= */=0A= if (name.substr(0,6) !=3D 'chart.') {=0A= name =3D 'chart.' + name;=0A= }=0A= =0A= return prop[name];=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * The function you call to draw the bar chart=0A= */=0A= this.Draw =3D function ()=0A= { =0A= // MUST be the first thing done!=0A= if (typeof(prop['chart.background.image']) =3D=3D 'string') {=0A= RG.DrawBackgroundImage(this);=0A= }=0A= =0A= /**=0A= * Fire the onbeforedraw event=0A= */=0A= RG.FireCustomEvent(this, 'onbeforedraw');=0A= =0A= =0A= =0A= /**=0A= * Parse the colors. This allows for simple gradient syntax=0A= */=0A= if (!this.colorsParsed) {=0A= this.parseColors();=0A= =0A= // Don't want to do this again=0A= this.colorsParsed =3D true;=0A= }=0A= =0A= =0A= =0A= /**=0A= * This is new in May 2011 and facilitates indiviual gutter = settings,=0A= * eg chart.gutter.left=0A= */=0A= this.gutterLeft =3D prop['chart.gutter.left'];=0A= this.gutterRight =3D prop['chart.gutter.right'];=0A= this.gutterTop =3D prop['chart.gutter.top'];=0A= this.gutterBottom =3D prop['chart.gutter.bottom'];=0A= =0A= =0A= =0A= // Cache this in a class variable as it's used rather a lot=0A= =0A= /**=0A= * Check for tooltips and alert the user that they're not = supported with pyramid charts=0A= */=0A= if ( (prop['chart.variant'] =3D=3D 'pyramid' || = prop['chart.variant'] =3D=3D 'dot')=0A= && typeof(prop['chart.tooltips']) =3D=3D 'object'=0A= && prop['chart.tooltips']=0A= && prop['chart.tooltips'].length > 0) {=0A= =0A= alert('[BAR] (' + this.id + ') Sorry, tooltips are not = supported with dot or pyramid charts');=0A= }=0A= =0A= /**=0A= * Stop the coords arrays from growing uncontrollably=0A= */=0A= this.coords =3D [];=0A= this.coords2 =3D [];=0A= this.coordsText =3D [];=0A= =0A= /**=0A= * Work out a few things. They need to be here because they = depend on things you can change before you=0A= * call Draw() but after you instantiate the object=0A= */=0A= this.max =3D 0;=0A= this.grapharea =3D ca.height - this.gutterTop - = this.gutterBottom;=0A= this.halfgrapharea =3D this.grapharea / 2;=0A= this.halfTextHeight =3D prop['chart.text.size'] / 2;=0A= =0A= =0A= // Progressively Draw the chart=0A= RG.background.Draw(this);=0A= =0A= =0A= =0A= =0A= //If it's a sketch chart variant, draw the axes first=0A= if (prop['chart.variant'] =3D=3D 'sketch') {=0A= this.DrawAxes();=0A= this.Drawbars();=0A= } else {=0A= this.Drawbars();=0A= this.DrawAxes();=0A= }=0A= =0A= this.DrawLabels();=0A= =0A= =0A= /**=0A= * Draw the bevel if required=0A= */=0A= if (prop['chart.bevel'] || prop['chart.bevelled']) {=0A= this.DrawBevel();=0A= }=0A= =0A= =0A= // Draw the key if necessary=0A= if (prop['chart.key'] && prop['chart.key'].length) {=0A= RG.DrawKey(this, prop['chart.key'], = prop['chart.colors']);=0A= }=0A= =0A= =0A= /**=0A= * Setup the context menu if required=0A= */=0A= if (prop['chart.contextmenu']) {=0A= RG.ShowContext(this);=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Draw "in graph" labels=0A= */=0A= if (prop['chart.labels.ingraph']) {=0A= RG.DrawInGraphLabels(this);=0A= }=0A= =0A= =0A= /**=0A= * This function enables resizing=0A= */=0A= if (prop['chart.resizable']) {=0A= RG.AllowResizing(this);=0A= }=0A= =0A= =0A= /**=0A= * This installs the event listeners=0A= */=0A= RG.InstallEventListeners(this);=0A= =0A= =0A= /**=0A= * Fire the RGraph ondraw event=0A= */=0A= RG.FireCustomEvent(this, 'ondraw');=0A= =0A= return this;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Draws the charts axes=0A= */=0A= this.DrawAxes =3D function ()=0A= { =0A= if (prop['chart.noaxes']) {=0A= return;=0A= }=0A= =0A= var xaxispos =3D prop['chart.xaxispos'];=0A= var yaxispos =3D prop['chart.yaxispos'];=0A= var isSketch =3D prop['chart.variant'] =3D=3D 'sketch';=0A= =0A= co.beginPath();=0A= co.strokeStyle =3D prop['chart.axis.color'];=0A= co.lineWidth =3D prop['chart.axis.linewidth'] + 0.001;=0A= =0A= =0A= if (ISSAFARI =3D=3D -1) {=0A= co.lineCap =3D 'square';=0A= }=0A= =0A= =0A= // Draw the Y axis=0A= if (prop['chart.noyaxis'] =3D=3D false) {=0A= if (yaxispos =3D=3D 'right') {=0A= co.moveTo(ca.width - this.gutterRight + (isSketch ? = 3 : 0), this.gutterTop - (isSketch ? 3 : 0));=0A= co.lineTo(ca.width - this.gutterRight - (isSketch ? = 2 : 0), ca.height - this.gutterBottom + (isSketch ? 5 : 0));=0A= } else {=0A= co.moveTo(this.gutterLeft - (isSketch ? 2 : 0), = this.gutterTop - (isSketch ? 5 : 0));=0A= co.lineTo(this.gutterLeft - (isSketch ? 1 : 0), = ca.height - this.gutterBottom + (isSketch ? 5 : 0));=0A= }=0A= }=0A= =0A= // Draw the X axis=0A= if (prop['chart.noxaxis'] =3D=3D false) {=0A= if (xaxispos =3D=3D 'center') {=0A= co.moveTo(this.gutterLeft - (isSketch ? 5 : 0), = Math.round(((ca.height - this.gutterTop - this.gutterBottom) / 2) + = this.gutterTop + (isSketch ? 2 : 0)));=0A= co.lineTo(ca.width - this.gutterRight + (isSketch ? = 5 : 0), Math.round(((ca.height - this.gutterTop - this.gutterBottom) / = 2) + this.gutterTop - (isSketch ? 2 : 0)));=0A= } else if (xaxispos =3D=3D 'top') {=0A= co.moveTo(this.gutterLeft - (isSketch ? 3 : 0), = this.gutterTop - (isSketch ? 3 : 0));=0A= co.lineTo(ca.width - this.gutterRight + (isSketch ? = 5 : 0), this.gutterTop + (isSketch ? 2 : 0));=0A= } else {=0A= co.moveTo(this.gutterLeft - (isSketch ? 5 : 0), = ca.height - this.gutterBottom - (isSketch ? 2 : 0));=0A= co.lineTo(ca.width - this.gutterRight + (isSketch ? = 8 : 0), ca.height - this.gutterBottom + (isSketch ? 2 : 0));=0A= }=0A= }=0A= =0A= var numYTicks =3D prop['chart.numyticks'];=0A= =0A= // Draw the Y tickmarks=0A= if (prop['chart.noyaxis'] =3D=3D false && !isSketch) {=0A= var yTickGap =3D (ca.height - this.gutterTop - = this.gutterBottom) / numYTicks;=0A= var xpos =3D yaxispos =3D=3D 'left' ? = this.gutterLeft : ca.width - this.gutterRight;=0A= =0A= if (this.properties['chart.numyticks'] > 0) {=0A= for (y=3Dthis.gutterTop;=0A= xaxispos =3D=3D 'center' ? y <=3D (ca.height - = this.gutterBottom) : y < (ca.height - this.gutterBottom + (xaxispos = =3D=3D 'top' ? 1 : 0));=0A= y +=3D yTickGap) {=0A= =0A= if (xaxispos =3D=3D 'center' && y =3D=3D = (this.gutterTop + (this.grapharea / 2))) continue;=0A= =0A= // X axis at the top=0A= if (xaxispos =3D=3D 'top' && y =3D=3D = this.gutterTop) continue;=0A= =0A= co.moveTo(xpos + (yaxispos =3D=3D 'left' ? 0 : = 0), Math.round(y));=0A= co.lineTo(xpos + (yaxispos =3D=3D 'left' ? -3 : = 3), Math.round(y));=0A= }=0A= }=0A= =0A= /**=0A= * If the X axis is not being shown, draw an extra tick=0A= */=0A= if (prop['chart.noxaxis']) {=0A= if (xaxispos =3D=3D 'center') {=0A= co.moveTo(xpos + (yaxispos =3D=3D 'left' ? -3 : = 3), Math.round(ca.height / 2));=0A= co.lineTo(xpos, Math.round(ca.height / 2));=0A= } else if (xaxispos =3D=3D 'top') {=0A= co.moveTo(xpos + (yaxispos =3D=3D 'left' ? -3 : = 3), Math.round(this.gutterTop));=0A= co.lineTo(xpos, Math.round(this.gutterTop));=0A= } else {=0A= co.moveTo(xpos + (yaxispos =3D=3D 'left' ? -3 : = 3), Math.round(ca.height - this.gutterBottom));=0A= co.lineTo(xpos, Math.round(ca.height - = this.gutterBottom));=0A= }=0A= }=0A= }=0A= =0A= =0A= // Draw the X tickmarks=0A= if (prop['chart.noxaxis'] =3D=3D false && !isSketch) {=0A= =0A= if (typeof(prop['chart.numxticks']) =3D=3D 'number') {=0A= var xTickGap =3D (ca.width - this.gutterLeft - = this.gutterRight) / prop['chart.numxticks'];=0A= } else {=0A= var xTickGap =3D (ca.width - this.gutterLeft - = this.gutterRight) / this.data.length;=0A= }=0A= =0A= if (xaxispos =3D=3D 'bottom') {=0A= yStart =3D ca.height - this.gutterBottom;=0A= yEnd =3D (ca.height - this.gutterBottom) + 3;=0A= } else if (xaxispos =3D=3D 'top') {=0A= yStart =3D this.gutterTop - 3;=0A= yEnd =3D this.gutterTop;=0A= } else if (xaxispos =3D=3D 'center') {=0A= yStart =3D ((ca.height - this.gutterTop - = this.gutterBottom) / 2) + this.gutterTop + 3;=0A= yEnd =3D ((ca.height - this.gutterTop - = this.gutterBottom) / 2) + this.gutterTop - 3;=0A= }=0A= =0A= yStart =3D yStart;=0A= yEnd =3D yEnd;=0A= =0A= //////////////// X TICKS ////////////////=0A= var noEndXTick =3D prop['chart.noendxtick'];=0A= =0A= for (x=3Dthis.gutterLeft + (yaxispos =3D=3D 'left' ? = xTickGap : 0),len=3D(ca.width - this.gutterRight + (yaxispos =3D=3D = 'left' ? 5 : 0)); x<len; x+=3DxTickGap) {=0A= =0A= if (yaxispos =3D=3D 'left' && !noEndXTick && x > = this.gutterLeft) {=0A= co.moveTo(Math.round(x), yStart);=0A= co.lineTo(Math.round(x), yEnd);=0A= =0A= } else if (yaxispos =3D=3D 'left' && noEndXTick && x = > this.gutterLeft && x < (ca.width - this.gutterRight) ) {=0A= co.moveTo(Math.round(x), yStart);=0A= co.lineTo(Math.round(x), yEnd);=0A= =0A= } else if (yaxispos =3D=3D 'right' && x < (ca.width = - this.gutterRight) && !noEndXTick) {=0A= co.moveTo(Math.round(x), yStart);=0A= co.lineTo(Math.round(x), yEnd);=0A= =0A= } else if (yaxispos =3D=3D 'right' && x < (ca.width = - this.gutterRight) && x > (this.gutterLeft) && noEndXTick) {=0A= co.moveTo(Math.round(x), yStart);=0A= co.lineTo(Math.round(x), yEnd);=0A= }=0A= }=0A= =0A= if (prop['chart.noyaxis'] || prop['chart.numxticks'] = =3D=3D null) {=0A= if (typeof(prop['chart.numxticks']) =3D=3D 'number' = && prop['chart.numxticks'] > 0) {=0A= co.moveTo(Math.round(this.gutterLeft), yStart);=0A= co.lineTo(Math.round(this.gutterLeft), yEnd);=0A= }=0A= }=0A= =0A= //////////////// X TICKS ////////////////=0A= }=0A= =0A= /**=0A= * If the Y axis is not being shown, draw an extra tick=0A= */=0A= if (prop['chart.noyaxis'] && prop['chart.noxaxis'] =3D=3D = false && prop['chart.numxticks'] =3D=3D null) {=0A= if (xaxispos =3D=3D 'center') {=0A= co.moveTo(Math.round(this.gutterLeft), (ca.height / = 2) - 3);=0A= co.lineTo(Math.round(this.gutterLeft), (ca.height / = 2) + 3);=0A= } else {=0A= co.moveTo(Math.round(this.gutterLeft), ca.height - = this.gutterBottom);=0A= co.lineTo(Math.round(this.gutterLeft), ca.height - = this.gutterBottom + 3);=0A= }=0A= }=0A= =0A= co.stroke();=0A= }=0A= =0A= =0A= =0A= /**=0A= * Draws the bars=0A= */=0A= this.Drawbars =3D function ()=0A= {=0A= // Variable "caching" so the context can be accessed as a = local variable=0A= var ca =3D this.canvas;=0A= var co =3D this.context;=0A= var prop =3D this.properties;=0A= =0A= co.lineWidth =3D prop['chart.linewidth'];=0A= co.strokeStyle =3D prop['chart.strokecolor'];=0A= co.fillStyle =3D prop['chart.colors'][0];=0A= var prevX =3D 0;=0A= var prevY =3D 0;=0A= var decimals =3D prop['chart.scale.decimals'];=0A= =0A= /**=0A= * Work out the max value=0A= */=0A= if (prop['chart.ymax']) {=0A= =0A= this.scale2 =3D RGraph.getScale2(this, {=0A= = 'max':prop['chart.ymax'],=0A= 'strict': true,=0A= = 'min':prop['chart.ymin'],=0A= = 'scale.thousand':prop['chart.scale.thousand'],=0A= = 'scale.point':prop['chart.scale.point'],=0A= = 'scale.decimals':prop['chart.scale.decimals'],=0A= = 'ylabels.count':prop['chart.ylabels.count'],=0A= = 'scale.round':prop['chart.scale.round'],=0A= 'units.pre': = prop['chart.units.pre'],=0A= 'units.post': = prop['chart.units.post']=0A= });=0A= =0A= } else {=0A= =0A= for (i=3D0; i<this.data.length; ++i) {=0A= if (typeof(this.data[i]) =3D=3D 'object') {=0A= var value =3D prop['chart.grouping'] =3D=3D = 'grouped' ? Number(RGraph.array_max(this.data[i], true)) : = Number(RGraph.array_sum(this.data[i])) ;=0A= =0A= } else {=0A= var value =3D Number(this.data[i]);=0A= }=0A= =0A= this.max =3D Math.max(Math.abs(this.max), = Math.abs(value));=0A= }=0A= =0A= this.scale2 =3D RGraph.getScale2(this, {=0A= 'max':this.max,=0A= = 'min':prop['chart.ymin'],=0A= = 'scale.thousand':prop['chart.scale.thousand'],=0A= = 'scale.point':prop['chart.scale.point'],=0A= = 'scale.decimals':prop['chart.scale.decimals'],=0A= = 'ylabels.count':prop['chart.ylabels.count'],=0A= = 'scale.round':prop['chart.scale.round'],=0A= 'units.pre': = prop['chart.units.pre'],=0A= 'units.post': = prop['chart.units.post']=0A= });=0A= =0A= this.max =3D this.scale2.max; =0A= }=0A= /**=0A= * if the chart is adjustable fix the scale so that it = doesn't change.=0A= */=0A= if (prop['chart.adjustable'] && !prop['chart.ymax']) {=0A= this.Set('chart.ymax', this.scale2.max);=0A= }=0A= =0A= /**=0A= * Draw horizontal bars here=0A= */=0A= if (prop['chart.background.hbars'] && = prop['chart.background.hbars'].length > 0) {=0A= RGraph.DrawBars(this);=0A= }=0A= =0A= var variant =3D prop['chart.variant'];=0A= =0A= /**=0A= * Draw the 3D axes is necessary=0A= */=0A= if (variant =3D=3D '3d') {=0A= RG.Draw3DAxes(this);=0A= }=0A= =0A= /**=0A= * Get the variant once, and draw the bars, be they regular, = stacked or grouped=0A= */=0A= =0A= // Get these variables outside of the loop=0A= var xaxispos =3D prop['chart.xaxispos'];=0A= var width =3D (ca.width - this.gutterLeft - = this.gutterRight ) / this.data.length;=0A= var orig_height =3D height;=0A= var hmargin =3D prop['chart.hmargin'];=0A= var shadow =3D prop['chart.shadow'];=0A= var shadowColor =3D prop['chart.shadow.color'];=0A= var shadowBlur =3D prop['chart.shadow.blur'];=0A= var shadowOffsetX =3D prop['chart.shadow.offsetx'];=0A= var shadowOffsetY =3D prop['chart.shadow.offsety'];=0A= var strokeStyle =3D prop['chart.strokecolor'];=0A= var colors =3D prop['chart.colors'];=0A= var sequentialColorIndex =3D 0;=0A= =0A= for (i=3D0,len=3Dthis.data.length; i<len; i+=3D1) {=0A= =0A= // Work out the height=0A= //The width is up outside the loop=0A= var height =3D ((RGraph.array_sum(this.data[i]) < 0 ? = RGraph.array_sum(this.data[i]) + this.scale2.min : = RGraph.array_sum(this.data[i]) - this.scale2.min) / (this.scale2.max - = this.scale2.min) ) * (ca.height - this.gutterTop - this.gutterBottom);=0A= =0A= // Half the height if the Y axis is at the center=0A= if (xaxispos =3D=3D 'center') {=0A= height /=3D 2;=0A= }=0A= =0A= var x =3D (i * width) + this.gutterLeft;=0A= var y =3D xaxispos =3D=3D 'center' ? ((ca.height - = this.gutterTop - this.gutterBottom) / 2) + this.gutterTop - height=0A= : ca.height - height - = this.gutterBottom;=0A= =0A= // xaxispos is top=0A= if (xaxispos =3D=3D 'top') {=0A= y =3D this.gutterTop + Math.abs(height);=0A= }=0A= =0A= =0A= // Account for negative lengths - Some browsers (eg = Chrome) don't like a negative value=0A= if (height < 0) {=0A= y +=3D height;=0A= height =3D Math.abs(height);=0A= }=0A= =0A= /**=0A= * Turn on the shadow if need be=0A= */=0A= if (shadow) {=0A= co.shadowColor =3D shadowColor;=0A= co.shadowBlur =3D shadowBlur;=0A= co.shadowOffsetX =3D shadowOffsetX;=0A= co.shadowOffsetY =3D shadowOffsetY;=0A= }=0A= =0A= /**=0A= * Draw the bar=0A= */=0A= co.beginPath();=0A= if (typeof(this.data[i]) =3D=3D 'number') {=0A= =0A= var barWidth =3D width - (2 * hmargin);=0A= =0A= /**=0A= * Check for a negative bar width=0A= */=0A= if (barWidth < 0) {=0A= alert('[RGRAPH] Warning: you have a negative = bar width. This may be caused by the chart.hmargin being too high or the = width of the canvas not being sufficient.');=0A= }=0A= =0A= // Set the fill color=0A= co.strokeStyle =3D strokeStyle;=0A= co.fillStyle =3D colors[0];=0A= =0A= /**=0A= * Sequential colors=0A= */=0A= if (prop['chart.colors.sequential']) {=0A= co.fillStyle =3D colors[i];=0A= }=0A= =0A= if (variant =3D=3D 'sketch') {=0A= =0A= co.lineCap =3D 'round';=0A= =0A= var sketchOffset =3D 3;=0A= =0A= co.beginPath();=0A= =0A= co.strokeStyle =3D colors[0];=0A= =0A= /**=0A= * Sequential colors=0A= */=0A= if (prop['chart.colors.sequential']) {=0A= co.strokeStyle =3D colors[i];=0A= }=0A= =0A= // Left side=0A= co.moveTo(x + hmargin + 2, y + height - 2);=0A= co.lineTo(x + hmargin - 1, y - 4);=0A= =0A= // The top=0A= co.moveTo(x + hmargin - 3, y + -2 + = (this.data[i] < 0 ? height : 0));=0A= co.bezierCurveTo(=0A= x + ((hmargin + width) * = 0.33),=0A= y + 15 + (this.data[i] < 0 = ? height - 10: 0),=0A= x + ((hmargin + width) * = 0.66),=0A= y + 5 + (this.data[i] < 0 ? = height - 10 : 0),x + hmargin + width + -1, y + 0 + (this.data[i] < 0 ? = height : 0)=0A= );=0A= =0A= =0A= // The right side=0A= co.moveTo(x + hmargin + width - 5, y - 5);=0A= co.lineTo(x + hmargin + width - 3, y + = height - 3);=0A= =0A= if (prop['chart.variant.sketch.verticals']) {=0A= for (var r=3D0.2; r<=3D0.8; r+=3D0.2) {=0A= co.moveTo(x + hmargin + width + (r > = 0.4 ? -1 : 3) - (r * width),y - 1);=0A= co.lineTo(x + hmargin + width - (r > = 0.4 ? 1 : -1) - (r * width), y + height + (r =3D=3D 0.2 ? 1 : -2));=0A= }=0A= }=0A= =0A= co.stroke();=0A= =0A= // Regular bar=0A= } else if (variant =3D=3D 'bar' || variant = =3D=3D '3d' || variant =3D=3D 'glass' || variant =3D=3D 'bevel') {=0A= =0A= if (RGraph.isOld() && shadow) {=0A= this.DrawIEShadow([x + hmargin, y, = barWidth, height]);=0A= }=0A= =0A= if (variant =3D=3D 'glass') {=0A= RGraph.filledCurvyRect(co, x + hmargin, = y, barWidth, height, 3, this.data[i] > 0, this.data[i] > 0, this.data[i] = < 0, this.data[i] < 0);=0A= RGraph.strokedCurvyRect(co, x + hmargin, = y, barWidth, height, 3, this.data[i] > 0, this.data[i] > 0, this.data[i] = < 0, this.data[i] < 0);=0A= } else {=0A= // On 9th April 2013 these two were = swapped around so that the stroke happens SECOND so that any=0A= // shadow that is cast by the fill does = not overwrite the stroke=0A= //co.beginPath();=0A= // co.rect(x + hmargin, y, barWidth, = height);=0A= //co.fill();=0A= //co.stroke();=0A= co.fillRect(x + hmargin, y, barWidth, = height);=0A= co.strokeRect(x + hmargin, y, barWidth, = height);=0A= }=0A= =0A= // 3D effect=0A= if (variant =3D=3D '3d') {=0A= =0A= var prevStrokeStyle =3D co.strokeStyle;=0A= var prevFillStyle =3D co.fillStyle;=0A= =0A= // Draw the top=0A= co.beginPath();=0A= co.moveTo(x + hmargin, y);=0A= co.lineTo(x + hmargin + 10, y - 5);=0A= co.lineTo(x + hmargin + 10 + = barWidth, y - 5);=0A= co.lineTo(x + hmargin + barWidth, y);=0A= co.closePath();=0A= =0A= co.stroke();=0A= co.fill();=0A= =0A= // Draw the right hand side=0A= co.beginPath();=0A= co.moveTo(x + hmargin + barWidth, y);=0A= co.lineTo(x + hmargin + barWidth + = 10, y - 5);=0A= co.lineTo(x + hmargin + barWidth + = 10, y + height - 5);=0A= co.lineTo(x + hmargin + barWidth, y = + height);=0A= co.closePath();=0A= =0A= co.stroke(); =0A= co.fill();=0A= =0A= // Draw the darker top section=0A= co.beginPath(); = =0A= co.fillStyle =3D = 'rgba(255,255,255,0.3)';=0A= co.moveTo(x + hmargin, y);=0A= co.lineTo(x + hmargin + 10, y - 5);=0A= co.lineTo(x + hmargin + 10 + = barWidth, y - 5);=0A= co.lineTo(x + hmargin + barWidth, y);=0A= co.lineTo(x + hmargin, y);=0A= co.closePath();=0A= =0A= co.stroke();=0A= co.fill();=0A= =0A= // Draw the darker right side section=0A= co.beginPath();=0A= co.fillStyle =3D 'rgba(0,0,0,0.4)';=0A= co.moveTo(x + hmargin + barWidth, y);=0A= co.lineTo(x + hmargin + barWidth + = 10, y - 5);=0A= co.lineTo(x + hmargin + barWidth + = 10, y - 5 + height);=0A= co.lineTo(x + hmargin + barWidth, y = + height);=0A= co.lineTo(x + hmargin + barWidth, y);=0A= co.closePath();=0A= =0A= co.stroke();=0A= co.fill();=0A= =0A= co.strokeStyle =3D prevStrokeStyle;=0A= co.fillStyle =3D prevFillStyle;=0A= =0A= // Glass variant=0A= } else if (variant =3D=3D 'glass') {=0A= =0A= var grad =3D co.createLinearGradient(x + = hmargin,y,x + hmargin + (barWidth / 2),y);=0A= grad.addColorStop(0, = 'rgba(255,255,255,0.9)');=0A= grad.addColorStop(1, = 'rgba(255,255,255,0.5)');=0A= =0A= co.beginPath();=0A= co.fillStyle =3D grad;=0A= co.fillRect(x + hmargin + 2,y + = (this.data[i] > 0 ? 2 : 0),(barWidth / 2) - 2,height - 2);=0A= co.fill();=0A= }=0A= =0A= // This bit draws the text labels that = appear above the bars if requested=0A= if (prop['chart.labels.above']) {=0A= =0A= // Turn off any shadow=0A= if (shadow) {=0A= RGraph.NoShadow(this);=0A= }=0A= =0A= var yPos =3D y - 3;=0A= var xPos =3D x + hmargin + (barWidth / = 2);=0A= =0A= // Account for negative bars=0A= if (this.data[i] < 0) {=0A= yPos +=3D height + 6 + = (prop['chart.text.size']);=0A= }=0A= =0A= // Account for chart.xaxispos=3Dtop=0A= if (prop['chart.xaxispos'] =3D=3D 'top') = {=0A= yPos =3D this.gutterTop + height + 6 = + (typeof(prop['chart.labels.above.size']) =3D=3D 'number' ? = prop['chart.labels.above.size'] : prop['chart.text.size'] - 4);=0A= }=0A= =0A= // Account for chart.variant=3D3d=0A= if (prop['chart.variant'] =3D=3D '3d') {=0A= yPos -=3D 3;=0A= xPos +=3D 5;=0A= }=0A= =0A= // Angled above labels=0A= if = (this.properties['chart.labels.above.angle']) {=0A= var angle =3D -45;=0A= var halign =3D 'left';=0A= var valign =3D 'center';=0A= } else {=0A= var angle =3D 0;=0A= var halign =3D 'center';=0A= var valign =3D 'bottom';=0A= }=0A= =0A= // Above labels color=0A= if (typeof = this.properties['chart.labels.above.color'] =3D=3D 'string') {=0A= co.fillStyle =3D = prop['chart.labels.above.color'];=0A= } else {=0A= co.fillStyle =3D = prop['chart.text.color'];=0A= }=0A= =0A= RGraph.Text2(this, {'font': = prop['chart.text.font'],=0A= 'size': = typeof(prop['chart.labels.above.size']) =3D=3D 'number' ? = prop['chart.labels.above.size'] : prop['chart.text.size'] - 3,=0A= 'x': xPos,=0A= 'y': yPos,=0A= 'text': = RGraph.number_format(this, = Number(this.data[i]).toFixed(prop['chart.labels.above.decimals']),prop['c= hart.units.pre'],prop['chart.units.post']),=0A= 'halign': halign,=0A= 'marker': false,=0A= 'valign': valign,=0A= 'angle': angle,=0A= 'tag': 'labels.above'=0A= });=0A= }=0A= =0A= // Dot chart=0A= } else if (variant =3D=3D 'dot') {=0A= =0A= co.beginPath();=0A= co.moveTo(x + (width / 2), y);=0A= co.lineTo(x + (width / 2), y + height);=0A= co.stroke();=0A= =0A= co.beginPath();=0A= co.fillStyle =3D = this.properties['chart.colors'][i];=0A= co.arc(x + (width / 2), y + (this.data[i] > = 0 ? 0 : height), 2, 0, 6.28, 0);=0A= =0A= // Set the colour for the dots=0A= co.fillStyle =3D prop['chart.colors'][0];=0A= =0A= /**=0A= * Sequential colors=0A= */=0A= if (prop['chart.colors.sequential']) {=0A= co.fillStyle =3D colors[i];=0A= }=0A= =0A= co.stroke();=0A= co.fill();=0A= =0A= =0A= // Unknown variant type=0A= } else {=0A= alert('[BAR] Warning! Unknown chart.variant: = ' + variant);=0A= }=0A= =0A= this.coords.push([x + hmargin, y, width - (2 * = hmargin), height]);=0A= =0A= if (typeof this.coords2[i] =3D=3D = 'undefined') {=0A= this.coords2[i] =3D [];=0A= }=0A= this.coords2[i].push([x + hmargin, y, width = - (2 * hmargin), height]);=0A= =0A= =0A= /**=0A= * Stacked bar=0A= */=0A= } else if (this.data[i] && typeof(this.data[i]) = =3D=3D 'object' && prop['chart.grouping'] =3D=3D 'stacked') {=0A= =0A= if (this.scale2.min) {=0A= alert("[ERROR] Stacked Bar charts with a Y = min are not supported");=0A= }=0A= =0A= var barWidth =3D width - (2 * hmargin);=0A= var redrawCoords =3D [];// Necessary to draw if = the shadow is enabled=0A= var startY =3D 0;=0A= var dataset =3D this.data[i];=0A= =0A= /**=0A= * Check for a negative bar width=0A= */=0A= if (barWidth < 0) {=0A= alert('[RGRAPH] Warning: you have a negative = bar width. This may be caused by the chart.hmargin being too high or the = width of the canvas not being sufficient.');=0A= }=0A= =0A= for (j=3D0; j<dataset.length; ++j) {=0A= =0A= // Stacked bar chart and X axis pos in the = middle - poitless since negative values are not permitted=0A= if (xaxispos =3D=3D 'center') {=0A= alert("[BAR] It's pointless having the X = axis position at the center on a stacked bar chart.");=0A= return;=0A= }=0A= =0A= // Negative values not permitted for the = stacked chart=0A= if (this.data[i][j] < 0) {=0A= alert('[BAR] Negative values are not = permitted with a stacked bar chart. Try a grouped one instead.');=0A= return;=0A= }=0A= =0A= /**=0A= * Set the fill and stroke colors=0A= */=0A= co.strokeStyle =3D strokeStyle=0A= co.fillStyle =3D colors[j];=0A= =0A= if (prop['chart.colors.reverse']) {=0A= co.fillStyle =3D = colors[this.data[i].length - j - 1];=0A= }=0A= =0A= if (prop['chart.colors.sequential'] && = colors[sequentialColorIndex]) {=0A= co.fillStyle =3D = colors[sequentialColorIndex++];=0A= } else if (prop['chart.colors.sequential']) {=0A= co.fillStyle =3D = colors[sequentialColorIndex - 1];=0A= }=0A= =0A= var height =3D (dataset[j] / = this.scale2.max) * (ca.height - this.gutterTop - this.gutterBottom );=0A= =0A= // If the X axis pos is in the center, we = need to half the height=0A= if (xaxispos =3D=3D 'center') {=0A= height /=3D 2;=0A= }=0A= =0A= var totalHeight =3D = (RGraph.array_sum(dataset) / this.scale2.max) * (ca.height - hmargin - = this.gutterTop - this.gutterBottom);=0A= =0A= /**=0A= * Store the coords for tooltips=0A= */=0A= this.coords.push([x + hmargin, y, width - (2 = * hmargin), height]);=0A= if (typeof this.coords2[i] =3D=3D = 'undefined') {=0A= this.coords2[i] =3D [];=0A= }=0A= this.coords2[i].push([x + hmargin, y, width = - (2 * hmargin), height]);=0A= =0A= // MSIE shadow=0A= if (RGraph.isOld() && shadow) {=0A= this.DrawIEShadow([x + hmargin, y, width = - (2 * hmargin), height + 1]);=0A= }=0A= =0A= if (height > 0) {=0A= co.strokeRect(x + hmargin, y, width - (2 = * hmargin), height);=0A= co.fillRect(x + hmargin, y, width - (2 * = hmargin), height);=0A= }=0A= =0A= =0A= if (j =3D=3D 0) {=0A= var startY =3D y;=0A= var startX =3D x;=0A= }=0A= =0A= /**=0A= * Store the redraw coords if the shadow is = enabled=0A= */=0A= if (shadow) {=0A= redrawCoords.push([x + hmargin, y, width = - (2 * hmargin), height, co.fillStyle]);=0A= }=0A= =0A= /**=0A= * Stacked 3D effect=0A= */=0A= if (variant =3D=3D '3d') {=0A= =0A= var prevFillStyle =3D co.fillStyle;=0A= var prevStrokeStyle =3D co.strokeStyle;=0A= =0A= =0A= // Draw the top side=0A= if (j =3D=3D 0) {=0A= co.beginPath();=0A= co.moveTo(startX + hmargin, y);=0A= co.lineTo(startX + 10 + hmargin, = y - 5);=0A= co.lineTo(startX + 10 + barWidth = + hmargin, y - 5);=0A= co.lineTo(startX + barWidth + = hmargin, y);=0A= co.closePath();=0A= =0A= co.fill();=0A= co.stroke();=0A= }=0A= =0A= // Draw the side section=0A= co.beginPath();=0A= co.moveTo(startX + barWidth + = hmargin, y);=0A= co.lineTo(startX + barWidth + = hmargin + 10, y - 5);=0A= co.lineTo(startX + barWidth + = hmargin + 10, y - 5 + height);=0A= co.lineTo(startX + barWidth + = hmargin , y + height);=0A= co.closePath();=0A= =0A= co.fill();=0A= co.stroke();=0A= =0A= // Draw the darker top side=0A= if (j =3D=3D 0) {=0A= co.fillStyle =3D = 'rgba(255,255,255,0.3)';=0A= co.beginPath();=0A= co.moveTo(startX + hmargin, y);=0A= co.lineTo(startX + 10 + hmargin, = y - 5);=0A= co.lineTo(startX + 10 + barWidth = + hmargin, y - 5);=0A= co.lineTo(startX + barWidth + = hmargin, y);=0A= co.closePath();=0A= =0A= co.fill();=0A= co.stroke();=0A= }=0A= =0A= // Draw the darker side section=0A= co.fillStyle =3D 'rgba(0,0,0,0.4)';=0A= co.beginPath();=0A= co.moveTo(startX + barWidth + = hmargin, y);=0A= co.lineTo(startX + barWidth + = hmargin + 10, y - 5);=0A= co.lineTo(startX + barWidth + = hmargin + 10, y - 5 + height);=0A= co.lineTo(startX + barWidth + = hmargin , y + height);=0A= co.closePath();=0A= =0A= co.fill();=0A= co.stroke();=0A= =0A= co.strokeStyle =3D prevStrokeStyle;=0A= co.fillStyle =3D prevFillStyle;=0A= }=0A= =0A= y +=3D height;=0A= }=0A= =0A= // This bit draws the text labels that appear = above the bars if requested=0A= if (prop['chart.labels.above']) {=0A= =0A= // Turn off any shadow=0A= RG.NoShadow(this);=0A= =0A= // Above labels color=0A= if (typeof = this.properties['chart.labels.above.color'] =3D=3D 'string') {=0A= co.fillStyle =3D = prop['chart.labels.above.color'];=0A= } else {=0A= co.fillStyle =3D = prop['chart.text.color'];=0A= }=0A= =0A= // Angled above labels=0A= if (prop['chart.labels.above.angle']) {=0A= var angle =3D -45;=0A= var halign =3D 'left';=0A= var valign =3D 'center';=0A= } else {=0A= var angle =3D 0;=0A= var halign =3D 'center';=0A= var valign =3D 'bottom';=0A= }=0A= =0A= RGraph.Text2(this,{'font': = prop['chart.text.font'],=0A= 'size': = typeof(prop['chart.labels.above.size']) =3D=3D 'number' ? = prop['chart.labels.above.size'] : prop['chart.text.size'] - 3,=0A= 'x': startX + (barWidth / = 2) + prop['chart.hmargin'],=0A= 'y': startY - = (prop['chart.shadow'] && prop['chart.shadow.offsety'] < 0 ? 7 : 4) - = (prop['chart.variant'] =3D=3D '3d' ? 5 : 0),=0A= 'text': = String(prop['chart.units.pre'] + = RGraph.array_sum(this.data[i]).toFixed(prop['chart.labels.above.decimals'= ]) + prop['chart.units.post']),=0A= 'angle': angle,=0A= 'valign': valign,=0A= 'halign': halign,=0A= 'tag': 'labels.above'=0A= });=0A= =0A= =0A= // Turn any shadow back on=0A= if (shadow) {=0A= co.shadowColor =3D shadowColor;=0A= co.shadowBlur =3D shadowBlur;=0A= co.shadowOffsetX =3D shadowOffsetX;=0A= co.shadowOffsetY =3D shadowOffsetY;=0A= }=0A= }=0A= =0A= =0A= /**=0A= * Redraw the bars if the shadow is enabled due = to hem being drawn from the bottom up, and the=0A= * shadow spilling over to higher up bars=0A= */=0A= if (shadow) {=0A= =0A= RGraph.NoShadow(this);=0A= =0A= for (k=3D0; k<redrawCoords.length; ++k) {=0A= co.strokeStyle =3D strokeStyle;=0A= co.fillStyle =3D redrawCoords[k][4];=0A= co.strokeRect(redrawCoords[k][0], = redrawCoords[k][1], redrawCoords[k][2], redrawCoords[k][3]);=0A= co.fillRect(redrawCoords[k][0], = redrawCoords[k][1], redrawCoords[k][2], redrawCoords[k][3]);=0A= =0A= co.stroke();=0A= co.fill();=0A= }=0A= =0A= // Reset the redraw coords to be empty=0A= redrawCoords =3D [];=0A= }=0A= /**=0A= * Grouped bar=0A= */=0A= } else if (this.data[i] && typeof(this.data[i]) = =3D=3D 'object' && prop['chart.grouping'] =3D=3D 'grouped') {=0A= =0A= var redrawCoords =3D [];=0A= co.lineWidth =3D prop['chart.linewidth'];=0A= =0A= for (j=3D0; j<this.data[i].length; ++j) {=0A= =0A= // Set the fill and stroke colors=0A= co.strokeStyle =3D strokeStyle;=0A= co.fillStyle =3D colors[j];=0A= =0A= /**=0A= * Sequential colors=0A= */=0A= if (prop['chart.colors.sequential'] && = colors[sequentialColorIndex]) {=0A= co.fillStyle =3D = colors[sequentialColorIndex++];=0A= } else if (prop['chart.colors.sequential']) {=0A= co.fillStyle =3D = colors[sequentialColorIndex - 1];=0A= }=0A= =0A= var individualBarWidth =3D (width - (2 * = hmargin)) / this.data[i].length;=0A= var height =3D ((this.data[i][j] + = (this.data[i][j] < 0 ? this.scale2.min : (-1 * this.scale2.min) )) / = (this.scale2.max - this.scale2.min) ) * (ca.height - this.gutterTop - = this.gutterBottom );=0A= var groupedMargin =3D = prop['chart.hmargin.grouped'];=0A= var startX =3D x + hmargin + (j * = individualBarWidth);=0A= =0A= /**=0A= * Check for a negative bar width=0A= */=0A= if (individualBarWidth < 0) {=0A= alert('[RGRAPH] Warning: you have a = negative bar width. This may be caused by the chart.hmargin being too = high or the width of the canvas not being sufficient.');=0A= }=0A= =0A= // If the X axis pos is in the center, we = need to half the height=0A= if (xaxispos =3D=3D 'center') {=0A= height /=3D 2;=0A= }=0A= =0A= /**=0A= * Determine the start positioning for the bar=0A= */=0A= if (xaxispos =3D=3D 'top') {=0A= var startY =3D this.gutterTop;=0A= var height =3D Math.abs(height);=0A= =0A= } else if (xaxispos =3D=3D 'center') {=0A= var startY =3D this.gutterTop + = (this.grapharea / 2) - height;=0A= =0A= } else {=0A= var startY =3D ca.height - = this.gutterBottom - height;=0A= var height =3D Math.abs(height);=0A= }=0A= =0A= /**=0A= * Draw MSIE shadow=0A= */=0A= if (RGraph.isOld() && shadow) {=0A= this.DrawIEShadow([startX, startY, = individualBarWidth, height]);=0A= }=0A= =0A= co.strokeRect(startX + groupedMargin, = startY, individualBarWidth - (2 * groupedMargin), height);=0A= co.fillRect(startX + groupedMargin, startY, = individualBarWidth - (2 * groupedMargin), height);=0A= y +=3D height;=0A= =0A= =0A= =0A= /**=0A= * Grouped 3D effect=0A= */=0A= if (variant =3D=3D '3d') {=0A= var prevFillStyle =3D co.fillStyle;=0A= var prevStrokeStyle =3D co.strokeStyle;=0A= =0A= // Draw the top side=0A= co.beginPath();=0A= co.moveTo(startX, startY);=0A= co.lineTo(startX + 10, startY - 5);=0A= co.lineTo(startX + 10 + = individualBarWidth, startY - 5);=0A= co.lineTo(startX + = individualBarWidth, startY);=0A= co.closePath();=0A= =0A= co.fill();=0A= co.stroke();=0A= =0A= // Draw the side section=0A= co.beginPath();=0A= co.moveTo(startX + = individualBarWidth, startY);=0A= co.lineTo(startX + = individualBarWidth + 10, startY - 5);=0A= co.lineTo(startX + = individualBarWidth + 10, startY - 5 + height);=0A= co.lineTo(startX + = individualBarWidth , startY + height);=0A= co.closePath();=0A= =0A= co.fill();=0A= co.stroke();=0A= =0A= =0A= // Draw the darker top side=0A= co.fillStyle =3D 'rgba(255,255,255,0.3)';=0A= co.beginPath();=0A= co.moveTo(startX, startY);=0A= co.lineTo(startX + 10, startY - 5);=0A= co.lineTo(startX + 10 + = individualBarWidth, startY - 5);=0A= co.lineTo(startX + = individualBarWidth, startY);=0A= co.closePath();=0A= =0A= co.fill();=0A= co.stroke();=0A= =0A= // Draw the darker side section=0A= co.fillStyle =3D 'rgba(0,0,0,0.4)';=0A= co.beginPath();=0A= co.moveTo(startX + = individualBarWidth, startY);=0A= co.lineTo(startX + = individualBarWidth + 10, startY - 5);=0A= co.lineTo(startX + = individualBarWidth + 10, startY - 5 + height);=0A= co.lineTo(startX + = individualBarWidth , startY + height);=0A= co.closePath();=0A= =0A= co.fill();=0A= co.stroke();=0A= =0A= co.strokeStyle =3D prevStrokeStyle;=0A= co.fillStyle =3D prevFillStyle;=0A= }=0A= =0A= if (height < 0) {=0A= height =3D Math.abs(height);=0A= startY =3D startY - height;=0A= }=0A= =0A= this.coords.push([startX + groupedMargin, = startY, individualBarWidth - (2 * groupedMargin), height]);=0A= if (typeof this.coords2[i] =3D=3D = 'undefined') {=0A= this.coords2[i] =3D [];=0A= }=0A= =0A= this.coords2[i].push([startX + = groupedMargin, startY, individualBarWidth - (2 * groupedMargin), = height]);=0A= =0A= // Facilitate shadows going to the left=0A= if (prop['chart.shadow']) {=0A= redrawCoords.push([startX + = groupedMargin, startY, individualBarWidth - (2 * groupedMargin), height, = co.fillStyle]);=0A= }=0A= =0A= =0A= // This bit draws the text labels that = appear above the bars if requested=0A= if (prop['chart.labels.above']) {=0A= =0A= co.strokeStyle =3D 'rgba(0,0,0,0)';=0A= =0A= // Turn off any shadow=0A= if (shadow) {=0A= RGraph.NoShadow(this);=0A= }=0A= =0A= var yPos =3D y - 3;=0A= =0A= // Angled above labels=0A= if (prop['chart.labels.above.angle']) {=0A= var angle =3D -45;=0A= var halign =3D 'left';=0A= var valign =3D 'center';=0A= } else {=0A= =0A= var angle =3D 0;=0A= var halign =3D 'center';=0A= var valign =3D 'bottom';=0A= =0A= // Account for negative bars=0A= if (this.data[i][j] < 0 || = prop['chart.xaxispos'] =3D=3D 'top') {=0A= yPos =3D startY + height + 6;=0A= var valign =3D 'top';=0A= } else {=0A= yPos =3D startY;=0A= }=0A= }=0A= =0A= // Above labels color=0A= if (typeof = this.properties['chart.labels.above.color'] =3D=3D 'string') {=0A= co.fillStyle =3D = prop['chart.labels.above.color'];=0A= } else {=0A= co.fillStyle =3D = prop['chart.text.color'];=0A= }=0A= =0A= RGraph.Text2(this, {'font': = prop['chart.text.font'],=0A= 'size': = typeof(prop['chart.labels.above.size']) =3D=3D 'number' ? = prop['chart.labels.above.size'] : prop['chart.text.size'] - 3,=0A= 'x': startX + = (individualBarWidth / 2),=0A= 'y': yPos - 3,=0A= 'text': = RGraph.number_format(this, = this.data[i][j].toFixed(prop['chart.labels.above.decimals'])),=0A= 'halign': halign,=0A= 'valign': valign,=0A= 'angle':angle,=0A= 'tag': 'labels.above'=0A= });=0A= =0A= // Turn any shadow back on=0A= if (shadow) {=0A= co.shadowColor =3D shadowColor;=0A= co.shadowBlur =3D shadowBlur;=0A= co.shadowOffsetX =3D shadowOffsetX;=0A= co.shadowOffsetY =3D shadowOffsetY;=0A= }=0A= }=0A= }=0A= =0A= /**=0A= * Redraw the bar if shadows are going to the left=0A= */=0A= if (redrawCoords.length) {=0A= =0A= RGraph.NoShadow(this);=0A= =0A= co.lineWidth =3D prop['chart.linewidth'];=0A= =0A= co.beginPath();=0A= for (var j=3D0; j<redrawCoords.length; = ++j) {=0A= =0A= co.fillStyle =3D = redrawCoords[j][4];=0A= co.strokeStyle =3D = prop['chart.strokecolor'];=0A= =0A= co.fillRect(redrawCoords[j][0], = redrawCoords[j][1], redrawCoords[j][2], redrawCoords[j][3]);=0A= co.strokeRect(redrawCoords[j][0], = redrawCoords[j][1], redrawCoords[j][2], redrawCoords[j][3]);=0A= }=0A= co.fill();=0A= co.stroke();=0A= =0A= redrawCoords =3D [];=0A= }=0A= } else {=0A= this.coords.push([]);=0A= }=0A= =0A= co.closePath();=0A= }=0A= =0A= /**=0A= * Turn off any shadow=0A= */=0A= RGraph.NoShadow(this);=0A= }=0A= =0A= =0A= =0A= /**=0A= * Draws the labels for the graph=0A= */=0A= this.DrawLabels =3D function ()=0A= {=0A= // Variable "caching" so the context can be accessed as a = local variable=0A= var ca =3D this.canvas;=0A= var co =3D this.context;=0A= var prop =3D this.properties;=0A= var context =3D co;=0A= =0A= var text_angle =3D prop['chart.text.angle'];=0A= var text_size =3D prop['chart.text.size'];=0A= var labels =3D prop['chart.labels'];=0A= =0A= =0A= // Draw the Y axis labels:=0A= if (prop['chart.ylabels']) {=0A= if (prop['chart.xaxispos'] =3D=3D 'top') = this.Drawlabels_top();=0A= if (prop['chart.xaxispos'] =3D=3D 'center') = this.Drawlabels_center();=0A= if (prop['chart.xaxispos'] =3D=3D 'bottom') = this.Drawlabels_bottom();=0A= }=0A= =0A= /**=0A= * The X axis labels=0A= */=0A= if (typeof(labels) =3D=3D 'object' && labels) {=0A= =0A= var yOffset =3D Number(prop['chart.xlabels.offset']);=0A= =0A= /**=0A= * Text angle=0A= */=0A= if (prop['chart.text.angle'] !=3D 0) {=0A= var valign =3D 'center';=0A= var halign =3D 'right';=0A= var angle =3D 0 - prop['chart.text.angle'];=0A= } else {=0A= var valign =3D 'top';=0A= var halign =3D 'center';=0A= var angle =3D 0;=0A= }=0A= =0A= // Draw the X axis labels=0A= co.fillStyle =3D prop['chart.text.color'];=0A= =0A= // How wide is each bar=0A= var barWidth =3D (ca.width - this.gutterRight - = this.gutterLeft) / labels.length;=0A= =0A= // Reset the xTickGap=0A= xTickGap =3D (ca.width - this.gutterRight - = this.gutterLeft) / labels.length=0A= =0A= // Draw the X tickmarks=0A= var i=3D0;=0A= var font =3D prop['chart.text.font'];=0A= =0A= for (x=3Dthis.gutterLeft + (xTickGap / 2); x<=3Dca.width = - this.gutterRight; x+=3DxTickGap) {=0A= =0A= RGraph.Text2(this, {'font': font,=0A= 'size': text_size,=0A= 'x': x,=0A= 'y': prop['chart.xaxispos'] = =3D=3D 'top' ? this.gutterTop - yOffset - 5: (ca.height - = this.gutterBottom) + yOffset + 3,=0A= 'text': String(labels[i++]),=0A= 'valign': prop['chart.xaxispos'] = =3D=3D 'top' ? 'bottom' : valign,=0A= 'halign': halign,=0A= 'tag':'label',=0A= 'marker':false,=0A= 'angle':angle,=0A= 'tag': 'labels'=0A= });=0A= }=0A= }=0A= =0A= /**=0A= * If chart.labels.above.specific is specified, draw them=0A= */=0A= if (prop['chart.labels.above.specific']) {=0A= =0A= var labels =3D prop['chart.labels.above.specific'];=0A= =0A= for (var i=3D0; i<this.coords.length; ++i) {=0A= =0A= var xaxispos =3D prop['chart.xaxispos'];=0A= var coords =3D this.coords[i];=0A= var value =3D this.data_arr[i];=0A= var valign =3D (value >=3D0 && xaxispos !=3D 'top') = ? 'bottom' : 'top';=0A= var halign =3D 'center';=0A= var text =3D labels[i];=0A= =0A= =0A= if (text && text.toString().length > 0) {=0A= RGraph.Text2(this, {'font': = prop['chart.text.font'],=0A= 'size': = prop['chart.labels.above.size'] ? prop['chart.labels.above.size'] : = prop['chart.text.size'],=0A= 'x': coords[0] + (coords[2] = / 2),=0A= 'y': (value >=3D0 && = xaxispos !=3D 'top') ? coords[1] - 5 : coords[1] + coords[3] + 3,=0A= 'text': String(labels[i]),=0A= 'valign': valign,=0A= 'halign': halign,=0A= 'tag': 'labels.above'=0A= });=0A= }=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= /**=0A= * Draws the X axis at the top=0A= */=0A= this.Drawlabels_top =3D function ()=0A= {=0A= var ca =3D this.canvas;=0A= var co =3D this.context;=0A= var prop =3D this.properties;=0A= =0A= co.beginPath();=0A= co.fillStyle =3D prop['chart.text.color'];=0A= co.strokeStyle =3D 'black';=0A= =0A= if (prop['chart.xaxispos'] =3D=3D 'top') {=0A= =0A= var context =3D co;=0A= var text_size =3D prop['chart.text.size'];=0A= var units_pre =3D prop['chart.units.pre'];=0A= var units_post =3D prop['chart.units.post'];=0A= var align =3D prop['chart.yaxispos'] =3D=3D 'left' = ? 'right' : 'left';=0A= var font =3D prop['chart.text.font'];=0A= var numYLabels =3D prop['chart.ylabels.count'];=0A= var ymin =3D prop['chart.ymin'];=0A= =0A= if (prop['chart.ylabels.inside'] =3D=3D true) {=0A= var xpos =3D prop['chart.yaxispos'] =3D=3D 'left' ? = this.gutterLeft + 5 : ca.width - this.gutterRight - 5;=0A= var align =3D prop['chart.yaxispos'] =3D=3D 'left' ? = 'left' : 'right';=0A= var boxed =3D true;=0A= } else {=0A= var xpos =3D prop['chart.yaxispos'] =3D=3D 'left' ? = this.gutterLeft - 5 : ca.width - this.gutterRight + 5;=0A= var boxed =3D false;=0A= }=0A= =0A= /**=0A= * Draw specific Y labels here so that the local = variables can be reused=0A= */=0A= if (typeof(prop['chart.ylabels.specific']) =3D=3D = 'object' && prop['chart.ylabels.specific']) {=0A= =0A= var labels =3D = RGraph.array_reverse(prop['chart.ylabels.specific']);=0A= var grapharea =3D ca.height - this.gutterTop - = this.gutterBottom;=0A= =0A= for (var i=3D0; i<labels.length; ++i) {=0A= =0A= var y =3D this.gutterTop + (grapharea * (i / = labels.length)) + (grapharea / labels.length);=0A= =0A= RGraph.Text2(this, {'font': font,=0A= 'size': text_size,=0A= 'x': xpos,=0A= 'y': y,=0A= 'text': String(labels[i]),=0A= 'valign': 'center',=0A= 'halign': align,=0A= 'bordered':boxed,=0A= 'tag': 'scale'=0A= });=0A= }=0A= =0A= return;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * Draw the scale=0A= */=0A= var labels =3D this.scale2.labels;=0A= for (var i=3D0; i<labels.length; ++i) {=0A= RGraph.Text2(this, {'font': font,=0A= 'size':text_size,=0A= 'x':xpos,=0A= 'y':this.gutterTop + = ((this.grapharea / labels.length) * (i + 1)),=0A= 'text': '-' + labels[i],=0A= 'valign': 'center',=0A= 'halign': align,=0A= 'bordered': boxed,=0A= 'tag':'scale'});=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * Show the minimum value if its not zero=0A= */=0A= if (prop['chart.ymin'] !=3D 0 || prop['chart.noxaxis']) {=0A= =0A= RGraph.Text2(this, {'font': font,=0A= 'size': text_size,=0A= 'x': xpos,=0A= 'y': this.gutterTop,=0A= 'text': (this.scale2.min !=3D 0 = ? '-' : '') + = RGraph.number_format(this,(this.scale2.min.toFixed((prop['chart.scale.dec= imals']))), units_pre, units_post),=0A= 'valign': 'center',=0A= 'halign': align,=0A= 'bordered': boxed,=0A= 'tag': 'scale'});=0A= }=0A= =0A= }=0A= =0A= co.fill();=0A= }=0A= =0A= =0A= =0A= /**=0A= * Draws the X axis in the middle=0A= */=0A= this.Drawlabels_center =3D function ()=0A= {=0A= var ca =3D this.canvas;=0A= var co =3D this.context;=0A= var prop =3D this.properties;=0A= =0A= var font =3D prop['chart.text.font'];=0A= var numYLabels =3D prop['chart.ylabels.count'];=0A= =0A= co.fillStyle =3D prop['chart.text.color'];=0A= =0A= if (prop['chart.xaxispos'] =3D=3D 'center') {=0A= =0A= /**=0A= * Draw the top labels=0A= */=0A= var text_size =3D prop['chart.text.size'];=0A= var units_pre =3D prop['chart.units.pre'];=0A= var units_post =3D prop['chart.units.post'];=0A= var context =3D co;=0A= var align =3D '';=0A= var xpos =3D 0;=0A= var boxed =3D false;=0A= var ymin =3D prop['chart.ymin'];=0A= =0A= co.fillStyle =3D prop['chart.text.color'];=0A= co.strokeStyle =3D 'black';=0A= =0A= if (prop['chart.ylabels.inside'] =3D=3D true) {=0A= var xpos =3D prop['chart.yaxispos'] =3D=3D 'left' ? = this.gutterLeft + 5 : ca.width - this.gutterRight - 5;=0A= var align =3D prop['chart.yaxispos'] =3D=3D 'left' ? = 'left' : 'right';=0A= var boxed =3D true;=0A= } else {=0A= var xpos =3D prop['chart.yaxispos'] =3D=3D 'left' ? = this.gutterLeft - 5 : ca.width - this.gutterRight + 5;=0A= var align =3D prop['chart.yaxispos'] =3D=3D 'left' ? = 'right' : 'left';=0A= var boxed =3D false;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * Draw specific Y labels here so that the local = variables can be reused=0A= */=0A= if (typeof(prop['chart.ylabels.specific']) =3D=3D = 'object' && prop['chart.ylabels.specific']) {=0A= =0A= var labels =3D prop['chart.ylabels.specific'];=0A= var grapharea =3D ca.height - this.gutterTop - = this.gutterBottom;=0A= =0A= // Draw the top halves labels=0A= for (var i=3D0; i<labels.length; ++i) {=0A= =0A= var y =3D this.gutterTop + ((grapharea / 2) / = (labels.length - 1)) * i;=0A= =0A= RGraph.Text2(this, {'font':font,=0A= 'size':text_size,=0A= 'x':xpos,=0A= 'y':y,=0A= 'text':String(labels[i]),=0A= 'valign':'center',=0A= 'halign':align,=0A= 'bordered':boxed,=0A= 'tag': 'scale'=0A= });=0A= }=0A= =0A= // Draw the bottom halves labels=0A= for (var i=3Dlabels.length-1; i>=3D1; --i) {=0A= =0A= var y =3D this.gutterTop + (grapharea * (i / = ((labels.length - 1) * 2) )) + (grapharea / 2);=0A= =0A= RG.Text2(this, {'font':font,=0A= 'size':text_size,=0A= 'x':xpos,=0A= 'y':y,=0A= = 'text':String(labels[labels.length - i - 1]),=0A= 'valign':'center',=0A= 'halign':align,=0A= 'bordered':boxed,=0A= 'tag': 'scale'=0A= });=0A= }=0A= =0A= return;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * Draw the top halfs labels=0A= */=0A= for (var i=3D0; i<this.scale2.labels.length; ++i) {=0A= var y =3D this.gutterTop + this.halfgrapharea - = ((this.halfgrapharea / numYLabels) * (i + 1));=0A= var text =3D this.scale2.labels[i];=0A= RG.Text2(this, {'font':font, 'size':text_size, = 'x':xpos, 'y':y, 'text': text, 'valign':'center', 'halign': align, = 'bordered': boxed, 'tag':'scale'});=0A= }=0A= =0A= /**=0A= * Draw the bottom halfs labels=0A= */=0A= for (var i=3D(this.scale2.labels.length - 1); i>=3D0; = --i) {=0A= var y =3D this.gutterTop + ((this.halfgrapharea / = numYLabels) * (i + 1)) + this.halfgrapharea;=0A= var text =3D this.scale2.labels[i];=0A= RG.Text2(this, {'font':font, = 'size':text_size,'x':xpos,'y':y,'text': '-' + = text,'valign':'center','halign': align,'bordered': boxed,'tag':'scale'});=0A= }=0A= =0A= =0A= =0A= =0A= =0A= /**=0A= * Show the minimum value if its not zero=0A= */=0A= if (this.scale2.min !=3D 0) {=0A= RG.Text2(this, {'font':font,'size':text_size, = 'x':xpos, 'y':this.gutterTop + this.halfgrapharea,'text': = RGraph.number_format(this,(this.scale2.min.toFixed((prop['chart.scale.dec= imals']))), units_pre, units_post),'valign':'center', = 'valign':'center','halign': align, 'bordered': boxed, 'tag':'scale'});=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Draws the X axdis at the bottom (the default)=0A= */=0A= this.Drawlabels_bottom =3D function ()=0A= {=0A= var co =3D this.context;=0A= var ca =3D this.canvas;=0A= var prop =3D this.properties;=0A= =0A= var text_size =3D prop['chart.text.size'];=0A= var units_pre =3D prop['chart.units.pre'];=0A= var units_post =3D prop['chart.units.post'];=0A= var context =3D this.context;=0A= var align =3D prop['chart.yaxispos'] =3D=3D 'left' ? = 'right' : 'left';=0A= var font =3D prop['chart.text.font'];=0A= var numYLabels =3D prop['chart.ylabels.count'];=0A= var ymin =3D prop['chart.ymin'];=0A= =0A= co.beginPath();=0A= co.fillStyle =3D prop['chart.text.color'];=0A= co.strokeStyle =3D 'black';=0A= =0A= if (prop['chart.ylabels.inside'] =3D=3D true) {=0A= var xpos =3D prop['chart.yaxispos'] =3D=3D 'left' ? = this.gutterLeft + 5 : ca.width - this.gutterRight - 5;=0A= var align =3D prop['chart.yaxispos'] =3D=3D 'left' ? = 'left' : 'right';=0A= var boxed =3D true;=0A= } else {=0A= var xpos =3D prop['chart.yaxispos'] =3D=3D 'left' ? = this.gutterLeft - 5 : ca.width - this.gutterRight + 5;=0A= var boxed =3D false;=0A= }=0A= =0A= /**=0A= * Draw specific Y labels here so that the local variables = can be reused=0A= */=0A= if (prop['chart.ylabels.specific'] && = typeof(prop['chart.ylabels.specific']) =3D=3D 'object') {=0A= =0A= var labels =3D prop['chart.ylabels.specific'];=0A= var grapharea =3D ca.height - this.gutterTop - = this.gutterBottom;=0A= =0A= for (var i=3D0; i<labels.length; ++i) {=0A= var y =3D this.gutterTop + (grapharea * (i / = (labels.length - 1)));=0A= =0A= RGraph.Text2(this, {'font':font,=0A= 'size':text_size,=0A= 'x':xpos,=0A= 'y':y,=0A= 'text': labels[i],=0A= 'valign':'center',=0A= 'halign': align,=0A= 'bordered': boxed,=0A= 'tag':'scale'=0A= });=0A= }=0A= =0A= return;=0A= }=0A= =0A= var gutterTop =3D this.gutterTop;=0A= var halfTextHeight =3D this.halfTextHeight;=0A= var scale =3D this.scale;=0A= =0A= =0A= for (var i=3D0; i<numYLabels; ++i) {=0A= var text =3D this.scale2.labels[i];=0A= =0A= // entninux=0A= if (prop['chart.yaxisfirstbold'] && i =3D=3D 0) text =3D = '<b>' + text + '</b>';=0A= =0A= RGraph.Text2(this, {'font':font,=0A= 'size':text_size,=0A= 'x':xpos,=0A= 'y':this.gutterTop + this.grapharea = - ((this.grapharea / numYLabels) * (i+1)),=0A= 'text': text,=0A= 'valign':'center',=0A= 'halign': align,=0A= 'bordered': boxed,=0A= 'bold': (prop['chart.yaxisboldlast'] = && i + 1 =3D=3D numYLabels) ? true : false, // entinux=0A= 'tag':'scale'});=0A= }=0A= =0A= =0A= /**=0A= * Show the minimum value if its not zero=0A= */=0A= if (prop['chart.ymin'] !=3D 0 || prop['chart.noxaxis']) {=0A= RG.Text2(this, {'font':font,=0A= 'size':text_size,=0A= 'x':xpos,=0A= 'y':ca.height - this.gutterBottom,=0A= 'text': = RG.number_format(this,(this.scale2.min.toFixed((prop['chart.scale.decimal= s']))), units_pre, units_post),=0A= 'valign':'center',=0A= 'halign': align,=0A= 'bordered': boxed,=0A= 'bold': prop['chart.yaxisboldfirst'] ? = true : false, // entinux=0A= 'tag':'scale'});=0A= }=0A= =0A= co.fill();=0A= }=0A= =0A= =0A= /**=0A= * This function is used by MSIE only to manually draw the shadow=0A= * =0A= * @param array coords The coords for the bar=0A= */=0A= this.DrawIEShadow =3D function (coords)=0A= {=0A= var co =3D this.context;=0A= var ca =3D this.canvas;=0A= var prop =3D this.properties;=0A= =0A= var prevFillStyle =3D co.fillStyle;=0A= var offsetx =3D prop['chart.shadow.offsetx'];=0A= var offsety =3D prop['chart.shadow.offsety'];=0A= =0A= co.lineWidth =3D prop['chart.linewidth'];=0A= co.fillStyle =3D prop['chart.shadow.color'];=0A= co.beginPath();=0A= =0A= // Draw shadow here=0A= co.fillRect(coords[0] + offsetx, coords[1] + offsety, = coords[2], coords[3]);=0A= =0A= co.fill();=0A= =0A= // Change the fillstyle back to what it was=0A= co.fillStyle =3D prevFillStyle;=0A= }=0A= =0A= =0A= /**=0A= * Not used by the class during creating the graph, but is used = by event handlers=0A= * to get the coordinates (if any) of the selected bar=0A= * =0A= * @param object e The event object=0A= * @param object OPTIONAL You can pass in the bar object = instead of the=0A= * function using "this"=0A= */=0A= this.getShape =3D =0A= this.getBar =3D function (e)=0A= {=0A= // This facilitates you being able to pass in the bar object = as a parameter instead of=0A= // the function getting it from itself=0A= var obj =3D arguments[1] ? arguments[1] : this;=0A= =0A= var mouseXY =3D RGraph.getMouseXY(e);=0A= var mouseX =3D mouseXY[0];=0A= var mouseY =3D mouseXY[1]; =0A= var canvas =3D obj.canvas;=0A= var context =3D obj.context;=0A= var coords =3D obj.coords=0A= =0A= for (var i=3D0,len=3Dcoords.length; i<len; i+=3D1) {=0A= =0A= if (obj.coords[i].length =3D=3D 0) {=0A= continue;=0A= }=0A= =0A= var left =3D coords[i][0];=0A= var top =3D coords[i][1];=0A= var width =3D coords[i][2];=0A= var height =3D coords[i][3];=0A= var prop =3D obj.properties;=0A= =0A= if (mouseX >=3D left && mouseX <=3D (left + width) && = mouseY >=3D top && mouseY <=3D (top + height)) {=0A= =0A= =0A= if (prop['chart.tooltips']) {=0A= var tooltip =3D RGraph.parseTooltipText ? = RGraph.parseTooltipText(prop['chart.tooltips'], i) : = prop['chart.tooltips'][i];=0A= }=0A= =0A= // Work out the dataset=0A= var dataset =3D 0;=0A= var idx =3D i;=0A= =0A= while (idx >=3D (typeof(obj.data[dataset]) =3D=3D = 'object' && obj.data[dataset] ? obj.data[dataset].length : 1)) {=0A= =0A= if (typeof(obj.data[dataset]) =3D=3D 'number') {=0A= idx -=3D 1;=0A= } else if (obj.data[dataset]) { // Accounts for = null being an object=0A= idx -=3D obj.data[dataset].length;=0A= } else {=0A= idx -=3D 1;=0A= }=0A= =0A= dataset++;=0A= }=0A= =0A= if (typeof(obj.data[dataset]) =3D=3D 'number') {=0A= idx =3D null;=0A= }=0A= =0A= =0A= return {=0A= 0: obj, 1: left, 2: top, 3: width, 4: = height, 5: i,=0A= 'object': obj, 'x': left, 'y': top, 'width': = width, 'height': height, 'index': i, 'tooltip': tooltip, = 'index_adjusted': idx, 'dataset': dataset=0A= };=0A= }=0A= }=0A= =0A= return null;=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This retrives the bar based on the X coordinate only.=0A= * =0A= * @param object e The event object=0A= * @param object OPTIONAL You can pass in the bar object = instead of the=0A= * function using "this"=0A= */=0A= this.getShapeByX =3D function (e)=0A= {=0A= var canvas =3D e.target;=0A= var mouseCoords =3D RGraph.getMouseXY(e);=0A= =0A= =0A= // This facilitates you being able to pass in the bar object = as a parameter instead of=0A= // the function getting it from itself=0A= var obj =3D arguments[1] ? arguments[1] : this;=0A= =0A= =0A= /**=0A= * Loop through the bars determining if the mouse is over a = bar=0A= */=0A= for (var i=3D0,len=3Dobj.coords.length; i<len; i++) {=0A= =0A= if (obj.coords[i].length =3D=3D 0) {=0A= continue;=0A= }=0A= =0A= var mouseX =3D mouseCoords[0];=0A= var mouseY =3D mouseCoords[1]; =0A= var left =3D obj.coords[i][0];=0A= var top =3D obj.coords[i][1];=0A= var width =3D obj.coords[i][2];=0A= var height =3D obj.coords[i][3];=0A= var prop =3D obj.properties;=0A= =0A= if (mouseX >=3D left && mouseX <=3D (left + width)) {=0A= =0A= if (prop['chart.tooltips']) {=0A= var tooltip =3D RGraph.parseTooltipText ? = RGraph.parseTooltipText(prop['chart.tooltips'], i) : = prop['chart.tooltips'][i];=0A= }=0A= =0A= =0A= =0A= return {=0A= 0: obj, 1: left, 2: top, 3: width, 4: = height, 5: i,=0A= 'object': obj, 'x': left, 'y': top, 'width': = width, 'height': height, 'index': i, 'tooltip': tooltip=0A= };=0A= }=0A= }=0A= =0A= return null;=0A= }=0A= =0A= =0A= /**=0A= * When you click on the chart, this method can return the Y = value at that point. It works for any point on the=0A= * chart (that is inside the gutters) - not just points within = the Bars.=0A= * =0A= * EITHER:=0A= * =0A= * @param object arg The event object=0A= * =0A= * OR:=0A= * =0A= * @param object arg A two element array containing the X and Y = coordinates=0A= */=0A= this.getValue =3D function (arg)=0A= {=0A= var co =3D this.context;=0A= var ca =3D this.canvas;=0A= var prop =3D this.properties;=0A= =0A= if (arg.length =3D=3D 2) {=0A= var mouseX =3D arg[0];=0A= var mouseY =3D arg[1];=0A= } else {=0A= var mouseCoords =3D RGraph.getMouseXY(arg);=0A= var mouseX =3D mouseCoords[0];=0A= var mouseY =3D mouseCoords[1];=0A= }=0A= =0A= if ( mouseY < prop['chart.gutter.top']=0A= || mouseY > (ca.height - prop['chart.gutter.bottom'])=0A= || mouseX < prop['chart.gutter.left']=0A= || mouseX > (ca.width - prop['chart.gutter.right'])=0A= ) {=0A= return null;=0A= }=0A= =0A= if (prop['chart.xaxispos'] =3D=3D 'center') {=0A= var value =3D (((this.grapharea / 2) - (mouseY - = prop['chart.gutter.top'])) / this.grapharea) * (this.scale2.max - = this.scale2.min)=0A= value *=3D 2;=0A= =0A= if (value >=3D 0) {=0A= value +=3D this.scale2.min;=0A= } else {=0A= value -=3D this.scale2.min;=0A= }=0A= =0A= } else if (prop['chart.xaxispos'] =3D=3D 'top') {=0A= var value =3D ((this.grapharea - (mouseY - = prop['chart.gutter.top'])) / this.grapharea) * (this.scale2.max - = this.scale2.min)=0A= value =3D this.scale2.max - value;=0A= value =3D Math.abs(value) * -1;=0A= } else {=0A= var value =3D ((this.grapharea - (mouseY - = prop['chart.gutter.top'])) / this.grapharea) * (this.scale2.max - = this.scale2.min)=0A= value +=3D this.scale2.min;=0A= }=0A= =0A= return value;=0A= }=0A= =0A= =0A= /**=0A= * This function can be used when the canvas is clicked on (or = similar - depending on the event)=0A= * to retrieve the relevant Y coordinate for a particular value.=0A= * =0A= * @param int value The value to get the Y coordinate for=0A= */=0A= this.getYCoord =3D function (value)=0A= {=0A= if (value > this.scale2.max) {=0A= return null;=0A= }=0A= =0A= var co =3D this.context;=0A= var ca =3D this.canvas;=0A= var prop =3D this.properties;=0A= =0A= var y;=0A= var xaxispos =3D prop['chart.xaxispos'];=0A= =0A= if (xaxispos =3D=3D 'top') {=0A= =0A= // Account for negative numbers=0A= if (value < 0) {=0A= value =3D Math.abs(value);=0A= }=0A= =0A= y =3D ((value - this.scale2.min) / (this.scale2.max - = this.scale2.min)) * this.grapharea;=0A= y =3D y + this.gutterTop=0A= =0A= } else if (xaxispos =3D=3D 'center') {=0A= =0A= y =3D ((value - this.scale2.min) / (this.scale2.max - = this.scale2.min)) * (this.grapharea / 2);=0A= y =3D (this.grapharea / 2) - y;=0A= y +=3D this.gutterTop;=0A= =0A= } else {=0A= =0A= if (value < this.scale2.min) {=0A= value =3D this.scale2.min;=0A= }=0A= =0A= y =3D ((value - this.scale2.min) / (this.scale2.max - = this.scale2.min)) * this.grapharea;=0A= =0A= y =3D ca.height - this.gutterBottom - y;=0A= }=0A= =0A= return y;=0A= }=0A= =0A= =0A= =0A= /**=0A= * Each object type has its own Highlight() function which = highlights the appropriate shape=0A= * =0A= * @param object shape The shape to highlight=0A= */=0A= this.Highlight =3D function (shape)=0A= {=0A= // Add the new highlight=0A= RGraph.Highlight.Rect(this, shape);=0A= }=0A= =0A= =0A= =0A= /**=0A= * The getObjectByXY() worker method=0A= */=0A= this.getObjectByXY =3D function (e)=0A= {=0A= var ca =3D this.canvas;=0A= var prop =3D this.properties;=0A= =0A= var mouseXY =3D RGraph.getMouseXY(e);=0A= =0A= if (=0A= mouseXY[0] >=3D prop['chart.gutter.left']=0A= && mouseXY[0] <=3D (ca.width - = prop['chart.gutter.right'])=0A= && mouseXY[1] >=3D prop['chart.gutter.top']=0A= && mouseXY[1] <=3D (ca.height - = prop['chart.gutter.bottom'])=0A= ) {=0A= =0A= return this;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This method handles the adjusting calculation for when the = mouse is moved=0A= * =0A= * @param object e The event object=0A= */=0A= this.Adjusting_mousemove =3D function (e)=0A= {=0A= /**=0A= * Handle adjusting for the Bar=0A= */=0A= if (prop['chart.adjustable'] && = RG.Registry.Get('chart.adjusting') && = RG.Registry.Get('chart.adjusting').uid =3D=3D this.uid) {=0A= =0A= // Rounding the value to the given number of decimals = make the chart step=0A= var value =3D Number(this.getValue(e));=0A= var shape =3D this.getShapeByX(e);=0A= =0A= if (shape) {=0A= =0A= RG.Registry.Set('chart.adjusting.shape', shape);=0A= =0A= if (this.stackedOrGrouped && prop['chart.grouping'] = =3D=3D 'grouped') {=0A= =0A= var indexes =3D = RG.sequentialIndexToGrouped(shape['index'], this.data);=0A= =0A= if (typeof this.data[indexes[0]] =3D=3D = 'number') {=0A= this.data[indexes[0]] =3D Number(value);=0A= } else if (!RG.is_null(this.data[indexes[0]])) {=0A= this.data[indexes[0]][indexes[1]] =3D = Number(value);=0A= }=0A= } else if (typeof this.data[shape['index']] =3D=3D = 'number') {=0A= =0A= this.data[shape['index']] =3D Number(value);=0A= }=0A= =0A= RG.RedrawCanvas(e.target);=0A= =0A= RG.FireCustomEvent(this, 'onadjust');=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function positions a tooltip when it is displayed=0A= * =0A= * @param obj object The chart object=0A= * @param int x The X coordinate specified for the tooltip=0A= * @param int y The Y coordinate specified for the tooltip=0A= * @param objec tooltip The tooltips DIV element=0A= */=0A= this.positionTooltip =3D function (obj, x, y, tooltip, idx)=0A= {=0A= var prop =3D obj.properties;=0A= var coordX =3D obj.coords[tooltip.__index__][0];=0A= var coordY =3D obj.coords[tooltip.__index__][1];=0A= var coordW =3D obj.coords[tooltip.__index__][2];=0A= var coordH =3D obj.coords[tooltip.__index__][3];=0A= var canvasXY =3D RGraph.getCanvasXY(obj.canvas);=0A= var gutterLeft =3D prop['chart.gutter.left'];=0A= var gutterTop =3D prop['chart.gutter.top'];=0A= var width =3D tooltip.offsetWidth;=0A= var height =3D tooltip.offsetHeight;=0A= var value =3D obj.data_arr[tooltip.__index__];=0A= =0A= =0A= // Set the top position=0A= tooltip.style.left =3D 0;=0A= tooltip.style.top =3D canvasXY[1] + coordY - height - 7 + = 'px';=0A= =0A= /**=0A= * If the tooltip is for a negative value - position it = underneath the bar=0A= */=0A= if (value < 0) {=0A= tooltip.style.top =3D canvasXY[1] + coordY + coordH + 7 = + 'px';=0A= }=0A= =0A= =0A= // By default any overflow is hidden=0A= tooltip.style.overflow =3D '';=0A= =0A= // Inverted arrow=0A= // = data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAFCAMAAACkeOZkAAAAK3R= FWHRDcmVhdGlvbiBUaW1lAFNhdCA2IE9jdCAyMDEyIDEyOjQ5OjMyIC0wMDAw2S1RlgAAAAd0= SU1FB9wKBgszM4Ed2k4AAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAEZ0FNQQAAsY8L/GEFAAAAC= VBMVEX/AAC9vb3//+92Pom0AAAAAXRSTlMAQObYZgAAAB1JREFUeNpjYAABRgY4YGRiRDCZYB= wQE8qBMEEcAANCACqByy1sAAAAAElFTkSuQmCC=0A= =0A= // The arrow=0A= var img =3D new Image();=0A= img.style.position =3D 'absolute';=0A= img.id =3D '__rgraph_tooltip_pointer__';=0A= if (value >=3D 0) {=0A= img.src =3D = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAFCAYAAACjKgd3AAAARU= lEQVQYV2NkQAN79+797+RkhC4M5+/bd47B2dmZEVkBCgcmgcsgbAaA9GA1BCSBbhAuA/Aagmw= QPgMIGgIzCD0M0AMMAEFVIAa6UQgcAAAAAElFTkSuQmCC';=0A= img.style.top =3D (tooltip.offsetHeight - 2) + 'px';=0A= } else {=0A= img.src =3D = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAFCAMAAACkeOZkAAAAK3= RFWHRDcmVhdGlvbiBUaW1lAFNhdCA2IE9jdCAyMDEyIDEyOjQ5OjMyIC0wMDAw2S1RlgAAAAd= 0SU1FB9wKBgszM4Ed2k4AAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAEZ0FNQQAAsY8L/GEFAAAA= CVBMVEX/AAC9vb3//+92Pom0AAAAAXRSTlMAQObYZgAAAB1JREFUeNpjYAABRgY4YGRiRDCZY= BwQE8qBMEEcAANCACqByy1sAAAAAElFTkSuQmCC';=0A= img.style.top =3D '-5px';=0A= }=0A= =0A= tooltip.appendChild(img);=0A= =0A= // Reposition the tooltip if at the edges:=0A= =0A= // LEFT edge=0A= if ((canvasXY[0] + coordX + (coordW / 2) - (width / 2)) < = 10) {=0A= tooltip.style.left =3D (canvasXY[0] + coordX - (width * = 0.1)) + (coordW / 2) + 'px';=0A= img.style.left =3D ((width * 0.1) - 8.5) + 'px';=0A= =0A= // RIGHT edge=0A= } else if ((canvasXY[0] + coordX + (width / 2)) > = document.body.offsetWidth) {=0A= tooltip.style.left =3D canvasXY[0] + coordX - (width * = 0.9) + (coordW / 2) + 'px';=0A= img.style.left =3D ((width * 0.9) - 8.5) + 'px';=0A= =0A= // Default positioning - CENTERED=0A= } else {=0A= tooltip.style.left =3D (canvasXY[0] + coordX + (coordW / = 2) - (width * 0.5)) + 'px';=0A= img.style.left =3D ((width * 0.5) - 8.5) + 'px';=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This allows for easy specification of gradients=0A= */=0A= this.parseColors =3D function ()=0A= {=0A= // Set this as a local variable=0A= var prop =3D this.properties;=0A= =0A= // chart.colors=0A= var colors =3D prop['chart.colors'];=0A= if (colors) {=0A= for (var i=3D0; i<colors.length; ++i) {=0A= colors[i] =3D = this.parseSingleColorForGradient(colors[i]);=0A= }=0A= }=0A= =0A= // chart.key.colors=0A= var colors =3D prop['chart.key.colors'];=0A= if (colors) {=0A= for (var i=3D0; i<colors.length; ++i) {=0A= colors[i] =3D = this.parseSingleColorForGradient(colors[i]);=0A= }=0A= }=0A= =0A= prop['chart.crosshairs.color'] =3D = this.parseSingleColorForGradient(prop['chart.crosshairs.color']);=0A= prop['chart.highlight.stroke'] =3D = this.parseSingleColorForGradient(prop['chart.highlight.stroke']);=0A= prop['chart.highlight.fill'] =3D = this.parseSingleColorForGradient(prop['chart.highlight.fill']);=0A= prop['chart.text.color'] =3D = this.parseSingleColorForGradient(prop['chart.text.color']);=0A= prop['chart.background.barcolor1'] =3D = this.parseSingleColorForGradient(prop['chart.background.barcolor1']);=0A= prop['chart.background.barcolor2'] =3D = this.parseSingleColorForGradient(prop['chart.background.barcolor2']);=0A= prop['chart.background.grid.color'] =3D = this.parseSingleColorForGradient(prop['chart.background.grid.color']);=0A= prop['chart.strokecolor'] =3D = this.parseSingleColorForGradient(prop['chart.strokecolor']);=0A= prop['chart.axis.color'] =3D = this.parseSingleColorForGradient(prop['chart.axis.color']);=0A= }=0A= =0A= =0A= =0A= /**=0A= * This parses a single color value=0A= */=0A= this.parseSingleColorForGradient =3D function (color)=0A= {=0A= if (!color || typeof(color) !=3D 'string') {=0A= return color;=0A= }=0A= =0A= if (color.match(/^gradient\((.*)\)$/i)) {=0A= =0A= var parts =3D RegExp.$1.split(':');=0A= =0A= // Create the gradient=0A= var grad =3D co.createLinearGradient(0,ca.height - = prop['chart.gutter.bottom'], 0, prop['chart.gutter.top']);=0A= =0A= var diff =3D 1 / (parts.length - 1);=0A= =0A= grad.addColorStop(0, RG.trim(parts[0]));=0A= =0A= for (var j=3D1,len=3Dparts.length; j<len; ++j) {=0A= grad.addColorStop(j * diff, RGraph.trim(parts[j]));=0A= }=0A= }=0A= =0A= return grad ? grad : color;=0A= }=0A= =0A= =0A= =0A= this.DrawBevel =3D function ()=0A= {=0A= var coords =3D this.coords;=0A= var coords2 =3D this.coords2;=0A= =0A= var prop =3D this.properties;=0A= var co =3D this.context;=0A= var ca =3D this.canvas;=0A= =0A= if (prop['chart.grouping'] =3D=3D 'stacked') {=0A= for (var i=3D0; i<coords2.length; ++i) {=0A= if (coords2[i] && coords2[i][0] && coords2[i][0][0]) = {=0A= =0A= var x =3D coords2[i][0][0];=0A= var y =3D coords2[i][0][1];=0A= var w =3D coords2[i][0][2];=0A= =0A= var arr =3D [];=0A= for (var j=3D0; j<coords2[i].length; ++j) {=0A= arr.push(coords2[i][j][3]);=0A= }=0A= var h =3D RGraph.array_sum(arr);=0A= =0A= =0A= co.save();=0A= =0A= co.strokeStyle =3D 'black';=0A= =0A= // Clip to the rect=0A= co.beginPath();=0A= co.rect(x, y, w, h);=0A= co.clip();=0A= =0A= // Add the shadow=0A= co.shadowColor =3D 'black';=0A= co.shadowOffsetX =3D 0;=0A= co.shadowOffsetY =3D 0;=0A= co.shadowBlur =3D 20;=0A= =0A= co.beginPath();=0A= co.rect(x - 3, y - 3, w + 6, h + 100);=0A= co.lineWidth =3D 5;=0A= co.stroke();=0A= co.restore();=0A= }=0A= }=0A= } else {=0A= =0A= for (var i=3D0; i<coords.length; ++i) {=0A= if (coords[i]) {=0A= =0A= var x =3D coords[i][0];=0A= var y =3D coords[i][1];=0A= var w =3D coords[i][2];=0A= var h =3D coords[i][3];=0A= =0A= var xaxispos =3D prop['chart.xaxispos'];=0A= var xaxis_ycoord =3D ((ca.height - = this.gutterTop - this.gutterBottom) / 2) + this.gutterTop;=0A= =0A= =0A= co.save();=0A= =0A= co.strokeStyle =3D 'black';=0A= =0A= // Clip to the rect=0A= co.beginPath();=0A= co.rect(x, y, w, h);=0A= =0A= co.clip();=0A= =0A= // Add the shadow=0A= co.shadowColor =3D 'black';=0A= co.shadowOffsetX =3D 0;=0A= co.shadowOffsetY =3D 0;=0A= co.shadowBlur =3D 20;=0A= =0A= if (xaxispos =3D=3D 'top' || (xaxispos = =3D=3D 'center' && (y + h) > xaxis_ycoord)) {=0A= y =3D y - 100;=0A= h =3D h + 100;=0A= } else {=0A= y =3D y;=0A= h =3D h + 100;=0A= }=0A= =0A= co.beginPath();=0A= co.rect(x - 3, y - 3, w + 6, h + 6);=0A= co.lineWidth =3D 5;=0A= co.stroke();=0A= co.restore();=0A= }=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * This function handles highlighting an entire data-series for = the interactive=0A= * key=0A= * =0A= * @param int index The index of the data series to be highlighted=0A= */=0A= this.interactiveKeyHighlight =3D function (index)=0A= {=0A= this.coords2.forEach(function (value, idx, arr)=0A= {=0A= if (typeof value[index] =3D=3D 'object' && value[index]) = {=0A= =0A= var x =3D value[index][0]=0A= var y =3D value[index][1]=0A= var w =3D value[index][2]=0A= var h =3D value[index][3]=0A= =0A= co.fillStyle =3D = prop['chart.key.interactive.highlight.chart.fill'];=0A= co.strokeStyle =3D = prop['chart.key.interactive.highlight.chart.stroke'];=0A= co.lineWidth =3D 2;=0A= co.fillRect(x, y, w, h);=0A= co.strokeRect(x, y, w, h);=0A= }=0A= });=0A= }=0A= =0A= =0A= =0A= =0A= /**=0A= * Register the object=0A= */=0A= RGraph.Register(this);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= = /************************************************************************= *********************************=0A= * This is the combined bar and Line class which makes creating = bar/line combo charts a little bit easier *=0A= = /************************************************************************= *********************************/=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= RGraph.CombinedChart =3D function ()=0A= {=0A= /**=0A= * Create a default empty array for the objects=0A= */=0A= this.objects =3D [];=0A= =0A= var objects =3D arguments;=0A= =0A= if (RGraph.is_array(arguments[0])) {=0A= objects =3D arguments[0];=0A= }=0A= =0A= for (var i=3D0; i<objects.length; ++i) {=0A= =0A= this.objects[i] =3D objects[i];=0A= =0A= /**=0A= * Set the Line chart gutters to match the Bar chart gutters=0A= */=0A= this.objects[i].Set('chart.gutter.left', = this.objects[0].Get('chart.gutter.left'));=0A= this.objects[i].Set('chart.gutter.right', = this.objects[0].Get('chart.gutter.right'));=0A= this.objects[i].Set('chart.gutter.top', = this.objects[0].Get('chart.gutter.top'));=0A= this.objects[i].Set('chart.gutter.bottom', = this.objects[0].Get('chart.gutter.bottom'));=0A= =0A= if (this.objects[i].type =3D=3D 'line') {=0A= =0A= /**=0A= * Set the line chart hmargin=0A= */=0A= this.objects[i].Set('chart.hmargin', = ((this.objects[0].canvas.width - = this.objects[0].Get('chart.gutter.right') - = this.objects[0].Get('chart.gutter.left')) / this.objects[0].data.length) = / 2 );=0A= =0A= =0A= /**=0A= * No labels, axes or grid on the Line chart=0A= */=0A= this.objects[i].Set('chart.noaxes', true);=0A= this.objects[i].Set('chart.background.grid', false);=0A= this.objects[i].Set('chart.ylabels', false);=0A= }=0A= =0A= /**=0A= * Resizing=0A= */=0A= if (this.objects[i].Get('chart.resizable')) {=0A= var resizable_object =3D this.objects[i];=0A= }=0A= }=0A= =0A= /**=0A= * Resizing=0A= */=0A= if (resizable_object) {=0A= /**=0A= * This recalculates the Line chart hmargin when the chart is = resized=0A= */=0A= function myOnresizebeforedraw (obj)=0A= {=0A= var gutterLeft =3D obj.Get('chart.gutter.left');=0A= var gutterRight =3D obj.Get('chart.gutter.right');=0A= =0A= obj.Set('chart.hmargin', (obj.canvas.width - gutterLeft = - gutterRight) / (obj.original_data[0].length * 2));=0A= }=0A= =0A= RGraph.AddCustomEventListener(resizable_object,=0A= 'onresizebeforedraw',=0A= myOnresizebeforedraw);=0A= }=0A= }=0A= =0A= =0A= /**=0A= * The Add method can be used to add methods to the CombinedChart = object.=0A= */=0A= RGraph.CombinedChart.prototype.Add =3D function (obj)=0A= {=0A= this.objects.push(obj);=0A= }=0A= =0A= =0A= /**=0A= * The Draw method goes through all of the objects drawing them = (sequentially)=0A= */=0A= RGraph.CombinedChart.prototype.Draw =3D function ()=0A= {=0A= for (var i=3D0; i<this.objects.length; ++i) {=0A= if (typeof(arguments[i]) =3D=3D 'function') {=0A= arguments[i](this.objects[i]);=0A= } else {=0A= this.objects[i].Draw();=0A= }=0A= }=0A= }=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/fc/JSClass/FusionCharts.js /** * FusionCharts: Flash Player detection and Chart embedding. * Version: vFree.1.2 (1st November, 2007) - Added Player detection, = New conditional fixes for IE, supports FORM in IE * * Morphed from SWFObject (http://blog.deconcept.com/swfobject/) under = MIT License: * http://www.opensource.org/licenses/mit-license.php * */ if(typeof infosoftglobal =3D=3D "undefined") var infosoftglobal =3D new = Object(); if(typeof infosoftglobal.FusionChartsUtil =3D=3D "undefined") = infosoftglobal.FusionChartsUtil =3D new Object(); infosoftglobal.FusionCharts =3D function(swf, id, w, h, debugMode, = registerWithJS, c, scaleMode, lang, detectFlashVersion, = autoInstallRedirect){ if (!document.getElementById) { return; } =09 //Flag to see whether data has been set initially this.initialDataSet =3D false; =09 //Create container objects this.params =3D new Object(); this.variables =3D new Object(); this.attributes =3D new Array(); =09 //Set attributes for the SWF if(swf) { this.setAttribute('swf', swf); } if(id) { this.setAttribute('id', id); } if(w) { this.setAttribute('width', w); } if(h) { this.setAttribute('height', h); } =09 //Set background color if(c) { this.addParam('bgcolor', c); } =09 //Set Quality=09 this.addParam('quality', 'high'); =09 //Add scripting access parameter this.addParam('allowScriptAccess', 'always'); =09 //Pass width and height to be appended as chartWidth and chartHeight this.addVariable('chartWidth', w); this.addVariable('chartHeight', h); //Whether in debug mode debugMode =3D debugMode ? debugMode : 0; this.addVariable('debugMode', debugMode); //Pass DOM ID to Chart this.addVariable('DOMId', id); //Whether to registed with JavaScript registerWithJS =3D registerWithJS ? registerWithJS : 0; this.addVariable('registerWithJS', registerWithJS); =09 //Scale Mode of chart scaleMode =3D scaleMode ? scaleMode : 'noScale'; this.addVariable('scaleMode', scaleMode); //Application Message Language lang =3D lang ? lang : 'EN'; this.addVariable('lang', lang); =09 //Whether to auto detect and re-direct to Flash Player installation this.detectFlashVersion =3D detectFlashVersion?detectFlashVersion:1; this.autoInstallRedirect =3D autoInstallRedirect?autoInstallRedirect:1; =09 //Ger Flash Player version=20 this.installedVer =3D = infosoftglobal.FusionChartsUtil.getPlayerVersion(); =09 if (!window.opera && document.all && this.installedVer.major > 7) { // Only add the onunload cleanup if the Flash Player version supports = External Interface and we are in IE infosoftglobal.FusionCharts.doPrepUnload =3D true; } } infosoftglobal.FusionCharts.prototype =3D { setAttribute: function(name, value){ this.attributes[name] =3D value; }, getAttribute: function(name){ return this.attributes[name]; }, addParam: function(name, value){ this.params[name] =3D value; }, getParams: function(){ return this.params; }, addVariable: function(name, value){ this.variables[name] =3D value; }, getVariable: function(name){ return this.variables[name]; }, getVariables: function(){ return this.variables; }, getVariablePairs: function(){ var variablePairs =3D new Array(); var key; var variables =3D this.getVariables(); for(key in variables){ variablePairs.push(key +"=3D"+ variables[key]); } return variablePairs; }, getSWFHTML: function() { var swfNode =3D ""; if (navigator.plugins && navigator.mimeTypes && = navigator.mimeTypes.length) {=20 // netscape plugin architecture =09 swfNode =3D '<embed type=3D"application/x-shockwave-flash" src=3D"'+ = this.getAttribute('swf') +'" width=3D"'+ this.getAttribute('width') +'" = height=3D"'+ this.getAttribute('height') +'" '; swfNode +=3D ' id=3D"'+ this.getAttribute('id') +'" name=3D"'+ = this.getAttribute('id') +'" '; var params =3D this.getParams(); for(var key in params){ swfNode +=3D [key] +'=3D"'+ params[key] +'" = '; } var pairs =3D this.getVariablePairs().join("&"); if (pairs.length > 0){ swfNode +=3D 'flashvars=3D"'+ pairs +'"'; } swfNode +=3D '/>'; } else { // PC IE =09 swfNode =3D '<object id=3D"'+ this.getAttribute('id') +'" = classid=3D"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=3D"'+ = this.getAttribute('width') +'" height=3D"'+ this.getAttribute('height') = +'">'; swfNode +=3D '<param name=3D"movie" value=3D"'+ = this.getAttribute('swf') +'" />'; var params =3D this.getParams(); for(var key in params) { swfNode +=3D '<param name=3D"'+ key +'" value=3D"'+ params[key] +'" = />'; } var pairs =3D this.getVariablePairs().join("&"); =09 if(pairs.length > 0) {swfNode +=3D '<param name=3D"flashvars" = value=3D"'+ pairs +'" />';} swfNode +=3D "</object>"; } return swfNode; }, setDataURL: function(strDataURL){ //This method sets the data URL for the chart. //If being set initially if (this.initialDataSet=3D=3Dfalse){ this.addVariable('dataURL',strDataURL); //Update flag this.initialDataSet =3D true; }else{ //Else, we update the chart data using External Interface //Get reference to chart object var chartObj =3D = infosoftglobal.FusionChartsUtil.getChartObject(this.getAttribute('id')); chartObj.setDataURL(strDataURL); } }, setDataXML: function(strDataXML){ //If being set initially if (this.initialDataSet=3D=3Dfalse){ //This method sets the data XML for the chart INITIALLY. this.addVariable('dataXML',strDataXML); //Update flag this.initialDataSet =3D true; }else{ //Else, we update the chart data using External Interface //Get reference to chart object var chartObj =3D = infosoftglobal.FusionChartsUtil.getChartObject(this.getAttribute('id')); chartObj.setDataXML(strDataXML); } }, render: function(elementId){ //First check for installed version of Flash Player - we need a = minimum of 6 if((this.detectFlashVersion=3D=3D1) && (this.installedVer.major < 6)){ if (this.autoInstallRedirect=3D=3D1){ //If we can auto redirect to install the player? var installationConfirm =3D window.confirm("You need Adobe Flash = Player 6 (or above) to view the charts. It is a free and lightweight = installation from Adobe.com. Please click on Ok to install the same."); if (installationConfirm){ window.location =3D = "http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=3DS= hockwaveFlash"; }else{ return false; } }else{ //Else, do not take an action. It means the developer has specified = a message in the DIV (and probably a link). //So, expect the developers to provide a course of way to their end = users. //window.alert("You need Adobe Flash Player 6 (or above) to view the = charts. It is a free and lightweight installation from Adobe.com. "); return false; } =09 }else{ //Render the chart var n =3D (typeof elementId =3D=3D 'string') ? = document.getElementById(elementId) : elementId; n.innerHTML =3D this.getSWFHTML(); =09 //Added for .NET AJAX and <FORM> compatibility if(!document.embeds[this.getAttribute('id')] && = !window[this.getAttribute('id')]) = window[this.getAttribute('id')]=3Ddocument.getElementById(this.getAttribu= te('id'));=20 //or else document.forms[formName/formIndex][chartId] =09 return true; =09 } } } /* ---- detection functions ---- */ infosoftglobal.FusionChartsUtil.getPlayerVersion =3D function(){ var PlayerVersion =3D new infosoftglobal.PlayerVersion([0,0,0]); if(navigator.plugins && navigator.mimeTypes.length){ var x =3D navigator.plugins["Shockwave Flash"]; if(x && x.description) { PlayerVersion =3D new = infosoftglobal.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, = "").replace(/(\s+r|\s+b[0-9]+)/, ".").split(".")); } }else if (navigator.userAgent && navigator.userAgent.indexOf("Windows = CE") >=3D 0){=20 //If Windows CE var axo =3D 1; var counter =3D 3; while(axo) { try { counter++; axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ = counter); PlayerVersion =3D new infosoftglobal.PlayerVersion([counter,0,0]); } catch (e) { axo =3D null; } } } else {=20 // Win IE (non mobile) // Do minor version lookup in IE, but avoid Flash Player 6 crashing = issues try{ var axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); }catch(e){ try { var axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); PlayerVersion =3D new infosoftglobal.PlayerVersion([6,0,21]); axo.AllowScriptAccess =3D "always"; // error if player version < = 6.0.47 (thanks to Michael Williams @ Adobe for this code) } catch(e) { if (PlayerVersion.major =3D=3D 6) { return PlayerVersion; } } try { axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); } catch(e) {} } if (axo !=3D null) { PlayerVersion =3D new = infosoftglobal.PlayerVersion(axo.GetVariable("$version").split(" = ")[1].split(",")); } } return PlayerVersion; } infosoftglobal.PlayerVersion =3D function(arrVersion){ this.major =3D arrVersion[0] !=3D null ? parseInt(arrVersion[0]) : 0; this.minor =3D arrVersion[1] !=3D null ? parseInt(arrVersion[1]) : 0; this.rev =3D arrVersion[2] !=3D null ? parseInt(arrVersion[2]) : 0; } // ------------ Fix for Out of Memory Bug in IE in FP9 ---------------// /* Fix for video streaming bug */ infosoftglobal.FusionChartsUtil.cleanupSWFs =3D function() { var objects =3D document.getElementsByTagName("OBJECT"); for (var i =3D objects.length - 1; i >=3D 0; i--) { objects[i].style.display =3D 'none'; for (var x in objects[i]) { if (typeof objects[i][x] =3D=3D 'function') { objects[i][x] =3D function(){}; } } } } // Fixes bug in fp9 if (infosoftglobal.FusionCharts.doPrepUnload) { if (!infosoftglobal.unloadSet) { infosoftglobal.FusionChartsUtil.prepUnload =3D function() { __flash_unloadHandler =3D function(){}; __flash_savedUnloadHandler =3D function(){}; window.attachEvent("onunload", = infosoftglobal.FusionChartsUtil.cleanupSWFs); } window.attachEvent("onbeforeunload", = infosoftglobal.FusionChartsUtil.prepUnload); infosoftglobal.unloadSet =3D true; } } /* Add document.getElementById if needed (mobile IE < 5) */ if (!document.getElementById && document.all) { document.getElementById = =3D function(id) { return document.all[id]; }} /* Add Array.push if needed (ie5) */ if (Array.prototype.push =3D=3D null) { Array.prototype.push =3D = function(item) { this[this.length] =3D item; return this.length; }} /* Function to return Flash Object from ID */ infosoftglobal.FusionChartsUtil.getChartObject =3D function(id) { // set off to test in .NET AJAX and <FORM> environment //if (window.document[id]) { // return window.document[id]; //} var chartRef=3Dnull; if (navigator.appName.indexOf("Microsoft Internet")=3D=3D-1) { if (document.embeds && document.embeds[id]) chartRef =3D document.embeds[id];=20 else chartRef =3D window.document[id]; } else { chartRef =3D window[id]; } if (!chartRef) chartRef =3D document.getElementById(id); =20 return chartRef; } /* Function to update chart's data at client side (FOR FusionCharts vFREE = and 2.x */ infosoftglobal.FusionChartsUtil.updateChartXML =3D function(chartId, = strXML){ //Get reference to chart object =09 var chartObj =3D = infosoftglobal.FusionChartsUtil.getChartObject(chartId); =09 //Set dataURL to null chartObj.SetVariable("_root.dataURL",""); //Set the flag chartObj.SetVariable("_root.isNewData","1"); //Set the actual data chartObj.SetVariable("_root.newData",strXML); //Go to the required frame chartObj.TGotoLabel("/", "JavaScriptHandler");=20 } /* Aliases for easy usage */ var getChartFromId =3D infosoftglobal.FusionChartsUtil.getChartObject; var updateChartXML =3D infosoftglobal.FusionChartsUtil.updateChartXML; var FusionCharts =3D infosoftglobal.FusionCharts; ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/www2015/files/bootstrap.js /**=0A= * @file=0A= * bootstrap.js=0A= *=0A= * Provides general enhancements and fixes to Bootstrap's JS files.=0A= */=0A= =0A= var Drupal =3D Drupal || {};=0A= =0A= (function($, Drupal){=0A= "use strict";=0A= =0A= Drupal.behaviors.bootstrap =3D {=0A= attach: function(context) {=0A= // Provide some Bootstrap tab/Drupal integration.=0A= $(context).find('.tabbable').once('bootstrap-tabs', function () {=0A= var $wrapper =3D $(this);=0A= var $tabs =3D $wrapper.find('.nav-tabs');=0A= var $content =3D $wrapper.find('.tab-content');=0A= var borderRadius =3D = parseInt($content.css('borderBottomRightRadius'), 10);=0A= var bootstrapTabResize =3D function() {=0A= if ($wrapper.hasClass('tabs-left') || = $wrapper.hasClass('tabs-right')) {=0A= $content.css('min-height', $tabs.outerHeight());=0A= }=0A= };=0A= // Add min-height on content for left and right tabs.=0A= bootstrapTabResize();=0A= // Detect tab switch.=0A= if ($wrapper.hasClass('tabs-left') || = $wrapper.hasClass('tabs-right')) {=0A= $tabs.on('shown.bs.tab', 'a[data-toggle=3D"tab"]', function = (e) {=0A= bootstrapTabResize();=0A= if ($wrapper.hasClass('tabs-left')) {=0A= if ($(e.target).parent().is(':first-child')) {=0A= $content.css('borderTopLeftRadius', '0');=0A= }=0A= else {=0A= $content.css('borderTopLeftRadius', borderRadius + 'px');=0A= }=0A= }=0A= else {=0A= if ($(e.target).parent().is(':first-child')) {=0A= $content.css('borderTopRightRadius', '0');=0A= }=0A= else {=0A= $content.css('borderTopRightRadius', borderRadius + = 'px');=0A= }=0A= }=0A= });=0A= }=0A= });=0A= }=0A= };=0A= =0A= /**=0A= * Bootstrap Popovers.=0A= */=0A= Drupal.behaviors.bootstrapPopovers =3D {=0A= attach: function (context, settings) {=0A= if (settings.bootstrap && settings.bootstrap.popoverEnabled) {=0A= var elements =3D = $(context).find('[data-toggle=3D"popover"]').toArray();=0A= for (var i =3D 0; i < elements.length; i++) {=0A= var $element =3D $(elements[i]);=0A= var options =3D $.extend(true, {}, = settings.bootstrap.popoverOptions, $element.data());=0A= $element.popover(options);=0A= }=0A= }=0A= }=0A= };=0A= =0A= /**=0A= * Bootstrap Tooltips.=0A= */=0A= Drupal.behaviors.bootstrapTooltips =3D {=0A= attach: function (context, settings) {=0A= if (settings.bootstrap && settings.bootstrap.tooltipEnabled) {=0A= var elements =3D = $(context).find('[data-toggle=3D"tooltip"]').toArray();=0A= for (var i =3D 0; i < elements.length; i++) {=0A= var $element =3D $(elements[i]);=0A= var options =3D $.extend(true, {}, = settings.bootstrap.tooltipOptions, $element.data());=0A= $element.tooltip(options);=0A= }=0A= }=0A= }=0A= };=0A= =0A= /**=0A= * Anchor fixes.=0A= */=0A= var $scrollableElement =3D $();=0A= Drupal.behaviors.bootstrapAnchors =3D {=0A= attach: function(context, settings) {=0A= var i, elements =3D ['html', 'body'];=0A= if (!$scrollableElement.length) {=0A= for (i =3D 0; i < elements.length; i++) {=0A= var $element =3D $(elements[i]);=0A= if ($element.scrollTop() > 0) {=0A= $scrollableElement =3D $element;=0A= break;=0A= }=0A= else {=0A= $element.scrollTop(1);=0A= if ($element.scrollTop() > 0) {=0A= $element.scrollTop(0);=0A= $scrollableElement =3D $element;=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= if (!settings.bootstrap || !settings.bootstrap.anchorsFix) {=0A= return;=0A= }=0A= var anchors =3D $(context).find('a').toArray();=0A= for (i =3D 0; i < anchors.length; i++) {=0A= if (!anchors[i].scrollTo) {=0A= this.bootstrapAnchor(anchors[i]);=0A= }=0A= }=0A= $scrollableElement.once('bootstrap-anchors', function () {=0A= $scrollableElement.on('click.bootstrap-anchors', = 'a[href*=3D"#"]:not([data-toggle],[data-target])', function(e) {=0A= this.scrollTo(e);=0A= });=0A= });=0A= },=0A= bootstrapAnchor: function (element) {=0A= element.validAnchor =3D element.nodeName =3D=3D=3D 'A' && = (location.hostname =3D=3D=3D element.hostname || !element.hostname) && = element.hash.replace(/#/,'').length;=0A= element.scrollTo =3D function(event) {=0A= var attr =3D 'id';=0A= var $target =3D $(element.hash);=0A= if (!$target.length) {=0A= attr =3D 'name';=0A= $target =3D $('[name=3D"' + element.hash.replace('#', '') + = '"');=0A= }=0A= var offset =3D $target.offset().top - = parseInt($scrollableElement.css('paddingTop'), 10) - = parseInt($scrollableElement.css('marginTop'), 10);=0A= if (this.validAnchor && $target.length && offset > 0) {=0A= if (event) {=0A= event.preventDefault();=0A= }=0A= var $fakeAnchor =3D $('<div/>')=0A= .addClass('element-invisible')=0A= .attr(attr, $target.attr(attr))=0A= .css({=0A= position: 'absolute',=0A= top: offset + 'px',=0A= zIndex: -1000=0A= })=0A= .appendTo(document);=0A= $target.removeAttr(attr);=0A= var complete =3D function () {=0A= location.hash =3D element.hash;=0A= $fakeAnchor.remove();=0A= $target.attr(attr, element.hash.replace('#', ''));=0A= };=0A= if (Drupal.settings.bootstrap.anchorsSmoothScrolling) {=0A= $scrollableElement.animate({ scrollTop: offset, = avoidTransforms: true }, 400, complete);=0A= }=0A= else {=0A= $scrollableElement.scrollTop(offset);=0A= complete();=0A= }=0A= }=0A= };=0A= }=0A= };=0A= =0A= })(jQuery, Drupal);=0A= ------=_NextPart_000_0000_01D384B4.5ED25A20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://www.consumer.org.hk/pricewatch/oilwatch/HM_Loader_arrayUnicode.js /*HM_Loader.js * by Peter Belesis. v5 * Copyright (c) 2003 Peter Belesis. All Rights Reserved. */ HM_UserAgent =3D navigator.userAgent; HM_DOM =3D (document.getElementById) ? true : false; HM_NS4 =3D (document.layers) ? true : false; HM_IE =3D (document.all) ? true : false; HM_IE4 =3D HM_IE && !HM_DOM; HM_Mac =3D (navigator.appVersion.indexOf("Mac") !=3D -1); HM_IE4M =3D HM_IE4 && HM_Mac; HM_Opera =3D (window.opera) ? true : false; if(HM_Opera) { HM_BrowserPattern =3D /Opera(\/| )(\d+.*)/; HM_VersionSupported =3D 7; } HM_Konqueror =3D (HM_UserAgent.indexOf("Konqueror")!=3D-1); if(HM_Konqueror) { HM_BrowserPattern =3D /(Konqueror\/)(\d+.*)/; HM_VersionSupported =3D 3; } if(HM_Opera || HM_Konqueror) { if (HM_UserAgent.match) { HM_Matches =3D HM_UserAgent.match(HM_BrowserPattern); if (HM_Matches&&HM_Matches[2]) { HM_BrowserVersion =3D parseFloat(HM_Matches[2]); } else HM_BrowserVersion =3D 0; HM_IsMenu =3D (HM_BrowserVersion >=3D HM_VersionSupported); } else { HM_BrowserVersion =3D 0; HM_IsMenu =3D false; } } else { HM_BrowserVersion =3D 0; HM_IsMenu =3D !HM_IE4M && (HM_DOM || HM_NS4 || HM_IE4 ); } if(window.event + "" =3D=3D "undefined") event =3D null; function HM_f_PopUp(){return false}; function HM_f_PopDown(){return false}; popUp =3D HM_f_PopUp; popDown =3D HM_f_PopDown; HM_GL_MenuWidth =3D 150; HM_GL_FontFamily =3D "Arial,sans-serif"; HM_GL_FontSize =3D 10; HM_GL_FontBold =3D true; HM_GL_FontItalic =3D false; HM_GL_FontColor =3D "black"; HM_GL_FontColorOver =3D "white"; HM_GL_BGColor =3D "transparent"; HM_GL_BGColorOver =3D "transparent"; HM_GL_ItemPadding =3D 3; HM_GL_BorderWidth =3D 1; HM_GL_BorderColor =3D "red"; HM_GL_BorderStyle =3D "solid"; HM_GL_SeparatorSize =3D 1; HM_GL_SeparatorColor =3D "yellow"; HM_GL_ImageSrc =3D "HM_More_black_right.gif"; HM_GL_ImageSrcLeft =3D "HM_More_black_left.gif"; HM_GL_ImageSrcOver =3D "HM_More_white_right.gif"; HM_GL_ImageSrcLeftOver =3D "HM_More_white_left.gif"; HM_GL_ImageSize =3D 5; HM_GL_ImageHorizSpace =3D 5; HM_GL_ImageVertSpace =3D 5; HM_GL_KeepHilite =3D false; HM_GL_ClickStart =3D false; HM_GL_ClickKill =3D 0; HM_GL_ChildOverlap =3D 40; HM_GL_ChildOffset =3D 10; HM_GL_ChildPerCentOver =3D null; HM_GL_TopSecondsVisible =3D .5; HM_GL_ChildSecondsVisible =3D .3; HM_GL_StatusDisplayBuild =3D 1; HM_GL_StatusDisplayLink =3D 1; HM_GL_UponDisplay =3D null; HM_GL_UponHide =3D null; HM_GL_RightToLeft =3D false; HM_GL_CreateTopOnly =3D true; HM_GL_ShowLinkCursor =3D true; HM_GL_ScrollEnabled =3D true; HM_GL_ScrollOver =3D (HM_Opera) ? 1 : 0; HM_MacN7 =3D = (HM_Mac&&(HM_UserAgent.indexOf('Netscape/7')!=3D-1))?true:false; HM_GL_ScrollInterval =3D (HM_MacN7) ? 100 : 20; HM_GL_ScrollBarHeight =3D 16; HM_GL_ScrollBarColor =3D "lightgrey"; HM_GL_ScrollImgSrcTop =3D "HM_More_black_top.gif"; HM_GL_ScrollImgSrcBot =3D "HM_More_black_bot.gif"; HM_GL_ScrollImgWidth =3D 9; HM_GL_ScrollImgHeight =3D 5; HM_GL_ScrollBothBars =3D true; HM_GL_FramesEnabled =3D false; HM_GL_FramesNavFramePos =3D "top"; HM_GL_FramesMainFrameName =3D "main"; HM_GL_HoverTimeTop =3D 0; HM_GL_HoverTimeTree =3D 0; HM_GL_ImageDir =3D "/pricewatch/oilwatch/"; HM_ScriptDir =3D HM_GL_ImageDir; // The following function is included to illustrate the JS=20 // expression handling of the left_position and top_position=20 // parameters. You may delete if you have no use for it function HW(kx){var b=3D0;var = c=3DHM_DOM?Hg.document.getElementById(kx):Hg[kx];var = d=3DHM_DOM?parseInt(c.style.width)+((Hjt||Hju)?0:Hu*2):HM_IE4?c.style.pix= elWidth:c.clip.width;var = gh=3DHM_IE?(HM_DOM?Hh.clientWidth:Hg.document.body.clientWidth):Hg.innerW= idth; return Math.max(parseInt((gh-d)/2),b);} HM_f_CenterMenu=3DHW; if(HM_IsMenu) { // 5.2 // HM_BrowserString =3D HM_NS4 ? "NS4" : HM_DOM ? "DOM" : "IE4"; HM_BrowserString =3D HM_NS4 ? "NS4" : HM_Opera ? "OPR" : HM_DOM ? "DOM" = : "IE4"; // document.write("<SCR" + "IPT LANGUAGE=3D'JavaScript1.2' SRC=3D'" + = HM_ScriptDir + "HM_Arrays.js' TYPE=3D'text/javascript'><\/SCR" + = "IPT>"); document.write("<SCR" + "IPT LANGUAGE=3D'JavaScript1.2' = SRC=3D'/pricewatch/oilwatch/arrays_unicode.js' = TYPE=3D'text/javascript'><\/SCR" + "IPT>"); document.write("<SCR" + "IPT LANGUAGE=3D'JavaScript1.2' SRC=3D'" + = HM_ScriptDir + "HM_Script"+ HM_BrowserString +".js' = TYPE=3D'text/javascript'><\/SCR" + "IPT>"); } //end ------=_NextPart_000_0000_01D384B4.5ED25A20--
| ver. 1.4 |
Github
|
.
| PHP 7.2.34 | Generation time: 1.19 |
proxy
|
phpinfo
|
Settings