Chapagain_FacebookLikeBoxPopup - Version 0.1.0

Version Notes

Initial Release

Download this release

Release Info

Developer Mukesh Chapagain
Extension Chapagain_FacebookLikeBoxPopup
Version 0.1.0
Comparing to
See all releases


Version 0.1.0

Files changed (21) hide show
  1. app/code/community/Chapagain/FacebookLikeBoxPopup/Block/Popup.php +19 -0
  2. app/code/community/Chapagain/FacebookLikeBoxPopup/Block/System/Config/Info.php +42 -0
  3. app/code/community/Chapagain/FacebookLikeBoxPopup/Helper/Data.php +173 -0
  4. app/code/community/Chapagain/FacebookLikeBoxPopup/etc/adminhtml.xml +28 -0
  5. app/code/community/Chapagain/FacebookLikeBoxPopup/etc/config.xml +79 -0
  6. app/code/community/Chapagain/FacebookLikeBoxPopup/etc/system.xml +273 -0
  7. app/design/frontend/base/default/layout/chapagain/facebooklikeboxpopup.xml +34 -0
  8. app/design/frontend/base/default/template/chapagain/facebooklikeboxpopup/popup.phtml +48 -0
  9. app/design/frontend/base/default/template/chapagain/facebooklikeboxpopup/sidebar.phtml +24 -0
  10. app/etc/modules/Chapagain_FacebookLikeBoxPopup.xml +9 -0
  11. js/colorbox/jquery.colorbox.js +1091 -0
  12. package.xml +12 -0
  13. skin/frontend/base/default/css/chapagain/facebooklikeboxpopup/colorbox.css +70 -0
  14. skin/frontend/base/default/images/chapagain/facebooklikeboxpopup/border.png +0 -0
  15. skin/frontend/base/default/images/chapagain/facebooklikeboxpopup/controls.png +0 -0
  16. skin/frontend/base/default/images/chapagain/facebooklikeboxpopup/loading.gif +0 -0
  17. skin/frontend/base/default/images/chapagain/facebooklikeboxpopup/loading_background.png +0 -0
  18. skin/frontend/base/default/images/chapagain/facebooklikeboxpopup/overlay.png +0 -0
  19. skin/frontend/base/default/js/chapagain/facebooklikeboxpopup/jquery-1.10.2.min.js +6 -0
  20. skin/frontend/base/default/js/chapagain/facebooklikeboxpopup/jquery-noconflict.js +4 -0
  21. skin/frontend/base/default/js/chapagain/facebooklikeboxpopup/jquery.colorbox.js +1091 -0
app/code/community/Chapagain/FacebookLikeBoxPopup/Block/Popup.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Chapagain_FacebookLikeBoxPopup_Block_Popup extends Mage_Core_Block_Template
4
+ {
5
+ public function getIsHomePage()
6
+ {
7
+ $routeName = Mage::app()->getRequest()->getRouteName();
8
+ $identifier = Mage::getSingleton('cms/page')->getIdentifier();
9
+
10
+ if($routeName == 'cms' && $identifier == 'home') {
11
+ return true;
12
+ } else {
13
+ return false;
14
+ }
15
+ }
16
+
17
+ }
18
+
19
+ ?>
app/code/community/Chapagain/FacebookLikeBoxPopup/Block/System/Config/Info.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Chapagain
4
+ * @package Chapagain_Facebooklikeboxpopup
5
+ * @author mukesh.chapagain@gmail.com
6
+ * @website http://blog.chapagain.com.np
7
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
8
+ */
9
+ class Chapagain_FacebookLikeBoxPopup_Block_System_Config_Info
10
+ extends Mage_Adminhtml_Block_Abstract
11
+ implements Varien_Data_Form_Element_Renderer_Interface
12
+ {
13
+
14
+ /**
15
+ * Render fieldset html
16
+ *
17
+ * @param Varien_Data_Form_Element_Abstract $element
18
+ * @return string
19
+ */
20
+ public function render(Varien_Data_Form_Element_Abstract $element)
21
+ {
22
+ $html = '<div style="background:url(\'http://www.gravatar.com/avatar/c01354fc5d46f88822d737d2a1ce981c.jpg?s=150\') no-repeat scroll 15px center #EAF0EE;border:1px solid #CCCCCC;margin-bottom:10px;padding:20px 20px 20px 180px;">
23
+ <h4>About the Developer</h4>
24
+ <p>
25
+ <strong>Mukesh Chapagain</strong> <br />
26
+ Web developer, Programmer, Blogger, Engineer <br />
27
+ Freelancer with specialization in Magento eCommerce<br />
28
+ <br />
29
+ <a href="http://blog.chapagain.com.np" target="_blank">Blog</a> |
30
+ <a href="mailto:mukesh.chapagain@gmail.com">Email</a> |
31
+ <a href="http://linkedin.com/in/chapagain" target="_blank">LinkedIn</a> |
32
+ <a href="http://github.com/chapagain" target="_blank">GitHub</a> |
33
+ <a href="http://twitter.com/chapagain" target="_blank">Twitter</a> |
34
+ <a href="http://facebook.com/mukesh.chapagain" target="_blank">Facebook</a>
35
+ <br />
36
+ More extensions by the developer at <a href="http://www.magentocommerce.com/magento-connect/developer/chapagain" target="_blank">MagentoConnect</a>
37
+ </p>
38
+ </div>';
39
+
40
+ return $html;
41
+ }
42
+ }
app/code/community/Chapagain/FacebookLikeBoxPopup/Helper/Data.php ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Chapagain_FacebookLikeBoxPopup_Helper_Data extends Mage_Core_Helper_Abstract
4
+ {
5
+ const CONFIG_FBPOPUP_IS_ENABLE = 'facebooklikeboxpopup/general/is_enable';
6
+ const CONFIG_FBPOPUP_FB_LINK = 'facebooklikeboxpopup/general/fb_link';
7
+ const CONFIG_FBPOPUP_FB_NAME = 'facebooklikeboxpopup/general/fb_name';
8
+ const CONFIG_FBPOPUP_POPUP_TEXT = 'facebooklikeboxpopup/general/popup_text';
9
+ const CONFIG_FBPOPUP_POPUP_WIDTH = 'facebooklikeboxpopup/general/popup_width';
10
+ const CONFIG_FBPOPUP_POPUP_HEIGHT = 'facebooklikeboxpopup/general/popup_height';
11
+ const CONFIG_FBPOPUP_SHOW_STREAM = 'facebooklikeboxpopup/general/show_stream';
12
+ const CONFIG_FBPOPUP_SHOW_FACES = 'facebooklikeboxpopup/general/show_faces';
13
+ const CONFIG_FBPOPUP_SHOW_HEADER = 'facebooklikeboxpopup/general/show_header';
14
+ const CONFIG_FBPOPUP_HIDE_COVER_PHOTO = 'facebooklikeboxpopup/general/hide_cover_photo';
15
+ const CONFIG_FBPOPUP_ADAPT_CONTAINER_WIDTH = 'facebooklikeboxpopup/general/adapt_container_width';
16
+
17
+ const CONFIG_FBPOPUP_IS_ENABLE_SIDEBAR = 'facebooklikeboxpopup/sidebar/is_enable';
18
+ const CONFIG_FBPOPUP_SHOW_LEFT_SIDEBAR = 'facebooklikeboxpopup/sidebar/show_in_left_sidebar';
19
+ const CONFIG_FBPOPUP_SHOW_RIGHT_SIDEBAR = 'facebooklikeboxpopup/sidebar/show_in_right_sidebar';
20
+ const CONFIG_FBPOPUP_FB_LINK_SIDEBAR = 'facebooklikeboxpopup/sidebar/fb_link';
21
+ const CONFIG_FBPOPUP_FB_NAME_SIDEBAR = 'facebooklikeboxpopup/sidebar/fb_name';
22
+ const CONFIG_FBPOPUP_POPUP_TEXT_SIDEBAR = 'facebooklikeboxpopup/sidebar/popup_text';
23
+ const CONFIG_FBPOPUP_POPUP_WIDTH_SIDEBAR = 'facebooklikeboxpopup/sidebar/popup_width';
24
+ const CONFIG_FBPOPUP_POPUP_HEIGHT_SIDEBAR = 'facebooklikeboxpopup/sidebar/popup_height';
25
+ const CONFIG_FBPOPUP_SHOW_STREAM_SIDEBAR = 'facebooklikeboxpopup/sidebar/show_stream';
26
+ const CONFIG_FBPOPUP_SHOW_FACES_SIDEBAR = 'facebooklikeboxpopup/sidebar/show_faces';
27
+ const CONFIG_FBPOPUP_SHOW_HEADER_SIDEBAR = 'facebooklikeboxpopup/sidebar/show_header';
28
+ const CONFIG_FBPOPUP_HIDE_COVER_PHOTO_SIDEBAR = 'facebooklikeboxpopup/sidebar/hide_cover_photo';
29
+ const CONFIG_FBPOPUP_ADAPT_CONTAINER_WIDTH_SIDEBAR = 'facebooklikeboxpopup/sidebar/adapt_container_width';
30
+
31
+ /**************************************************************
32
+ * POPUP SETTINGS
33
+ **************************************************************/
34
+ public function getIsEnable()
35
+ {
36
+ return Mage::getStoreConfig(self::CONFIG_FBPOPUP_IS_ENABLE);
37
+ }
38
+
39
+ public function getFbLink()
40
+ {
41
+ return Mage::getStoreConfig(self::CONFIG_FBPOPUP_FB_LINK);
42
+ }
43
+
44
+ public function getFbName()
45
+ {
46
+ return Mage::getStoreConfig(self::CONFIG_FBPOPUP_FB_NAME);
47
+ }
48
+
49
+ public function getPopupText()
50
+ {
51
+ return Mage::getStoreConfig(self::CONFIG_FBPOPUP_POPUP_TEXT);
52
+ }
53
+
54
+ public function getPopupWidth()
55
+ {
56
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_POPUP_WIDTH);
57
+ return $value > 0 ? $value : 400;
58
+ }
59
+
60
+ public function getPopupHeight()
61
+ {
62
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_POPUP_HEIGHT);
63
+ return $value > 0 ? $value : 220;
64
+ }
65
+
66
+ public function getShowStream()
67
+ {
68
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_SHOW_STREAM);
69
+ return $value == 0 ? 'false' : 'true';
70
+ }
71
+
72
+ public function getShowHeader()
73
+ {
74
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_SHOW_HEADER);
75
+ return $value == 0 ? 'false' : 'true';
76
+ }
77
+
78
+ public function getShowFaces()
79
+ {
80
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_SHOW_FACES);
81
+ return $value == 0 ? 'false' : 'true';
82
+ }
83
+
84
+ public function getHideCoverPhoto()
85
+ {
86
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_HIDE_COVER_PHOTO);
87
+ return $value == 0 ? 'false' : 'true';
88
+ }
89
+
90
+ public function getAdaptContainerWidth()
91
+ {
92
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_ADAPT_CONTAINER_WIDTH);
93
+ return $value == 0 ? 'false' : 'true';
94
+ }
95
+
96
+ /**************************************************************
97
+ * SIDEBAR SETTINGS
98
+ **************************************************************/
99
+
100
+ public function getIsEnableSidebar()
101
+ {
102
+ return Mage::getStoreConfig(self::CONFIG_FBPOPUP_IS_ENABLE_SIDEBAR);
103
+ }
104
+
105
+ public function getShowInLeftSidebar()
106
+ {
107
+ return Mage::getStoreConfig(self::CONFIG_FBPOPUP_SHOW_LEFT_SIDEBAR);
108
+ }
109
+
110
+ public function getShowInRightSidebar()
111
+ {
112
+ return Mage::getStoreConfig(self::CONFIG_FBPOPUP_SHOW_RIGHT_SIDEBAR);
113
+ }
114
+
115
+ public function getFbLinkSidebar()
116
+ {
117
+ return Mage::getStoreConfig(self::CONFIG_FBPOPUP_FB_LINK_SIDEBAR);
118
+ }
119
+
120
+ public function getFbNameSidebar()
121
+ {
122
+ return Mage::getStoreConfig(self::CONFIG_FBPOPUP_FB_NAME_SIDEBAR);
123
+ }
124
+
125
+ public function getPopupTextSidebar()
126
+ {
127
+ return Mage::getStoreConfig(self::CONFIG_FBPOPUP_POPUP_TEXT_SIDEBAR);
128
+ }
129
+
130
+ public function getPopupWidthSidebar()
131
+ {
132
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_POPUP_WIDTH_SIDEBAR);
133
+ return $value > 0 ? $value : 400;
134
+ }
135
+
136
+ public function getPopupHeightSidebar()
137
+ {
138
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_POPUP_HEIGHT_SIDEBAR);
139
+ return $value > 0 ? $value : 220;
140
+ }
141
+
142
+ public function getShowStreamSidebar()
143
+ {
144
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_SHOW_STREAM_SIDEBAR);
145
+ return $value == 0 ? 'false' : 'true';
146
+ }
147
+
148
+ public function getShowHeaderSidebar()
149
+ {
150
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_SHOW_HEADER_SIDEBAR);
151
+ return $value == 0 ? 'false' : 'true';
152
+ }
153
+
154
+ public function getShowFacesSidebar()
155
+ {
156
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_SHOW_FACES_SIDEBAR);
157
+ return $value == 0 ? 'false' : 'true';
158
+ }
159
+
160
+ public function getHideCoverPhotoSidebar()
161
+ {
162
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_HIDE_COVER_PHOTO_SIDEBAR);
163
+ return $value == 0 ? 'false' : 'true';
164
+ }
165
+
166
+ public function getAdaptContainerWidthSidebar()
167
+ {
168
+ $value = Mage::getStoreConfig(self::CONFIG_FBPOPUP_ADAPT_CONTAINER_WIDTH_SIDEBAR);
169
+ return $value == 0 ? 'false' : 'true';
170
+ }
171
+ }
172
+
173
+ ?>
app/code/community/Chapagain/FacebookLikeBoxPopup/etc/adminhtml.xml ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <acl>
4
+ <resources>
5
+ <all>
6
+ <title>Allow Everything</title>
7
+ </all>
8
+ <admin>
9
+ <children>
10
+ <system>
11
+ <children>
12
+ <config>
13
+ <children>
14
+ <chapagaininfo>
15
+ <title>Chapagain - Information</title>
16
+ </chapagaininfo>
17
+ <facebooklikeboxpopup>
18
+ <title>Facebook Like Box Popup</title>
19
+ </facebooklikeboxpopup>
20
+ </children>
21
+ </config>
22
+ </children>
23
+ </system>
24
+ </children>
25
+ </admin>
26
+ </resources>
27
+ </acl>
28
+ </config>
app/code/community/Chapagain/FacebookLikeBoxPopup/etc/config.xml ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Chapagain_FacebookLikeBoxPopup>
5
+ <version>0.1.0</version>
6
+ </Chapagain_FacebookLikeBoxPopup>
7
+ </modules>
8
+ <frontend>
9
+ <routers>
10
+ <facebooklikeboxpopup>
11
+ <use>standard</use>
12
+ <args>
13
+ <module>Chapagain_FacebookLikeBoxPopup</module>
14
+ <frontName>facebooklikeboxpopup</frontName>
15
+ </args>
16
+ </facebooklikeboxpopup>
17
+ </routers>
18
+ <layout>
19
+ <updates>
20
+ <facebooklikeboxpopup>
21
+ <file>chapagain/facebooklikeboxpopup.xml</file>
22
+ </facebooklikeboxpopup>
23
+ </updates>
24
+ </layout>
25
+ </frontend>
26
+ <admin>
27
+ <routers>
28
+ <facebooklikeboxpopupadmin>
29
+ <use>admin</use>
30
+ <args>
31
+ <module>Chapagain_FacebookLikeBoxPopup</module>
32
+ <frontName>facebooklikeboxpopupadmin</frontName>
33
+ </args>
34
+ </facebooklikeboxpopupadmin>
35
+ </routers>
36
+ </admin>
37
+ <global>
38
+ <models>
39
+ <facebooklikeboxpopup>
40
+ <class>Chapagain_FacebookLikeBoxPopup_Model</class>
41
+ </facebooklikeboxpopup>
42
+ </models>
43
+ <blocks>
44
+ <facebooklikeboxpopup>
45
+ <class>Chapagain_FacebookLikeBoxPopup_Block</class>
46
+ </facebooklikeboxpopup>
47
+ </blocks>
48
+ <helpers>
49
+ <facebooklikeboxpopup>
50
+ <class>Chapagain_FacebookLikeBoxPopup_Helper</class>
51
+ </facebooklikeboxpopup>
52
+ </helpers>
53
+ </global>
54
+ <default>
55
+ <facebooklikeboxpopup>
56
+ <general>
57
+ <is_enable>1</is_enable>
58
+ <fb_link>http://www.facebook.com/mukesh.chapagain</fb_link>
59
+ <fb_name>Mukesh Chapagain</fb_name>
60
+ <popup_width>400</popup_width>
61
+ <popup_height>220</popup_height>
62
+ <popup_text>Like us on Facebook</popup_text>
63
+ <show_faces>1</show_faces>
64
+ <adapt_container_width>1</adapt_container_width>
65
+ </general>
66
+ <sidebar>
67
+ <is_enable>1</is_enable>
68
+ <show_in_right_sidebar>1</show_in_right_sidebar>
69
+ <fb_link>http://www.facebook.com/mukesh.chapagain</fb_link>
70
+ <fb_name>Mukesh Chapagain</fb_name>
71
+ <popup_width>400</popup_width>
72
+ <popup_height>220</popup_height>
73
+ <popup_text>Like us on Facebook</popup_text>
74
+ <show_faces>1</show_faces>
75
+ <adapt_container_width>1</adapt_container_width>
76
+ </sidebar>
77
+ </facebooklikeboxpopup>
78
+ </default>
79
+ </config>
app/code/community/Chapagain/FacebookLikeBoxPopup/etc/system.xml ADDED
@@ -0,0 +1,273 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <config>
3
+ <tabs>
4
+ <chapagainall translate="label" module="facebooklikeboxpopup">
5
+ <label>Chapagain Extensions</label>
6
+ <sort_order>250</sort_order>
7
+ </chapagainall>
8
+ </tabs>
9
+ <sections>
10
+ <chapagaininfo translate="label" module="facebooklikeboxpopup">
11
+ <label>Info</label>
12
+ <tab>chapagainall</tab>
13
+ <frontend_type>text</frontend_type>
14
+ <sort_order>10</sort_order>
15
+ <show_in_default>1</show_in_default>
16
+ <show_in_website>1</show_in_website>
17
+ <show_in_store>1</show_in_store>
18
+ <groups>
19
+ <info>
20
+ <frontend_model>facebooklikeboxpopup/system_config_info</frontend_model>
21
+ <sort_order>10</sort_order>
22
+ <show_in_default>1</show_in_default>
23
+ <show_in_website>1</show_in_website>
24
+ <show_in_store>1</show_in_store>
25
+ </info>
26
+ </groups>
27
+ </chapagaininfo>
28
+
29
+ <facebooklikeboxpopup module="facebooklikeboxpopup">
30
+ <label>Facebook Like Box Popup</label>
31
+ <tab>chapagainall</tab>
32
+ <frontend_type>text</frontend_type>
33
+ <sort_order>100</sort_order>
34
+ <show_in_default>1</show_in_default>
35
+ <show_in_website>1</show_in_website>
36
+ <show_in_store>1</show_in_store>
37
+ <groups>
38
+ <general translate="label">
39
+ <label>Like Box Popup Settings</label>
40
+ <frontend_type>text</frontend_type>
41
+ <sort_order>10</sort_order>
42
+ <show_in_default>1</show_in_default>
43
+ <show_in_website>1</show_in_website>
44
+ <show_in_store>1</show_in_store>
45
+ <fields>
46
+ <is_enable translate="label comment">
47
+ <label>Enable</label>
48
+ <comment>Enable/Disable Facebook Like Box Popup</comment>
49
+ <frontend_type>select</frontend_type>
50
+ <source_model>adminhtml/system_config_source_yesno</source_model>
51
+ <sort_order>10</sort_order>
52
+ <show_in_default>1</show_in_default>
53
+ <show_in_website>1</show_in_website>
54
+ <show_in_store>1</show_in_store>
55
+ </is_enable>
56
+ <fb_link translate="label comment">
57
+ <label>Facebook URL</label>
58
+ <frontend_type>text</frontend_type>
59
+ <sort_order>20</sort_order>
60
+ <show_in_default>1</show_in_default>
61
+ <show_in_website>1</show_in_website>
62
+ <show_in_store>1</show_in_store>
63
+ </fb_link>
64
+ <fb_name translate="label comment">
65
+ <label>Facebook Page Name</label>
66
+ <frontend_type>text</frontend_type>
67
+ <sort_order>25</sort_order>
68
+ <show_in_default>1</show_in_default>
69
+ <show_in_website>1</show_in_website>
70
+ <show_in_store>1</show_in_store>
71
+ </fb_name>
72
+ <popup_text translate="label comment">
73
+ <label>Text above Likebox</label>
74
+ <frontend_type>text</frontend_type>
75
+ <sort_order>30</sort_order>
76
+ <show_in_default>1</show_in_default>
77
+ <show_in_website>1</show_in_website>
78
+ <show_in_store>1</show_in_store>
79
+ </popup_text>
80
+ <popup_width translate="label comment">
81
+ <label>Like Box Width</label>
82
+ <comment>Like Box Width in pixels (px)</comment>
83
+ <frontend_type>text</frontend_type>
84
+ <sort_order>40</sort_order>
85
+ <show_in_default>1</show_in_default>
86
+ <show_in_website>1</show_in_website>
87
+ <show_in_store>1</show_in_store>
88
+ </popup_width>
89
+ <popup_height translate="label comment">
90
+ <label>Like Box Height</label>
91
+ <comment>Like Box Height in pixels (px)</comment>
92
+ <frontend_type>text</frontend_type>
93
+ <sort_order>50</sort_order>
94
+ <show_in_default>1</show_in_default>
95
+ <show_in_website>1</show_in_website>
96
+ <show_in_store>1</show_in_store>
97
+ </popup_height>
98
+ <show_faces translate="label comment">
99
+ <label>Show Friend's Faces</label>
100
+ <frontend_type>select</frontend_type>
101
+ <source_model>adminhtml/system_config_source_yesno</source_model>
102
+ <sort_order>60</sort_order>
103
+ <show_in_default>1</show_in_default>
104
+ <show_in_website>1</show_in_website>
105
+ <show_in_store>1</show_in_store>
106
+ </show_faces>
107
+ <show_stream translate="label comment">
108
+ <label>Show Page Posts</label>
109
+ <frontend_type>select</frontend_type>
110
+ <source_model>adminhtml/system_config_source_yesno</source_model>
111
+ <sort_order>70</sort_order>
112
+ <show_in_default>1</show_in_default>
113
+ <show_in_website>1</show_in_website>
114
+ <show_in_store>1</show_in_store>
115
+ </show_stream>
116
+ <show_header translate="label comment">
117
+ <label>Use Small Header</label>
118
+ <frontend_type>select</frontend_type>
119
+ <source_model>adminhtml/system_config_source_yesno</source_model>
120
+ <sort_order>80</sort_order>
121
+ <show_in_default>1</show_in_default>
122
+ <show_in_website>1</show_in_website>
123
+ <show_in_store>1</show_in_store>
124
+ </show_header>
125
+ <hide_cover_photo translate="label comment">
126
+ <label>Hide Cover Photo</label>
127
+ <frontend_type>select</frontend_type>
128
+ <source_model>adminhtml/system_config_source_yesno</source_model>
129
+ <sort_order>90</sort_order>
130
+ <show_in_default>1</show_in_default>
131
+ <show_in_website>1</show_in_website>
132
+ <show_in_store>1</show_in_store>
133
+ </hide_cover_photo>
134
+ <adapt_container_width translate="label comment">
135
+ <label>Adapt to Container Width</label>
136
+ <frontend_type>select</frontend_type>
137
+ <source_model>adminhtml/system_config_source_yesno</source_model>
138
+ <sort_order>100</sort_order>
139
+ <show_in_default>1</show_in_default>
140
+ <show_in_website>1</show_in_website>
141
+ <show_in_store>1</show_in_store>
142
+ </adapt_container_width>
143
+ </fields>
144
+ </general>
145
+ <sidebar translate="label">
146
+ <label>Like Box Sidebar Settings</label>
147
+ <frontend_type>text</frontend_type>
148
+ <sort_order>20</sort_order>
149
+ <show_in_default>1</show_in_default>
150
+ <show_in_website>1</show_in_website>
151
+ <show_in_store>1</show_in_store>
152
+ <fields>
153
+ <is_enable translate="label comment">
154
+ <label>Enable</label>
155
+ <comment>Enable/Disable Like Box on Sidebar</comment>
156
+ <frontend_type>select</frontend_type>
157
+ <source_model>adminhtml/system_config_source_yesno</source_model>
158
+ <sort_order>10</sort_order>
159
+ <show_in_default>1</show_in_default>
160
+ <show_in_website>1</show_in_website>
161
+ <show_in_store>1</show_in_store>
162
+ </is_enable>
163
+ <show_in_left_sidebar translate="label comment">
164
+ <label>Show in Left Sidebar</label>
165
+ <frontend_type>select</frontend_type>
166
+ <source_model>adminhtml/system_config_source_yesno</source_model>
167
+ <sort_order>20</sort_order>
168
+ <show_in_default>1</show_in_default>
169
+ <show_in_website>1</show_in_website>
170
+ <show_in_store>1</show_in_store>
171
+ </show_in_left_sidebar>
172
+ <show_in_right_sidebar translate="label comment">
173
+ <label>Show in Right Sidebar</label>
174
+ <frontend_type>select</frontend_type>
175
+ <source_model>adminhtml/system_config_source_yesno</source_model>
176
+ <sort_order>30</sort_order>
177
+ <show_in_default>1</show_in_default>
178
+ <show_in_website>1</show_in_website>
179
+ <show_in_store>1</show_in_store>
180
+ </show_in_right_sidebar>
181
+ <fb_link translate="label comment">
182
+ <label>Facebook URL</label>
183
+ <frontend_type>text</frontend_type>
184
+ <sort_order>40</sort_order>
185
+ <show_in_default>1</show_in_default>
186
+ <show_in_website>1</show_in_website>
187
+ <show_in_store>1</show_in_store>
188
+ </fb_link>
189
+ <fb_name translate="label comment">
190
+ <label>Facebook Page Name</label>
191
+ <frontend_type>text</frontend_type>
192
+ <sort_order>50</sort_order>
193
+ <show_in_default>1</show_in_default>
194
+ <show_in_website>1</show_in_website>
195
+ <show_in_store>1</show_in_store>
196
+ </fb_name>
197
+ <popup_text translate="label comment">
198
+ <label>Text above Likebox</label>
199
+ <frontend_type>text</frontend_type>
200
+ <sort_order>60</sort_order>
201
+ <show_in_default>1</show_in_default>
202
+ <show_in_website>1</show_in_website>
203
+ <show_in_store>1</show_in_store>
204
+ </popup_text>
205
+ <popup_width translate="label comment">
206
+ <label>Like Box Width</label>
207
+ <comment>Like Box Width in pixels (px)</comment>
208
+ <frontend_type>text</frontend_type>
209
+ <sort_order>70</sort_order>
210
+ <show_in_default>1</show_in_default>
211
+ <show_in_website>1</show_in_website>
212
+ <show_in_store>1</show_in_store>
213
+ </popup_width>
214
+ <popup_height translate="label comment">
215
+ <label>Like Box Height</label>
216
+ <comment>Like Box Height in pixels (px)</comment>
217
+ <frontend_type>text</frontend_type>
218
+ <sort_order>80</sort_order>
219
+ <show_in_default>1</show_in_default>
220
+ <show_in_website>1</show_in_website>
221
+ <show_in_store>1</show_in_store>
222
+ </popup_height>
223
+ <show_faces translate="label comment">
224
+ <label>Show Friend's Faces</label>
225
+ <frontend_type>select</frontend_type>
226
+ <source_model>adminhtml/system_config_source_yesno</source_model>
227
+ <sort_order>90</sort_order>
228
+ <show_in_default>1</show_in_default>
229
+ <show_in_website>1</show_in_website>
230
+ <show_in_store>1</show_in_store>
231
+ </show_faces>
232
+ <show_stream translate="label comment">
233
+ <label>Show Page Posts</label>
234
+ <frontend_type>select</frontend_type>
235
+ <source_model>adminhtml/system_config_source_yesno</source_model>
236
+ <sort_order>100</sort_order>
237
+ <show_in_default>1</show_in_default>
238
+ <show_in_website>1</show_in_website>
239
+ <show_in_store>1</show_in_store>
240
+ </show_stream>
241
+ <show_header translate="label comment">
242
+ <label>Use Small Header</label>
243
+ <frontend_type>select</frontend_type>
244
+ <source_model>adminhtml/system_config_source_yesno</source_model>
245
+ <sort_order>110</sort_order>
246
+ <show_in_default>1</show_in_default>
247
+ <show_in_website>1</show_in_website>
248
+ <show_in_store>1</show_in_store>
249
+ </show_header>
250
+ <hide_cover_photo translate="label comment">
251
+ <label>Hide Cover Photo</label>
252
+ <frontend_type>select</frontend_type>
253
+ <source_model>adminhtml/system_config_source_yesno</source_model>
254
+ <sort_order>120</sort_order>
255
+ <show_in_default>1</show_in_default>
256
+ <show_in_website>1</show_in_website>
257
+ <show_in_store>1</show_in_store>
258
+ </hide_cover_photo>
259
+ <adapt_container_width translate="label comment">
260
+ <label>Adapt to Container Width</label>
261
+ <frontend_type>select</frontend_type>
262
+ <source_model>adminhtml/system_config_source_yesno</source_model>
263
+ <sort_order>130</sort_order>
264
+ <show_in_default>1</show_in_default>
265
+ <show_in_website>1</show_in_website>
266
+ <show_in_store>1</show_in_store>
267
+ </adapt_container_width>
268
+ </fields>
269
+ </sidebar>
270
+ </groups>
271
+ </facebooklikeboxpopup>
272
+ </sections>
273
+ </config>
app/design/frontend/base/default/layout/chapagain/facebooklikeboxpopup.xml ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+
3
+ <layout version="0.1.0">
4
+
5
+ <!--
6
+ Default layout, loads most of the pages
7
+ -->
8
+
9
+ <default>
10
+ <reference name="head">
11
+ <action method="addItem" ifconfig="facebooklikeboxpopup/general/is_enable"><type>skin_css</type><name>css/chapagain/facebooklikeboxpopup/colorbox.css</name></action>
12
+ <action method="addItem" ifconfig="facebooklikeboxpopup/general/is_enable"><type>skin_js</type><name>js/chapagain/facebooklikeboxpopup/jquery-1.10.2.min.js</name></action>
13
+ <action method="addItem" ifconfig="facebooklikeboxpopup/general/is_enable"><type>skin_js</type><name>js/chapagain/facebooklikeboxpopup/jquery-noconflict.js</name></action>
14
+ <!--<action method="addItem" ifconfig="facebooklikeboxpopup/general/is_enable"><type>skin_js</type><name>js/chapagain/facebooklikeboxpopup/jquery.colorbox.js</name></action>-->
15
+ </reference>
16
+
17
+ <reference name="before_body_end" after="-">
18
+ <block type="facebooklikeboxpopup/popup" name="chapagain_facebook_like_box_popup" as="chapagain_facebook_like_box_popup" template="chapagain/facebooklikeboxpopup/popup.phtml" />
19
+ </reference>
20
+
21
+ <block type="facebooklikeboxpopup/popup" name="facebooklikeboxpopup.sidebar" before="-" template="chapagain/facebooklikeboxpopup/sidebar.phtml"/>
22
+ <reference name="left">
23
+ <action method="append" ifconfig="facebooklikeboxpopup/sidebar/show_in_left_sidebar">
24
+ <block>facebooklikeboxpopup.sidebar</block>
25
+ </action>
26
+ </reference>
27
+ <reference name="right">
28
+ <action method="append" ifconfig="facebooklikeboxpopup/sidebar/show_in_right_sidebar">
29
+ <block>facebooklikeboxpopup.sidebar</block>
30
+ </action>
31
+ </reference>
32
+
33
+ </default>
34
+ </layout>
app/design/frontend/base/default/template/chapagain/facebooklikeboxpopup/popup.phtml ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ($this->helper('facebooklikeboxpopup')->getIsEnable()): ?>
2
+ <?php if (!Mage::getModel('core/cookie')->get('fb_popup')): ?>
3
+
4
+ <script>
5
+ jQuery(document).ready(function(){
6
+ //if (document.cookie.indexOf('fb_popup') == -1) {
7
+
8
+ /**
9
+ //Set Cookie
10
+ //var fifteenDays = 1000*60*60*24*30;
11
+ //var expires = new Date((new Date()).valueOf() + fifteenDays);
12
+ //document.cookie = "visited=true;expires=" + expires.toUTCString();
13
+ document.cookie = "fb_popup=true"; // cookie deleted when browser is closed
14
+ **/
15
+ <?php Mage::getModel('core/cookie')->set('fb_popup', 'true', 0); //$name, $value, $period=0 (delete cookie after browser close) ?>
16
+
17
+ //Examples of how to assign the Colorbox event to elements
18
+ jQuery.colorbox({width:"90%", height:"50%", maxWidth:"<?php echo $this->helper('facebooklikeboxpopup')->getPopupWidth()+55 ?>px", maxHeight:"<?php echo $this->helper('facebooklikeboxpopup')->getPopupHeight()+130 ?>px", inline:true, href:"#inline_content"});
19
+
20
+ //}
21
+ });
22
+ </script>
23
+ <script src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB, true); ?>js/colorbox/jquery.colorbox.js"></script>
24
+
25
+ <div id="fb-root"></div>
26
+ <script>(function(d, s, id) {
27
+ var js, fjs = d.getElementsByTagName(s)[0];
28
+ if (d.getElementById(id)) return;
29
+ js = d.createElement(s); js.id = id;
30
+ js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5&appId=420745254777922";
31
+ fjs.parentNode.insertBefore(js, fjs);
32
+ }(document, 'script', 'facebook-jssdk'));</script>
33
+
34
+ <!-- This contains the hidden content for inline calls -->
35
+ <div style='display:none'>
36
+ <div id='inline_content' style='padding:10px; background:#fff;'>
37
+ <p><h4><?php echo $this->helper('facebooklikeboxpopup')->getPopupText() ?></h4></p>
38
+
39
+ <?php /* ?>
40
+ <iframe src="//www.facebook.com/plugins/likebox.php?href=<?php echo $this->helper('facebooklikeboxpopup')->getFbLink() ?>&width=<?php echo $this->helper('facebooklikeboxpopup')->getPopupWidth() ?>&height=<?php echo $this->helper('facebooklikeboxpopup')->getPopupHeight() ?>&colorscheme=light&show_faces=<?php echo $this->helper('facebooklikeboxpopup')->getShowFaces() ?>&order_color=#ffffff&stream=<?php echo $this->helper('facebooklikeboxpopup')->getShowStream() ?>&header=<?php echo $this->helper('facebooklikeboxpopup')->getShowHeader() ?>&scrolling=yes" frameborder="0" style="border:none; overflow:hidden; width:<?php echo $this->helper('facebooklikeboxpopup')->getPopupWidth() ?>px; height:<?php echo $this->helper('facebooklikeboxpopup')->getPopupHeight() ?>px"></iframe>
41
+ <?php */ ?>
42
+
43
+ <div class="fb-page" data-href="<?php echo $this->helper('facebooklikeboxpopup')->getFbLink() ?>" data-width="<?php echo $this->helper('facebooklikeboxpopup')->getPopupWidth() ?>" data-height="<?php echo $this->helper('facebooklikeboxpopup')->getPopupHeight() ?>" data-small-header="<?php echo $this->helper('facebooklikeboxpopup')->getShowHeader() ?>" data-adapt-container-width="<?php echo $this->helper('facebooklikeboxpopup')->getAdaptContainerWidth() ?>" data-hide-cover="<?php echo $this->helper('facebooklikeboxpopup')->getHideCoverPhoto() ?>" data-show-facepile="<?php echo $this->helper('facebooklikeboxpopup')->getShowFaces() ?>" data-show-posts="<?php echo $this->helper('facebooklikeboxpopup')->getShowStream() ?>"><div class="fb-xfbml-parse-ignore"><blockquote cite="<?php echo $this->helper('facebooklikeboxpopup')->getFbLink() ?>"><a href="<?php echo $this->helper('facebooklikeboxpopup')->getFbLink() ?>"><?php echo $this->helper('facebooklikeboxpopup')->getFbName() ?></a></blockquote></div></div>
44
+
45
+ </div>
46
+ </div>
47
+ <?php endif; ?>
48
+ <?php endif; ?>
app/design/frontend/base/default/template/chapagain/facebooklikeboxpopup/sidebar.phtml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ($this->helper('facebooklikeboxpopup')->getIsEnableSidebar()): ?>
2
+
3
+ <?php
4
+ $popupText = $this->helper('facebooklikeboxpopup')->getPopupTextSidebar();
5
+ ?>
6
+
7
+ <div id="fb-root"></div>
8
+ <script>(function(d, s, id) {
9
+ var js, fjs = d.getElementsByTagName(s)[0];
10
+ if (d.getElementById(id)) return;
11
+ js = d.createElement(s); js.id = id;
12
+ js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5&appId=420745254777922";
13
+ fjs.parentNode.insertBefore(js, fjs);
14
+ }(document, 'script', 'facebook-jssdk'));</script>
15
+
16
+ <div class="block block-subscribe">
17
+ <div class="block-title">
18
+ <strong><span><?php echo $this->__($this->helper('facebooklikeboxpopup')->getPopupTextSidebar()) ?></span></strong>
19
+ </div>
20
+
21
+ <div class="fb-page" data-href="<?php echo $this->helper('facebooklikeboxpopup')->getFbLinkSidebar() ?>" data-width="<?php echo $this->helper('facebooklikeboxpopup')->getPopupWidthSidebar() ?>" data-height="<?php echo $this->helper('facebooklikeboxpopup')->getPopupHeightSidebar() ?>" data-small-header="<?php echo $this->helper('facebooklikeboxpopup')->getShowHeaderSidebar() ?>" data-adapt-container-width="<?php echo $this->helper('facebooklikeboxpopup')->getAdaptContainerWidthSidebar() ?>" data-hide-cover="<?php echo $this->helper('facebooklikeboxpopup')->getHideCoverPhotoSidebar() ?>" data-show-facepile="<?php echo $this->helper('facebooklikeboxpopup')->getShowFacesSidebar() ?>" data-show-posts="<?php echo $this->helper('facebooklikeboxpopup')->getShowStreamSidebar() ?>"><div class="fb-xfbml-parse-ignore"><blockquote cite="<?php echo $this->helper('facebooklikeboxpopup')->getFbLinkSidebar() ?>"><a href="<?php echo $this->helper('facebooklikeboxpopup')->getFbLinkSidebar() ?>"><?php echo $this->helper('facebooklikeboxpopup')->getFbNameSidebar() ?></a></blockquote></div></div>
22
+ </div>
23
+
24
+ <?php endif; ?>
app/etc/modules/Chapagain_FacebookLikeBoxPopup.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Chapagain_FacebookLikeBoxPopup>
5
+ <active>true</active>
6
+ <codePool>community</codePool>
7
+ </Chapagain_FacebookLikeBoxPopup>
8
+ </modules>
9
+ </config>
js/colorbox/jquery.colorbox.js ADDED
@@ -0,0 +1,1091 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ Colorbox v1.5.4 - 2014-03-07
3
+ jQuery lightbox and modal window plugin
4
+ (c) 2014 Jack Moore - http://www.jacklmoore.com/colorbox
5
+ license: http://www.opensource.org/licenses/mit-license.php
6
+ */
7
+ (function ($, document, window) {
8
+ var
9
+ // Default settings object.
10
+ // See http://jacklmoore.com/colorbox for details.
11
+ defaults = {
12
+ // data sources
13
+ html: false,
14
+ photo: false,
15
+ iframe: false,
16
+ inline: false,
17
+
18
+ // behavior and appearance
19
+ transition: "elastic",
20
+ speed: 300,
21
+ fadeOut: 300,
22
+ width: false,
23
+ initialWidth: "600",
24
+ innerWidth: false,
25
+ maxWidth: false,
26
+ height: false,
27
+ initialHeight: "450",
28
+ innerHeight: false,
29
+ maxHeight: false,
30
+ scalePhotos: true,
31
+ scrolling: true,
32
+ opacity: 0.9,
33
+ preloading: true,
34
+ className: false,
35
+ overlayClose: true,
36
+ escKey: true,
37
+ arrowKey: true,
38
+ top: false,
39
+ bottom: false,
40
+ left: false,
41
+ right: false,
42
+ fixed: false,
43
+ data: undefined,
44
+ closeButton: true,
45
+ fastIframe: true,
46
+ open: false,
47
+ reposition: true,
48
+ loop: true,
49
+ slideshow: false,
50
+ slideshowAuto: true,
51
+ slideshowSpeed: 2500,
52
+ slideshowStart: "start slideshow",
53
+ slideshowStop: "stop slideshow",
54
+ photoRegex: /\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,
55
+
56
+ // alternate image paths for high-res displays
57
+ retinaImage: false,
58
+ retinaUrl: false,
59
+ retinaSuffix: '@2x.$1',
60
+
61
+ // internationalization
62
+ current: "image {current} of {total}",
63
+ previous: "previous",
64
+ next: "next",
65
+ close: "close",
66
+ xhrError: "This content failed to load.",
67
+ imgError: "This image failed to load.",
68
+
69
+ // accessbility
70
+ returnFocus: true,
71
+ trapFocus: true,
72
+
73
+ // callbacks
74
+ onOpen: false,
75
+ onLoad: false,
76
+ onComplete: false,
77
+ onCleanup: false,
78
+ onClosed: false,
79
+
80
+ rel: function() {
81
+ return this.rel;
82
+ },
83
+ href: function() {
84
+ // Using .attr() so that the href can also be used to provide a selector for inline content
85
+ return $(this).attr('href');
86
+ },
87
+ title: function() {
88
+ return this.title;
89
+ }
90
+ },
91
+
92
+
93
+ // Abstracting the HTML and event identifiers for easy rebranding
94
+ colorbox = 'colorbox',
95
+ prefix = 'cbox',
96
+ boxElement = prefix + 'Element',
97
+
98
+ // Events
99
+ event_open = prefix + '_open',
100
+ event_load = prefix + '_load',
101
+ event_complete = prefix + '_complete',
102
+ event_cleanup = prefix + '_cleanup',
103
+ event_closed = prefix + '_closed',
104
+ event_purge = prefix + '_purge',
105
+
106
+ // Cached jQuery Object Variables
107
+ $overlay,
108
+ $box,
109
+ $wrap,
110
+ $content,
111
+ $topBorder,
112
+ $leftBorder,
113
+ $rightBorder,
114
+ $bottomBorder,
115
+ $related,
116
+ $window,
117
+ $loaded,
118
+ $loadingBay,
119
+ $loadingOverlay,
120
+ $title,
121
+ $current,
122
+ $slideshow,
123
+ $next,
124
+ $prev,
125
+ $close,
126
+ $groupControls,
127
+ $events = $('<a/>'), // $({}) would be prefered, but there is an issue with jQuery 1.4.2
128
+
129
+ // Variables for cached values or use across multiple functions
130
+ settings,
131
+ interfaceHeight,
132
+ interfaceWidth,
133
+ loadedHeight,
134
+ loadedWidth,
135
+ index,
136
+ photo,
137
+ open,
138
+ active,
139
+ closing,
140
+ loadingTimer,
141
+ publicMethod,
142
+ div = "div",
143
+ requests = 0,
144
+ previousCSS = {},
145
+ init;
146
+
147
+ // ****************
148
+ // HELPER FUNCTIONS
149
+ // ****************
150
+
151
+ // Convenience function for creating new jQuery objects
152
+ function $tag(tag, id, css) {
153
+ var element = document.createElement(tag);
154
+
155
+ if (id) {
156
+ element.id = prefix + id;
157
+ }
158
+
159
+ if (css) {
160
+ element.style.cssText = css;
161
+ }
162
+
163
+ return $(element);
164
+ }
165
+
166
+ // Get the window height using innerHeight when available to avoid an issue with iOS
167
+ // http://bugs.jquery.com/ticket/6724
168
+ function winheight() {
169
+ return window.innerHeight ? window.innerHeight : $(window).height();
170
+ }
171
+
172
+ function Settings(element, options) {
173
+ if (options !== Object(options)) {
174
+ options = {};
175
+ }
176
+
177
+ this.cache = {};
178
+ this.el = element;
179
+
180
+ this.value = function(key) {
181
+ var dataAttr;
182
+
183
+ if (this.cache[key] === undefined) {
184
+ dataAttr = $(this.el).attr('data-cbox-'+key);
185
+
186
+ if (dataAttr !== undefined) {
187
+ this.cache[key] = dataAttr;
188
+ } else if (options[key] !== undefined) {
189
+ this.cache[key] = options[key];
190
+ } else if (defaults[key] !== undefined) {
191
+ this.cache[key] = defaults[key];
192
+ }
193
+ }
194
+
195
+ return this.cache[key];
196
+ };
197
+
198
+ this.get = function(key) {
199
+ var value = this.value(key);
200
+ return $.isFunction(value) ? value.call(this.el, this) : value;
201
+ };
202
+ }
203
+
204
+ // Determine the next and previous members in a group.
205
+ function getIndex(increment) {
206
+ var
207
+ max = $related.length,
208
+ newIndex = (index + increment) % max;
209
+
210
+ return (newIndex < 0) ? max + newIndex : newIndex;
211
+ }
212
+
213
+ // Convert '%' and 'px' values to integers
214
+ function setSize(size, dimension) {
215
+ return Math.round((/%/.test(size) ? ((dimension === 'x' ? $window.width() : winheight()) / 100) : 1) * parseInt(size, 10));
216
+ }
217
+
218
+ // Checks an href to see if it is a photo.
219
+ // There is a force photo option (photo: true) for hrefs that cannot be matched by the regex.
220
+ function isImage(settings, url) {
221
+ return settings.get('photo') || settings.get('photoRegex').test(url);
222
+ }
223
+
224
+ function retinaUrl(settings, url) {
225
+ return settings.get('retinaUrl') && window.devicePixelRatio > 1 ? url.replace(settings.get('photoRegex'), settings.get('retinaSuffix')) : url;
226
+ }
227
+
228
+ function trapFocus(e) {
229
+ if ('contains' in $box[0] && !$box[0].contains(e.target) && e.target !== $overlay[0]) {
230
+ e.stopPropagation();
231
+ $box.focus();
232
+ }
233
+ }
234
+
235
+ function setClass(str) {
236
+ if (setClass.str !== str) {
237
+ $box.add($overlay).removeClass(setClass.str).addClass(str);
238
+ setClass.str = str;
239
+ }
240
+ }
241
+
242
+ function getRelated() {
243
+ index = 0;
244
+
245
+ if (rel && rel !== 'nofollow') {
246
+ $related = $('.' + boxElement).filter(function () {
247
+ var options = $.data(this, colorbox);
248
+ var settings = new Settings(this, options);
249
+ return (settings.get('rel') === rel);
250
+ });
251
+ index = $related.index(settings.el);
252
+
253
+ // Check direct calls to Colorbox.
254
+ if (index === -1) {
255
+ $related = $related.add(settings.el);
256
+ index = $related.length - 1;
257
+ }
258
+ } else {
259
+ $related = $(settings.el);
260
+ }
261
+ }
262
+
263
+ function trigger(event) {
264
+ // for external use
265
+ $(document).trigger(event);
266
+ // for internal use
267
+ $events.triggerHandler(event);
268
+ }
269
+
270
+ var slideshow = (function(){
271
+ var active,
272
+ className = prefix + "Slideshow_",
273
+ click = "click." + prefix,
274
+ timeOut;
275
+
276
+ function clear () {
277
+ clearTimeout(timeOut);
278
+ }
279
+
280
+ function set() {
281
+ if (settings.get('loop') || $related[index + 1]) {
282
+ clear();
283
+ timeOut = setTimeout(publicMethod.next, settings.get('slideshowSpeed'));
284
+ }
285
+ }
286
+
287
+ function start() {
288
+ $slideshow
289
+ .html(settings.get('slideshowStop'))
290
+ .unbind(click)
291
+ .one(click, stop);
292
+
293
+ $events
294
+ .bind(event_complete, set)
295
+ .bind(event_load, clear);
296
+
297
+ $box.removeClass(className + "off").addClass(className + "on");
298
+ }
299
+
300
+ function stop() {
301
+ clear();
302
+
303
+ $events
304
+ .unbind(event_complete, set)
305
+ .unbind(event_load, clear);
306
+
307
+ $slideshow
308
+ .html(settings.get('slideshowStart'))
309
+ .unbind(click)
310
+ .one(click, function () {
311
+ publicMethod.next();
312
+ start();
313
+ });
314
+
315
+ $box.removeClass(className + "on").addClass(className + "off");
316
+ }
317
+
318
+ function reset() {
319
+ active = false;
320
+ $slideshow.hide();
321
+ clear();
322
+ $events
323
+ .unbind(event_complete, set)
324
+ .unbind(event_load, clear);
325
+ $box.removeClass(className + "off " + className + "on");
326
+ }
327
+
328
+ return function(){
329
+ if (active) {
330
+ if (!settings.get('slideshow')) {
331
+ $events.unbind(event_cleanup, reset);
332
+ reset();
333
+ }
334
+ } else {
335
+ if (settings.get('slideshow') && $related[1]) {
336
+ active = true;
337
+ $events.one(event_cleanup, reset);
338
+ if (settings.get('slideshowAuto')) {
339
+ start();
340
+ } else {
341
+ stop();
342
+ }
343
+ $slideshow.show();
344
+ }
345
+ }
346
+ };
347
+
348
+ }());
349
+
350
+
351
+ function launch(element) {
352
+ var options;
353
+
354
+ if (!closing) {
355
+
356
+ options = $(element).data('colorbox');
357
+
358
+ settings = new Settings(element, options);
359
+
360
+ rel = settings.get('rel');
361
+
362
+ getRelated();
363
+
364
+ if (!open) {
365
+ open = active = true; // Prevents the page-change action from queuing up if the visitor holds down the left or right keys.
366
+
367
+ setClass(settings.get('className'));
368
+
369
+ // Show colorbox so the sizes can be calculated in older versions of jQuery
370
+ $box.css({visibility:'hidden', display:'block'});
371
+
372
+ $loaded = $tag(div, 'LoadedContent', 'width:0; height:0; overflow:hidden; visibility:hidden');
373
+ $content.css({width:'', height:''}).append($loaded);
374
+
375
+ // Cache values needed for size calculations
376
+ interfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height();
377
+ interfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width();
378
+ loadedHeight = $loaded.outerHeight(true);
379
+ loadedWidth = $loaded.outerWidth(true);
380
+
381
+ // Opens inital empty Colorbox prior to content being loaded.
382
+ settings.w = setSize(settings.get('initialWidth'), 'x');
383
+ settings.h = setSize(settings.get('initialHeight'), 'y');
384
+ $loaded.css({width:'', height:settings.h});
385
+ publicMethod.position();
386
+
387
+ trigger(event_open);
388
+ settings.get('onOpen');
389
+
390
+ $groupControls.add($title).hide();
391
+
392
+ $box.focus();
393
+
394
+ if (settings.get('trapFocus')) {
395
+ // Confine focus to the modal
396
+ // Uses event capturing that is not supported in IE8-
397
+ if (document.addEventListener) {
398
+
399
+ document.addEventListener('focus', trapFocus, true);
400
+
401
+ $events.one(event_closed, function () {
402
+ document.removeEventListener('focus', trapFocus, true);
403
+ });
404
+ }
405
+ }
406
+
407
+ // Return focus on closing
408
+ if (settings.get('returnFocus')) {
409
+ $events.one(event_closed, function () {
410
+ $(settings.el).focus();
411
+ });
412
+ }
413
+ }
414
+
415
+ $overlay.css({
416
+ opacity: parseFloat(settings.get('opacity')),
417
+ cursor: settings.get('overlayClose') ? "pointer" : "auto",
418
+ visibility: 'visible'
419
+ }).show();
420
+
421
+ if (settings.get('closeButton')) {
422
+ $close.html(settings.get('close')).appendTo($content);
423
+ } else {
424
+ $close.appendTo('<div/>'); // replace with .detach() when dropping jQuery < 1.4
425
+ }
426
+
427
+ load();
428
+ }
429
+ }
430
+
431
+ // Colorbox's markup needs to be added to the DOM prior to being called
432
+ // so that the browser will go ahead and load the CSS background images.
433
+ function appendHTML() {
434
+ if (!$box && document.body) {
435
+ init = false;
436
+ $window = $(window);
437
+ $box = $tag(div).attr({
438
+ id: colorbox,
439
+ 'class': $.support.opacity === false ? prefix + 'IE' : '', // class for optional IE8 & lower targeted CSS.
440
+ role: 'dialog',
441
+ tabindex: '-1'
442
+ }).hide();
443
+ $overlay = $tag(div, "Overlay").hide();
444
+ $loadingOverlay = $([$tag(div, "LoadingOverlay")[0],$tag(div, "LoadingGraphic")[0]]);
445
+ $wrap = $tag(div, "Wrapper");
446
+ $content = $tag(div, "Content").append(
447
+ $title = $tag(div, "Title"),
448
+ $current = $tag(div, "Current"),
449
+ $prev = $('<button type="button"/>').attr({id:prefix+'Previous'}),
450
+ $next = $('<button type="button"/>').attr({id:prefix+'Next'}),
451
+ $slideshow = $tag('button', "Slideshow"),
452
+ $loadingOverlay
453
+ );
454
+
455
+ $close = $('<button type="button"/>').attr({id:prefix+'Close'});
456
+
457
+ $wrap.append( // The 3x3 Grid that makes up Colorbox
458
+ $tag(div).append(
459
+ $tag(div, "TopLeft"),
460
+ $topBorder = $tag(div, "TopCenter"),
461
+ $tag(div, "TopRight")
462
+ ),
463
+ $tag(div, false, 'clear:left').append(
464
+ $leftBorder = $tag(div, "MiddleLeft"),
465
+ $content,
466
+ $rightBorder = $tag(div, "MiddleRight")
467
+ ),
468
+ $tag(div, false, 'clear:left').append(
469
+ $tag(div, "BottomLeft"),
470
+ $bottomBorder = $tag(div, "BottomCenter"),
471
+ $tag(div, "BottomRight")
472
+ )
473
+ ).find('div div').css({'float': 'left'});
474
+
475
+ $loadingBay = $tag(div, false, 'position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;');
476
+
477
+ $groupControls = $next.add($prev).add($current).add($slideshow);
478
+
479
+ $(document.body).append($overlay, $box.append($wrap, $loadingBay));
480
+ }
481
+ }
482
+
483
+ // Add Colorbox's event bindings
484
+ function addBindings() {
485
+ function clickHandler(e) {
486
+ // ignore non-left-mouse-clicks and clicks modified with ctrl / command, shift, or alt.
487
+ // See: http://jacklmoore.com/notes/click-events/
488
+ if (!(e.which > 1 || e.shiftKey || e.altKey || e.metaKey || e.ctrlKey)) {
489
+ e.preventDefault();
490
+ launch(this);
491
+ }
492
+ }
493
+
494
+ if ($box) {
495
+ if (!init) {
496
+ init = true;
497
+
498
+ // Anonymous functions here keep the public method from being cached, thereby allowing them to be redefined on the fly.
499
+ $next.click(function () {
500
+ publicMethod.next();
501
+ });
502
+ $prev.click(function () {
503
+ publicMethod.prev();
504
+ });
505
+ $close.click(function () {
506
+ publicMethod.close();
507
+ });
508
+ $overlay.click(function () {
509
+ if (settings.get('overlayClose')) {
510
+ publicMethod.close();
511
+ }
512
+ });
513
+
514
+ // Key Bindings
515
+ $(document).bind('keydown.' + prefix, function (e) {
516
+ var key = e.keyCode;
517
+ if (open && settings.get('escKey') && key === 27) {
518
+ e.preventDefault();
519
+ publicMethod.close();
520
+ }
521
+ if (open && settings.get('arrowKey') && $related[1] && !e.altKey) {
522
+ if (key === 37) {
523
+ e.preventDefault();
524
+ $prev.click();
525
+ } else if (key === 39) {
526
+ e.preventDefault();
527
+ $next.click();
528
+ }
529
+ }
530
+ });
531
+
532
+ if ($.isFunction($.fn.on)) {
533
+ // For jQuery 1.7+
534
+ $(document).on('click.'+prefix, '.'+boxElement, clickHandler);
535
+ } else {
536
+ // For jQuery 1.3.x -> 1.6.x
537
+ // This code is never reached in jQuery 1.9, so do not contact me about 'live' being removed.
538
+ // This is not here for jQuery 1.9, it's here for legacy users.
539
+ $('.'+boxElement).live('click.'+prefix, clickHandler);
540
+ }
541
+ }
542
+ return true;
543
+ }
544
+ return false;
545
+ }
546
+
547
+ // Don't do anything if Colorbox already exists.
548
+ if ($.colorbox) {
549
+ return;
550
+ }
551
+
552
+ // Append the HTML when the DOM loads
553
+ $(appendHTML);
554
+
555
+
556
+ // ****************
557
+ // PUBLIC FUNCTIONS
558
+ // Usage format: $.colorbox.close();
559
+ // Usage from within an iframe: parent.jQuery.colorbox.close();
560
+ // ****************
561
+
562
+ publicMethod = $.fn[colorbox] = $[colorbox] = function (options, callback) {
563
+ var settings;
564
+ var $obj = this;
565
+
566
+ options = options || {};
567
+
568
+ if ($.isFunction($obj)) { // assume a call to $.colorbox
569
+ $obj = $('<a/>');
570
+ options.open = true;
571
+ } else if (!$obj[0]) { // colorbox being applied to empty collection
572
+ return $obj;
573
+ }
574
+
575
+
576
+ if (!$obj[0]) { // colorbox being applied to empty collection
577
+ return $obj;
578
+ }
579
+
580
+ appendHTML();
581
+
582
+ if (addBindings()) {
583
+
584
+ if (callback) {
585
+ options.onComplete = callback;
586
+ }
587
+
588
+ $obj.each(function () {
589
+ var old = $.data(this, colorbox) || {};
590
+ $.data(this, colorbox, $.extend(old, options));
591
+ }).addClass(boxElement);
592
+
593
+ settings = new Settings($obj[0], options);
594
+
595
+ if (settings.get('open')) {
596
+ launch($obj[0]);
597
+ }
598
+ }
599
+
600
+ return $obj;
601
+ };
602
+
603
+ publicMethod.position = function (speed, loadedCallback) {
604
+ var
605
+ css,
606
+ top = 0,
607
+ left = 0,
608
+ offset = $box.offset(),
609
+ scrollTop,
610
+ scrollLeft;
611
+
612
+ $window.unbind('resize.' + prefix);
613
+
614
+ // remove the modal so that it doesn't influence the document width/height
615
+ $box.css({top: -9e4, left: -9e4});
616
+
617
+ scrollTop = $window.scrollTop();
618
+ scrollLeft = $window.scrollLeft();
619
+
620
+ if (settings.get('fixed')) {
621
+ offset.top -= scrollTop;
622
+ offset.left -= scrollLeft;
623
+ $box.css({position: 'fixed'});
624
+ } else {
625
+ top = scrollTop;
626
+ left = scrollLeft;
627
+ $box.css({position: 'absolute'});
628
+ }
629
+
630
+ // keeps the top and left positions within the browser's viewport.
631
+ if (settings.get('right') !== false) {
632
+ left += Math.max($window.width() - settings.w - loadedWidth - interfaceWidth - setSize(settings.get('right'), 'x'), 0);
633
+ } else if (settings.get('left') !== false) {
634
+ left += setSize(settings.get('left'), 'x');
635
+ } else {
636
+ left += Math.round(Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0) / 2);
637
+ }
638
+
639
+ if (settings.get('bottom') !== false) {
640
+ top += Math.max(winheight() - settings.h - loadedHeight - interfaceHeight - setSize(settings.get('bottom'), 'y'), 0);
641
+ } else if (settings.get('top') !== false) {
642
+ top += setSize(settings.get('top'), 'y');
643
+ } else {
644
+ top += Math.round(Math.max(winheight() - settings.h - loadedHeight - interfaceHeight, 0) / 2);
645
+ }
646
+
647
+ $box.css({top: offset.top, left: offset.left, visibility:'visible'});
648
+
649
+ // this gives the wrapper plenty of breathing room so it's floated contents can move around smoothly,
650
+ // but it has to be shrank down around the size of div#colorbox when it's done. If not,
651
+ // it can invoke an obscure IE bug when using iframes.
652
+ $wrap[0].style.width = $wrap[0].style.height = "9999px";
653
+
654
+ function modalDimensions() {
655
+ $topBorder[0].style.width = $bottomBorder[0].style.width = $content[0].style.width = (parseInt($box[0].style.width,10) - interfaceWidth)+'px';
656
+ $content[0].style.height = $leftBorder[0].style.height = $rightBorder[0].style.height = (parseInt($box[0].style.height,10) - interfaceHeight)+'px';
657
+ }
658
+
659
+ css = {width: settings.w + loadedWidth + interfaceWidth, height: settings.h + loadedHeight + interfaceHeight, top: top, left: left};
660
+
661
+ // setting the speed to 0 if the content hasn't changed size or position
662
+ if (speed) {
663
+ var tempSpeed = 0;
664
+ $.each(css, function(i){
665
+ if (css[i] !== previousCSS[i]) {
666
+ tempSpeed = speed;
667
+ return;
668
+ }
669
+ });
670
+ speed = tempSpeed;
671
+ }
672
+
673
+ previousCSS = css;
674
+
675
+ if (!speed) {
676
+ $box.css(css);
677
+ }
678
+
679
+ $box.dequeue().animate(css, {
680
+ duration: speed || 0,
681
+ complete: function () {
682
+ modalDimensions();
683
+
684
+ active = false;
685
+
686
+ // shrink the wrapper down to exactly the size of colorbox to avoid a bug in IE's iframe implementation.
687
+ $wrap[0].style.width = (settings.w + loadedWidth + interfaceWidth) + "px";
688
+ $wrap[0].style.height = (settings.h + loadedHeight + interfaceHeight) + "px";
689
+
690
+ if (settings.get('reposition')) {
691
+ setTimeout(function () { // small delay before binding onresize due to an IE8 bug.
692
+ $window.bind('resize.' + prefix, publicMethod.position);
693
+ }, 1);
694
+ }
695
+
696
+ if (loadedCallback) {
697
+ loadedCallback();
698
+ }
699
+ },
700
+ step: modalDimensions
701
+ });
702
+ };
703
+
704
+ publicMethod.resize = function (options) {
705
+ var scrolltop;
706
+
707
+ if (open) {
708
+ options = options || {};
709
+
710
+ if (options.width) {
711
+ settings.w = setSize(options.width, 'x') - loadedWidth - interfaceWidth;
712
+ }
713
+
714
+ if (options.innerWidth) {
715
+ settings.w = setSize(options.innerWidth, 'x');
716
+ }
717
+
718
+ $loaded.css({width: settings.w});
719
+
720
+ if (options.height) {
721
+ settings.h = setSize(options.height, 'y') - loadedHeight - interfaceHeight;
722
+ }
723
+
724
+ if (options.innerHeight) {
725
+ settings.h = setSize(options.innerHeight, 'y');
726
+ }
727
+
728
+ if (!options.innerHeight && !options.height) {
729
+ scrolltop = $loaded.scrollTop();
730
+ $loaded.css({height: "auto"});
731
+ settings.h = $loaded.height();
732
+ }
733
+
734
+ $loaded.css({height: settings.h});
735
+
736
+ if(scrolltop) {
737
+ $loaded.scrollTop(scrolltop);
738
+ }
739
+
740
+ publicMethod.position(settings.get('transition') === "none" ? 0 : settings.get('speed'));
741
+ }
742
+ };
743
+
744
+ publicMethod.prep = function (object) {
745
+ if (!open) {
746
+ return;
747
+ }
748
+
749
+ var callback, speed = settings.get('transition') === "none" ? 0 : settings.get('speed');
750
+
751
+ $loaded.remove();
752
+
753
+ $loaded = $tag(div, 'LoadedContent').append(object);
754
+
755
+ function getWidth() {
756
+ settings.w = settings.w || $loaded.width();
757
+ settings.w = settings.mw && settings.mw < settings.w ? settings.mw : settings.w;
758
+ return settings.w;
759
+ }
760
+ function getHeight() {
761
+ settings.h = settings.h || $loaded.height();
762
+ settings.h = settings.mh && settings.mh < settings.h ? settings.mh : settings.h;
763
+ return settings.h;
764
+ }
765
+
766
+ $loaded.hide()
767
+ .appendTo($loadingBay.show())// content has to be appended to the DOM for accurate size calculations.
768
+ .css({width: getWidth(), overflow: settings.get('scrolling') ? 'auto' : 'hidden'})
769
+ .css({height: getHeight()})// sets the height independently from the width in case the new width influences the value of height.
770
+ .prependTo($content);
771
+
772
+ $loadingBay.hide();
773
+
774
+ // floating the IMG removes the bottom line-height and fixed a problem where IE miscalculates the width of the parent element as 100% of the document width.
775
+
776
+ $(photo).css({'float': 'none'});
777
+
778
+ setClass(settings.get('className'));
779
+
780
+ callback = function () {
781
+ var total = $related.length,
782
+ iframe,
783
+ complete;
784
+
785
+ if (!open) {
786
+ return;
787
+ }
788
+
789
+ function removeFilter() { // Needed for IE8 in versions of jQuery prior to 1.7.2
790
+ if ($.support.opacity === false) {
791
+ $box[0].style.removeAttribute('filter');
792
+ }
793
+ }
794
+
795
+ complete = function () {
796
+ clearTimeout(loadingTimer);
797
+ $loadingOverlay.hide();
798
+ trigger(event_complete);
799
+ settings.get('onComplete');
800
+ };
801
+
802
+
803
+ $title.html(settings.get('title')).show();
804
+ $loaded.show();
805
+
806
+ if (total > 1) { // handle grouping
807
+ if (typeof settings.get('current') === "string") {
808
+ $current.html(settings.get('current').replace('{current}', index + 1).replace('{total}', total)).show();
809
+ }
810
+
811
+ $next[(settings.get('loop') || index < total - 1) ? "show" : "hide"]().html(settings.get('next'));
812
+ $prev[(settings.get('loop') || index) ? "show" : "hide"]().html(settings.get('previous'));
813
+
814
+ slideshow();
815
+
816
+ // Preloads images within a rel group
817
+ if (settings.get('preloading')) {
818
+ $.each([getIndex(-1), getIndex(1)], function(){
819
+ var img,
820
+ i = $related[this],
821
+ settings = new Settings(i, $.data(i, colorbox)),
822
+ src = settings.get('href');
823
+
824
+ if (src && isImage(settings, src)) {
825
+ src = retinaUrl(settings, src);
826
+ img = document.createElement('img');
827
+ img.src = src;
828
+ }
829
+ });
830
+ }
831
+ } else {
832
+ $groupControls.hide();
833
+ }
834
+
835
+ if (settings.get('iframe')) {
836
+ iframe = document.createElement('iframe');
837
+
838
+ if ('frameBorder' in iframe) {
839
+ iframe.frameBorder = 0;
840
+ }
841
+
842
+ if ('allowTransparency' in iframe) {
843
+ iframe.allowTransparency = "true";
844
+ }
845
+
846
+ if (!settings.get('scrolling')) {
847
+ iframe.scrolling = "no";
848
+ }
849
+
850
+ $(iframe)
851
+ .attr({
852
+ src: settings.get('href'),
853
+ name: (new Date()).getTime(), // give the iframe a unique name to prevent caching
854
+ 'class': prefix + 'Iframe',
855
+ allowFullScreen : true // allow HTML5 video to go fullscreen
856
+ })
857
+ .one('load', complete)
858
+ .appendTo($loaded);
859
+
860
+ $events.one(event_purge, function () {
861
+ iframe.src = "//about:blank";
862
+ });
863
+
864
+ if (settings.get('fastIframe')) {
865
+ $(iframe).trigger('load');
866
+ }
867
+ } else {
868
+ complete();
869
+ }
870
+
871
+ if (settings.get('transition') === 'fade') {
872
+ $box.fadeTo(speed, 1, removeFilter);
873
+ } else {
874
+ removeFilter();
875
+ }
876
+ };
877
+
878
+ if (settings.get('transition') === 'fade') {
879
+ $box.fadeTo(speed, 0, function () {
880
+ publicMethod.position(0, callback);
881
+ });
882
+ } else {
883
+ publicMethod.position(speed, callback);
884
+ }
885
+ };
886
+
887
+ function load () {
888
+ var href, setResize, prep = publicMethod.prep, $inline, request = ++requests;
889
+
890
+ active = true;
891
+
892
+ photo = false;
893
+
894
+ trigger(event_purge);
895
+ trigger(event_load);
896
+ settings.get('onLoad');
897
+
898
+ settings.h = settings.get('height') ?
899
+ setSize(settings.get('height'), 'y') - loadedHeight - interfaceHeight :
900
+ settings.get('innerHeight') && setSize(settings.get('innerHeight'), 'y');
901
+
902
+ settings.w = settings.get('width') ?
903
+ setSize(settings.get('width'), 'x') - loadedWidth - interfaceWidth :
904
+ settings.get('innerWidth') && setSize(settings.get('innerWidth'), 'x');
905
+
906
+ // Sets the minimum dimensions for use in image scaling
907
+ settings.mw = settings.w;
908
+ settings.mh = settings.h;
909
+
910
+ // Re-evaluate the minimum width and height based on maxWidth and maxHeight values.
911
+ // If the width or height exceed the maxWidth or maxHeight, use the maximum values instead.
912
+ if (settings.get('maxWidth')) {
913
+ settings.mw = setSize(settings.get('maxWidth'), 'x') - loadedWidth - interfaceWidth;
914
+ settings.mw = settings.w && settings.w < settings.mw ? settings.w : settings.mw;
915
+ }
916
+ if (settings.get('maxHeight')) {
917
+ settings.mh = setSize(settings.get('maxHeight'), 'y') - loadedHeight - interfaceHeight;
918
+ settings.mh = settings.h && settings.h < settings.mh ? settings.h : settings.mh;
919
+ }
920
+
921
+ href = settings.get('href');
922
+
923
+ loadingTimer = setTimeout(function () {
924
+ $loadingOverlay.show();
925
+ }, 100);
926
+
927
+ if (settings.get('inline')) {
928
+ // Inserts an empty placeholder where inline content is being pulled from.
929
+ // An event is bound to put inline content back when Colorbox closes or loads new content.
930
+ $inline = $tag(div).hide().insertBefore($(href)[0]);
931
+
932
+ $events.one(event_purge, function () {
933
+ $inline.replaceWith($loaded.children());
934
+ });
935
+
936
+ prep($(href));
937
+ } else if (settings.get('iframe')) {
938
+ // IFrame element won't be added to the DOM until it is ready to be displayed,
939
+ // to avoid problems with DOM-ready JS that might be trying to run in that iframe.
940
+ prep(" ");
941
+ } else if (settings.get('html')) {
942
+ prep(settings.get('html'));
943
+ } else if (isImage(settings, href)) {
944
+
945
+ href = retinaUrl(settings, href);
946
+
947
+ photo = document.createElement('img');
948
+
949
+ $(photo)
950
+ .addClass(prefix + 'Photo')
951
+ .bind('error',function () {
952
+ prep($tag(div, 'Error').html(settings.get('imgError')));
953
+ })
954
+ .one('load', function () {
955
+ var percent;
956
+
957
+ if (request !== requests) {
958
+ return;
959
+ }
960
+
961
+ $.each(['alt', 'longdesc', 'aria-describedby'], function(i,val){
962
+ var attr = $(settings.el).attr(val) || $(settings.el).attr('data-'+val);
963
+ if (attr) {
964
+ photo.setAttribute(val, attr);
965
+ }
966
+ });
967
+
968
+ if (settings.get('retinaImage') && window.devicePixelRatio > 1) {
969
+ photo.height = photo.height / window.devicePixelRatio;
970
+ photo.width = photo.width / window.devicePixelRatio;
971
+ }
972
+
973
+ if (settings.get('scalePhotos')) {
974
+ setResize = function () {
975
+ photo.height -= photo.height * percent;
976
+ photo.width -= photo.width * percent;
977
+ };
978
+ if (settings.mw && photo.width > settings.mw) {
979
+ percent = (photo.width - settings.mw) / photo.width;
980
+ setResize();
981
+ }
982
+ if (settings.mh && photo.height > settings.mh) {
983
+ percent = (photo.height - settings.mh) / photo.height;
984
+ setResize();
985
+ }
986
+ }
987
+
988
+ if (settings.h) {
989
+ photo.style.marginTop = Math.max(settings.mh - photo.height, 0) / 2 + 'px';
990
+ }
991
+
992
+ if ($related[1] && (settings.get('loop') || $related[index + 1])) {
993
+ photo.style.cursor = 'pointer';
994
+ photo.onclick = function () {
995
+ publicMethod.next();
996
+ };
997
+ }
998
+
999
+ photo.style.width = photo.width + 'px';
1000
+ photo.style.height = photo.height + 'px';
1001
+
1002
+ setTimeout(function () { // A pause because Chrome will sometimes report a 0 by 0 size otherwise.
1003
+ prep(photo);
1004
+ }, 1);
1005
+ });
1006
+
1007
+ setTimeout(function () { // A pause because Opera 10.6+ will sometimes not run the onload function otherwise.
1008
+ photo.src = href;
1009
+ }, 1);
1010
+ } else if (href) {
1011
+ $loadingBay.load(href, settings.get('data'), function (data, status) {
1012
+ if (request === requests) {
1013
+ prep(status === 'error' ? $tag(div, 'Error').html(settings.get('xhrError')) : $(this).contents());
1014
+ }
1015
+ });
1016
+ }
1017
+ }
1018
+
1019
+ // Navigates to the next page/image in a set.
1020
+ publicMethod.next = function () {
1021
+ if (!active && $related[1] && (settings.get('loop') || $related[index + 1])) {
1022
+ index = getIndex(1);
1023
+ launch($related[index]);
1024
+ }
1025
+ };
1026
+
1027
+ publicMethod.prev = function () {
1028
+ if (!active && $related[1] && (settings.get('loop') || index)) {
1029
+ index = getIndex(-1);
1030
+ launch($related[index]);
1031
+ }
1032
+ };
1033
+
1034
+ // Note: to use this within an iframe use the following format: parent.jQuery.colorbox.close();
1035
+ publicMethod.close = function () {
1036
+ if (open && !closing) {
1037
+
1038
+ closing = true;
1039
+
1040
+ open = false;
1041
+
1042
+ trigger(event_cleanup);
1043
+ settings.get('onCleanup');
1044
+
1045
+ $window.unbind('.' + prefix);
1046
+
1047
+ $overlay.fadeTo(settings.get('fadeOut') || 0, 0);
1048
+
1049
+ $box.stop().fadeTo(settings.get('fadeOut') || 0, 0, function () {
1050
+
1051
+ $box.add($overlay).css({'opacity': 1, cursor: 'auto'}).hide();
1052
+
1053
+ trigger(event_purge);
1054
+
1055
+ $loaded.remove();
1056
+
1057
+ setTimeout(function () {
1058
+ closing = false;
1059
+ trigger(event_closed);
1060
+ settings.get('onClosed');
1061
+ }, 1);
1062
+ });
1063
+ }
1064
+ };
1065
+
1066
+ // Removes changes Colorbox made to the document, but does not remove the plugin.
1067
+ publicMethod.remove = function () {
1068
+ if (!$box) { return; }
1069
+
1070
+ $box.stop();
1071
+ $.colorbox.close();
1072
+ $box.stop().remove();
1073
+ $overlay.remove();
1074
+ closing = false;
1075
+ $box = null;
1076
+ $('.' + boxElement)
1077
+ .removeData(colorbox)
1078
+ .removeClass(boxElement);
1079
+
1080
+ $(document).unbind('click.'+prefix);
1081
+ };
1082
+
1083
+ // A method for fetching the current element Colorbox is referencing.
1084
+ // returns a jQuery object.
1085
+ publicMethod.element = function () {
1086
+ return $(settings.el);
1087
+ };
1088
+
1089
+ publicMethod.settings = defaults;
1090
+
1091
+ }(jQuery, document, window));
package.xml ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package><name>Chapagain_FacebookLikeBoxPopup</name><version>0.1.0</version><stability>stable</stability><license>OSL v3.0</license><channel>community</channel><extends></extends><summary>This extension allows Facebook Like Box to popup on page load and also display the like box on left and right sidebar.</summary><description>This extension allows Facebook Like Box to popup on page load and also display the like box on left and right sidebar. You can show your Facebook Page on the popup and sidebar.
3
+
4
+ You can manage the display of the Like Box from System -&gt; Configuration -&gt; CHAPAGAIN EXTENSIONS -&gt; Facebook Like Box Popup.
5
+
6
+ Facebook Page URL, Page Name, Popup width and height, etc. can be adjusted from configuration settings. You can enable/disable Facebook Like Box on Popup. You can also enable/disable Facebook Like Box on left and right sidebar.
7
+
8
+ Features:-
9
+
10
+ Easy to install and use
11
+ 100% Free
12
+ 100% Open Source</description><notes>Initial Release</notes><authors><author><name>Mukesh Chapagain</name><user>chapagain</user><email>mukesh.chapagain@gmail.com</email></author></authors><date>2015-11-02</date><time>21:45:38</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="app"><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="chapagain"><file name="facebooklikeboxpopup.xml" hash="eabb115fdb2efd0c11aa727cd2aa6d6e"/></dir></dir><dir name="template"><dir name="chapagain"><dir name="facebooklikeboxpopup"><file name="popup.phtml" hash="56bacbcaec2a0f3ecaba17374891d1b0"/><file name="sidebar.phtml" hash="2dee91f03586111d5f04c6586513aeb7"/></dir></dir></dir></dir></dir></dir></dir><dir name="code"><dir name="community"><dir name="Chapagain"><dir name="FacebookLikeBoxPopup"><dir name="etc"><file name="adminhtml.xml" hash="ae7f763cbbeafadd10be7d574d3393a9"/><file name="config.xml" hash="e77af19ed88b00b68931678ebb7657de"/><file name="system.xml" hash="8f498ee9a8d9a1478ec4d9bb3b13f832"/></dir><dir name="Helper"><file name="Data.php" hash="035f7dcc2e75b55fa91ecdfd6efa5d97"/></dir><dir name="Block"><file name="Popup.php" hash="5f307df21cc2d2bb23cef7f6beccbd04"/><dir name="System"><dir name="Config"><file name="Info.php" hash="400b448fad870dc63471c3fca9e01e20"/></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Chapagain_FacebookLikeBoxPopup.xml" hash="76d7e807ab1cf32f96994b65d673e1c9"/></dir></dir></dir><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="chapagain"><dir name="facebooklikeboxpopup"><file name="colorbox.css" hash="6f8a5e04e7a4d6f288eda7e6f647eee5"/></dir></dir></dir><dir name="images"><dir name="chapagain"><dir name="facebooklikeboxpopup"><file name="border.png" hash="b593eef877678cd14706323d199e047d"/><file name="controls.png" hash="05ad6ec2cbc17a7f3d1b1aac6dbe770d"/><file name="loading.gif" hash="f1d7268ba36b264f8b33b5b2bf0f108c"/><file name="loading_background.png" hash="7649e6a7c32b6d29ce63255a30b7405a"/><file name="overlay.png" hash="8918e1f6fbaae9e65880f3eff6fa3713"/></dir></dir></dir><dir name="js"><dir name="chapagain"><dir name="facebooklikeboxpopup"><file name="jquery-1.10.2.min.js" hash="841dc30647f93349b7d8ef61deebe411"/><file name="jquery-noconflict.js" hash="b456d7aded3c635b1a3cd3511756e18d"/><file name="jquery.colorbox.js" hash="5ac35604c7c0414ae45285fa1f58ec4e"/></dir></dir></dir></dir></dir></dir></dir><dir name="js"><dir name="colorbox"><file name="jquery.colorbox.js" hash="5ac35604c7c0414ae45285fa1f58ec4e"/></dir></dir></target></contents></package>
skin/frontend/base/default/css/chapagain/facebooklikeboxpopup/colorbox.css ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Colorbox Core Style:
3
+ The following CSS is consistent between example themes and should not be altered.
4
+ */
5
+ #colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
6
+ #cboxWrapper {max-width:none;}
7
+ #cboxOverlay{position:fixed; width:100%; height:100%;}
8
+ #cboxMiddleLeft, #cboxBottomLeft{clear:left;}
9
+ #cboxContent{position:relative;}
10
+ #cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
11
+ #cboxTitle{margin:0;}
12
+ #cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
13
+ #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
14
+ .cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
15
+ .cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}
16
+ #colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
17
+
18
+ /*
19
+ User Style:
20
+ Change the following styles to modify the appearance of Colorbox. They are
21
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
22
+ */
23
+ #cboxOverlay{background:url(../../../images/chapagain/facebooklikeboxpopup/overlay.png) repeat 0 0; opacity: 0.9; filter: alpha(opacity = 90);}
24
+ #colorbox{outline:0;}
25
+ #cboxTopLeft{width:21px; height:21px; background:url(../../../images/chapagain/facebooklikeboxpopup/controls.png) no-repeat -101px 0;}
26
+ #cboxTopRight{width:21px; height:21px; background:url(../../../images/chapagain/facebooklikeboxpopup/controls.png) no-repeat -130px 0;}
27
+ #cboxBottomLeft{width:21px; height:21px; background:url(../../../images/chapagain/facebooklikeboxpopup/controls.png) no-repeat -101px -29px;}
28
+ #cboxBottomRight{width:21px; height:21px; background:url(../../../images/chapagain/facebooklikeboxpopup/controls.png) no-repeat -130px -29px;}
29
+ #cboxMiddleLeft{width:21px; background:url(../../../images/chapagain/facebooklikeboxpopup/controls.png) left top repeat-y;}
30
+ #cboxMiddleRight{width:21px; background:url(../../../images/chapagain/facebooklikeboxpopup/controls.png) right top repeat-y;}
31
+ #cboxTopCenter{height:21px; background:url(../../../images/chapagain/facebooklikeboxpopup/border.png) 0 0 repeat-x;}
32
+ #cboxBottomCenter{height:21px; background:url(../../../images/chapagain/facebooklikeboxpopup/border.png) 0 -29px repeat-x;}
33
+ #cboxContent{background:#fff; overflow:hidden;}
34
+ .cboxIframe{background:#fff;}
35
+ #cboxError{padding:50px; border:1px solid #ccc;}
36
+ #cboxLoadedContent{margin-bottom:28px;}
37
+ #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
38
+ #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
39
+ #cboxLoadingOverlay{background:url(../../../images/chapagain/facebooklikeboxpopup/loading_background.png) no-repeat center center;}
40
+ #cboxLoadingGraphic{background:url(../../../images/chapagain/facebooklikeboxpopup/loading.gif) no-repeat center center;}
41
+
42
+ /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
43
+ #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
44
+
45
+ /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
46
+ #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
47
+
48
+ #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
49
+ #cboxPrevious{position:absolute; bottom:0; left:0; background:url(../../../images/chapagain/facebooklikeboxpopup/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
50
+ #cboxPrevious:hover{background-position:-75px -25px;}
51
+ #cboxNext{position:absolute; bottom:0; left:27px; background:url(../../../images/chapagain/facebooklikeboxpopup/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
52
+ #cboxNext:hover{background-position:-50px -25px;}
53
+ #cboxClose{position:absolute; bottom:0; right:0; background:url(../../../images/chapagain/facebooklikeboxpopup/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
54
+ #cboxClose:hover{background-position:-25px -25px;}
55
+
56
+ /*
57
+ The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
58
+ when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
59
+ See: http://jacklmoore.com/notes/ie-transparency-problems/
60
+ */
61
+ .cboxIE #cboxTopLeft,
62
+ .cboxIE #cboxTopCenter,
63
+ .cboxIE #cboxTopRight,
64
+ .cboxIE #cboxBottomLeft,
65
+ .cboxIE #cboxBottomCenter,
66
+ .cboxIE #cboxBottomRight,
67
+ .cboxIE #cboxMiddleLeft,
68
+ .cboxIE #cboxMiddleRight {
69
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
70
+ }
skin/frontend/base/default/images/chapagain/facebooklikeboxpopup/border.png ADDED
Binary file
skin/frontend/base/default/images/chapagain/facebooklikeboxpopup/controls.png ADDED
Binary file
skin/frontend/base/default/images/chapagain/facebooklikeboxpopup/loading.gif ADDED
Binary file
skin/frontend/base/default/images/chapagain/facebooklikeboxpopup/loading_background.png ADDED
Binary file
skin/frontend/base/default/images/chapagain/facebooklikeboxpopup/overlay.png ADDED
Binary file
skin/frontend/base/default/js/chapagain/facebooklikeboxpopup/jquery-1.10.2.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
2
+ //@ sourceMappingURL=jquery-1.10.2.min.map
3
+ */
4
+ (function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
5
+ }({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
6
+ u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.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(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
skin/frontend/base/default/js/chapagain/facebooklikeboxpopup/jquery-noconflict.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ // Avoid PrototypeJS conflicts, assign jQuery to $j instead of $
2
+ //var $j = jQuery.noConflict();
3
+
4
+ jQuery.noConflict();
skin/frontend/base/default/js/chapagain/facebooklikeboxpopup/jquery.colorbox.js ADDED
@@ -0,0 +1,1091 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ Colorbox v1.5.4 - 2014-03-07
3
+ jQuery lightbox and modal window plugin
4
+ (c) 2014 Jack Moore - http://www.jacklmoore.com/colorbox
5
+ license: http://www.opensource.org/licenses/mit-license.php
6
+ */
7
+ (function ($, document, window) {
8
+ var
9
+ // Default settings object.
10
+ // See http://jacklmoore.com/colorbox for details.
11
+ defaults = {
12
+ // data sources
13
+ html: false,
14
+ photo: false,
15
+ iframe: false,
16
+ inline: false,
17
+
18
+ // behavior and appearance
19
+ transition: "elastic",
20
+ speed: 300,
21
+ fadeOut: 300,
22
+ width: false,
23
+ initialWidth: "600",
24
+ innerWidth: false,
25
+ maxWidth: false,
26
+ height: false,
27
+ initialHeight: "450",
28
+ innerHeight: false,
29
+ maxHeight: false,
30
+ scalePhotos: true,
31
+ scrolling: true,
32
+ opacity: 0.9,
33
+ preloading: true,
34
+ className: false,
35
+ overlayClose: true,
36
+ escKey: true,
37
+ arrowKey: true,
38
+ top: false,
39
+ bottom: false,
40
+ left: false,
41
+ right: false,
42
+ fixed: false,
43
+ data: undefined,
44
+ closeButton: true,
45
+ fastIframe: true,
46
+ open: false,
47
+ reposition: true,
48
+ loop: true,
49
+ slideshow: false,
50
+ slideshowAuto: true,
51
+ slideshowSpeed: 2500,
52
+ slideshowStart: "start slideshow",
53
+ slideshowStop: "stop slideshow",
54
+ photoRegex: /\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,
55
+
56
+ // alternate image paths for high-res displays
57
+ retinaImage: false,
58
+ retinaUrl: false,
59
+ retinaSuffix: '@2x.$1',
60
+
61
+ // internationalization
62
+ current: "image {current} of {total}",
63
+ previous: "previous",
64
+ next: "next",
65
+ close: "close",
66
+ xhrError: "This content failed to load.",
67
+ imgError: "This image failed to load.",
68
+
69
+ // accessbility
70
+ returnFocus: true,
71
+ trapFocus: true,
72
+
73
+ // callbacks
74
+ onOpen: false,
75
+ onLoad: false,
76
+ onComplete: false,
77
+ onCleanup: false,
78
+ onClosed: false,
79
+
80
+ rel: function() {
81
+ return this.rel;
82
+ },
83
+ href: function() {
84
+ // Using .attr() so that the href can also be used to provide a selector for inline content
85
+ return $(this).attr('href');
86
+ },
87
+ title: function() {
88
+ return this.title;
89
+ }
90
+ },
91
+
92
+
93
+ // Abstracting the HTML and event identifiers for easy rebranding
94
+ colorbox = 'colorbox',
95
+ prefix = 'cbox',
96
+ boxElement = prefix + 'Element',
97
+
98
+ // Events
99
+ event_open = prefix + '_open',
100
+ event_load = prefix + '_load',
101
+ event_complete = prefix + '_complete',
102
+ event_cleanup = prefix + '_cleanup',
103
+ event_closed = prefix + '_closed',
104
+ event_purge = prefix + '_purge',
105
+
106
+ // Cached jQuery Object Variables
107
+ $overlay,
108
+ $box,
109
+ $wrap,
110
+ $content,
111
+ $topBorder,
112
+ $leftBorder,
113
+ $rightBorder,
114
+ $bottomBorder,
115
+ $related,
116
+ $window,
117
+ $loaded,
118
+ $loadingBay,
119
+ $loadingOverlay,
120
+ $title,
121
+ $current,
122
+ $slideshow,
123
+ $next,
124
+ $prev,
125
+ $close,
126
+ $groupControls,
127
+ $events = $('<a/>'), // $({}) would be prefered, but there is an issue with jQuery 1.4.2
128
+
129
+ // Variables for cached values or use across multiple functions
130
+ settings,
131
+ interfaceHeight,
132
+ interfaceWidth,
133
+ loadedHeight,
134
+ loadedWidth,
135
+ index,
136
+ photo,
137
+ open,
138
+ active,
139
+ closing,
140
+ loadingTimer,
141
+ publicMethod,
142
+ div = "div",
143
+ requests = 0,
144
+ previousCSS = {},
145
+ init;
146
+
147
+ // ****************
148
+ // HELPER FUNCTIONS
149
+ // ****************
150
+
151
+ // Convenience function for creating new jQuery objects
152
+ function $tag(tag, id, css) {
153
+ var element = document.createElement(tag);
154
+
155
+ if (id) {
156
+ element.id = prefix + id;
157
+ }
158
+
159
+ if (css) {
160
+ element.style.cssText = css;
161
+ }
162
+
163
+ return $(element);
164
+ }
165
+
166
+ // Get the window height using innerHeight when available to avoid an issue with iOS
167
+ // http://bugs.jquery.com/ticket/6724
168
+ function winheight() {
169
+ return window.innerHeight ? window.innerHeight : $(window).height();
170
+ }
171
+
172
+ function Settings(element, options) {
173
+ if (options !== Object(options)) {
174
+ options = {};
175
+ }
176
+
177
+ this.cache = {};
178
+ this.el = element;
179
+
180
+ this.value = function(key) {
181
+ var dataAttr;
182
+
183
+ if (this.cache[key] === undefined) {
184
+ dataAttr = $(this.el).attr('data-cbox-'+key);
185
+
186
+ if (dataAttr !== undefined) {
187
+ this.cache[key] = dataAttr;
188
+ } else if (options[key] !== undefined) {
189
+ this.cache[key] = options[key];
190
+ } else if (defaults[key] !== undefined) {
191
+ this.cache[key] = defaults[key];
192
+ }
193
+ }
194
+
195
+ return this.cache[key];
196
+ };
197
+
198
+ this.get = function(key) {
199
+ var value = this.value(key);
200
+ return $.isFunction(value) ? value.call(this.el, this) : value;
201
+ };
202
+ }
203
+
204
+ // Determine the next and previous members in a group.
205
+ function getIndex(increment) {
206
+ var
207
+ max = $related.length,
208
+ newIndex = (index + increment) % max;
209
+
210
+ return (newIndex < 0) ? max + newIndex : newIndex;
211
+ }
212
+
213
+ // Convert '%' and 'px' values to integers
214
+ function setSize(size, dimension) {
215
+ return Math.round((/%/.test(size) ? ((dimension === 'x' ? $window.width() : winheight()) / 100) : 1) * parseInt(size, 10));
216
+ }
217
+
218
+ // Checks an href to see if it is a photo.
219
+ // There is a force photo option (photo: true) for hrefs that cannot be matched by the regex.
220
+ function isImage(settings, url) {
221
+ return settings.get('photo') || settings.get('photoRegex').test(url);
222
+ }
223
+
224
+ function retinaUrl(settings, url) {
225
+ return settings.get('retinaUrl') && window.devicePixelRatio > 1 ? url.replace(settings.get('photoRegex'), settings.get('retinaSuffix')) : url;
226
+ }
227
+
228
+ function trapFocus(e) {
229
+ if ('contains' in $box[0] && !$box[0].contains(e.target) && e.target !== $overlay[0]) {
230
+ e.stopPropagation();
231
+ $box.focus();
232
+ }
233
+ }
234
+
235
+ function setClass(str) {
236
+ if (setClass.str !== str) {
237
+ $box.add($overlay).removeClass(setClass.str).addClass(str);
238
+ setClass.str = str;
239
+ }
240
+ }
241
+
242
+ function getRelated() {
243
+ index = 0;
244
+
245
+ if (rel && rel !== 'nofollow') {
246
+ $related = $('.' + boxElement).filter(function () {
247
+ var options = $.data(this, colorbox);
248
+ var settings = new Settings(this, options);
249
+ return (settings.get('rel') === rel);
250
+ });
251
+ index = $related.index(settings.el);
252
+
253
+ // Check direct calls to Colorbox.
254
+ if (index === -1) {
255
+ $related = $related.add(settings.el);
256
+ index = $related.length - 1;
257
+ }
258
+ } else {
259
+ $related = $(settings.el);
260
+ }
261
+ }
262
+
263
+ function trigger(event) {
264
+ // for external use
265
+ $(document).trigger(event);
266
+ // for internal use
267
+ $events.triggerHandler(event);
268
+ }
269
+
270
+ var slideshow = (function(){
271
+ var active,
272
+ className = prefix + "Slideshow_",
273
+ click = "click." + prefix,
274
+ timeOut;
275
+
276
+ function clear () {
277
+ clearTimeout(timeOut);
278
+ }
279
+
280
+ function set() {
281
+ if (settings.get('loop') || $related[index + 1]) {
282
+ clear();
283
+ timeOut = setTimeout(publicMethod.next, settings.get('slideshowSpeed'));
284
+ }
285
+ }
286
+
287
+ function start() {
288
+ $slideshow
289
+ .html(settings.get('slideshowStop'))
290
+ .unbind(click)
291
+ .one(click, stop);
292
+
293
+ $events
294
+ .bind(event_complete, set)
295
+ .bind(event_load, clear);
296
+
297
+ $box.removeClass(className + "off").addClass(className + "on");
298
+ }
299
+
300
+ function stop() {
301
+ clear();
302
+
303
+ $events
304
+ .unbind(event_complete, set)
305
+ .unbind(event_load, clear);
306
+
307
+ $slideshow
308
+ .html(settings.get('slideshowStart'))
309
+ .unbind(click)
310
+ .one(click, function () {
311
+ publicMethod.next();
312
+ start();
313
+ });
314
+
315
+ $box.removeClass(className + "on").addClass(className + "off");
316
+ }
317
+
318
+ function reset() {
319
+ active = false;
320
+ $slideshow.hide();
321
+ clear();
322
+ $events
323
+ .unbind(event_complete, set)
324
+ .unbind(event_load, clear);
325
+ $box.removeClass(className + "off " + className + "on");
326
+ }
327
+
328
+ return function(){
329
+ if (active) {
330
+ if (!settings.get('slideshow')) {
331
+ $events.unbind(event_cleanup, reset);
332
+ reset();
333
+ }
334
+ } else {
335
+ if (settings.get('slideshow') && $related[1]) {
336
+ active = true;
337
+ $events.one(event_cleanup, reset);
338
+ if (settings.get('slideshowAuto')) {
339
+ start();
340
+ } else {
341
+ stop();
342
+ }
343
+ $slideshow.show();
344
+ }
345
+ }
346
+ };
347
+
348
+ }());
349
+
350
+
351
+ function launch(element) {
352
+ var options;
353
+
354
+ if (!closing) {
355
+
356
+ options = $(element).data('colorbox');
357
+
358
+ settings = new Settings(element, options);
359
+
360
+ rel = settings.get('rel');
361
+
362
+ getRelated();
363
+
364
+ if (!open) {
365
+ open = active = true; // Prevents the page-change action from queuing up if the visitor holds down the left or right keys.
366
+
367
+ setClass(settings.get('className'));
368
+
369
+ // Show colorbox so the sizes can be calculated in older versions of jQuery
370
+ $box.css({visibility:'hidden', display:'block'});
371
+
372
+ $loaded = $tag(div, 'LoadedContent', 'width:0; height:0; overflow:hidden; visibility:hidden');
373
+ $content.css({width:'', height:''}).append($loaded);
374
+
375
+ // Cache values needed for size calculations
376
+ interfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height();
377
+ interfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width();
378
+ loadedHeight = $loaded.outerHeight(true);
379
+ loadedWidth = $loaded.outerWidth(true);
380
+
381
+ // Opens inital empty Colorbox prior to content being loaded.
382
+ settings.w = setSize(settings.get('initialWidth'), 'x');
383
+ settings.h = setSize(settings.get('initialHeight'), 'y');
384
+ $loaded.css({width:'', height:settings.h});
385
+ publicMethod.position();
386
+
387
+ trigger(event_open);
388
+ settings.get('onOpen');
389
+
390
+ $groupControls.add($title).hide();
391
+
392
+ $box.focus();
393
+
394
+ if (settings.get('trapFocus')) {
395
+ // Confine focus to the modal
396
+ // Uses event capturing that is not supported in IE8-
397
+ if (document.addEventListener) {
398
+
399
+ document.addEventListener('focus', trapFocus, true);
400
+
401
+ $events.one(event_closed, function () {
402
+ document.removeEventListener('focus', trapFocus, true);
403
+ });
404
+ }
405
+ }
406
+
407
+ // Return focus on closing
408
+ if (settings.get('returnFocus')) {
409
+ $events.one(event_closed, function () {
410
+ $(settings.el).focus();
411
+ });
412
+ }
413
+ }
414
+
415
+ $overlay.css({
416
+ opacity: parseFloat(settings.get('opacity')),
417
+ cursor: settings.get('overlayClose') ? "pointer" : "auto",
418
+ visibility: 'visible'
419
+ }).show();
420
+
421
+ if (settings.get('closeButton')) {
422
+ $close.html(settings.get('close')).appendTo($content);
423
+ } else {
424
+ $close.appendTo('<div/>'); // replace with .detach() when dropping jQuery < 1.4
425
+ }
426
+
427
+ load();
428
+ }
429
+ }
430
+
431
+ // Colorbox's markup needs to be added to the DOM prior to being called
432
+ // so that the browser will go ahead and load the CSS background images.
433
+ function appendHTML() {
434
+ if (!$box && document.body) {
435
+ init = false;
436
+ $window = $(window);
437
+ $box = $tag(div).attr({
438
+ id: colorbox,
439
+ 'class': $.support.opacity === false ? prefix + 'IE' : '', // class for optional IE8 & lower targeted CSS.
440
+ role: 'dialog',
441
+ tabindex: '-1'
442
+ }).hide();
443
+ $overlay = $tag(div, "Overlay").hide();
444
+ $loadingOverlay = $([$tag(div, "LoadingOverlay")[0],$tag(div, "LoadingGraphic")[0]]);
445
+ $wrap = $tag(div, "Wrapper");
446
+ $content = $tag(div, "Content").append(
447
+ $title = $tag(div, "Title"),
448
+ $current = $tag(div, "Current"),
449
+ $prev = $('<button type="button"/>').attr({id:prefix+'Previous'}),
450
+ $next = $('<button type="button"/>').attr({id:prefix+'Next'}),
451
+ $slideshow = $tag('button', "Slideshow"),
452
+ $loadingOverlay
453
+ );
454
+
455
+ $close = $('<button type="button"/>').attr({id:prefix+'Close'});
456
+
457
+ $wrap.append( // The 3x3 Grid that makes up Colorbox
458
+ $tag(div).append(
459
+ $tag(div, "TopLeft"),
460
+ $topBorder = $tag(div, "TopCenter"),
461
+ $tag(div, "TopRight")
462
+ ),
463
+ $tag(div, false, 'clear:left').append(
464
+ $leftBorder = $tag(div, "MiddleLeft"),
465
+ $content,
466
+ $rightBorder = $tag(div, "MiddleRight")
467
+ ),
468
+ $tag(div, false, 'clear:left').append(
469
+ $tag(div, "BottomLeft"),
470
+ $bottomBorder = $tag(div, "BottomCenter"),
471
+ $tag(div, "BottomRight")
472
+ )
473
+ ).find('div div').css({'float': 'left'});
474
+
475
+ $loadingBay = $tag(div, false, 'position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;');
476
+
477
+ $groupControls = $next.add($prev).add($current).add($slideshow);
478
+
479
+ $(document.body).append($overlay, $box.append($wrap, $loadingBay));
480
+ }
481
+ }
482
+
483
+ // Add Colorbox's event bindings
484
+ function addBindings() {
485
+ function clickHandler(e) {
486
+ // ignore non-left-mouse-clicks and clicks modified with ctrl / command, shift, or alt.
487
+ // See: http://jacklmoore.com/notes/click-events/
488
+ if (!(e.which > 1 || e.shiftKey || e.altKey || e.metaKey || e.ctrlKey)) {
489
+ e.preventDefault();
490
+ launch(this);
491
+ }
492
+ }
493
+
494
+ if ($box) {
495
+ if (!init) {
496
+ init = true;
497
+
498
+ // Anonymous functions here keep the public method from being cached, thereby allowing them to be redefined on the fly.
499
+ $next.click(function () {
500
+ publicMethod.next();
501
+ });
502
+ $prev.click(function () {
503
+ publicMethod.prev();
504
+ });
505
+ $close.click(function () {
506
+ publicMethod.close();
507
+ });
508
+ $overlay.click(function () {
509
+ if (settings.get('overlayClose')) {
510
+ publicMethod.close();
511
+ }
512
+ });
513
+
514
+ // Key Bindings
515
+ $(document).bind('keydown.' + prefix, function (e) {
516
+ var key = e.keyCode;
517
+ if (open && settings.get('escKey') && key === 27) {
518
+ e.preventDefault();
519
+ publicMethod.close();
520
+ }
521
+ if (open && settings.get('arrowKey') && $related[1] && !e.altKey) {
522
+ if (key === 37) {
523
+ e.preventDefault();
524
+ $prev.click();
525
+ } else if (key === 39) {
526
+ e.preventDefault();
527
+ $next.click();
528
+ }
529
+ }
530
+ });
531
+
532
+ if ($.isFunction($.fn.on)) {
533
+ // For jQuery 1.7+
534
+ $(document).on('click.'+prefix, '.'+boxElement, clickHandler);
535
+ } else {
536
+ // For jQuery 1.3.x -> 1.6.x
537
+ // This code is never reached in jQuery 1.9, so do not contact me about 'live' being removed.
538
+ // This is not here for jQuery 1.9, it's here for legacy users.
539
+ $('.'+boxElement).live('click.'+prefix, clickHandler);
540
+ }
541
+ }
542
+ return true;
543
+ }
544
+ return false;
545
+ }
546
+
547
+ // Don't do anything if Colorbox already exists.
548
+ if ($.colorbox) {
549
+ return;
550
+ }
551
+
552
+ // Append the HTML when the DOM loads
553
+ $(appendHTML);
554
+
555
+
556
+ // ****************
557
+ // PUBLIC FUNCTIONS
558
+ // Usage format: $.colorbox.close();
559
+ // Usage from within an iframe: parent.jQuery.colorbox.close();
560
+ // ****************
561
+
562
+ publicMethod = $.fn[colorbox] = $[colorbox] = function (options, callback) {
563
+ var settings;
564
+ var $obj = this;
565
+
566
+ options = options || {};
567
+
568
+ if ($.isFunction($obj)) { // assume a call to $.colorbox
569
+ $obj = $('<a/>');
570
+ options.open = true;
571
+ } else if (!$obj[0]) { // colorbox being applied to empty collection
572
+ return $obj;
573
+ }
574
+
575
+
576
+ if (!$obj[0]) { // colorbox being applied to empty collection
577
+ return $obj;
578
+ }
579
+
580
+ appendHTML();
581
+
582
+ if (addBindings()) {
583
+
584
+ if (callback) {
585
+ options.onComplete = callback;
586
+ }
587
+
588
+ $obj.each(function () {
589
+ var old = $.data(this, colorbox) || {};
590
+ $.data(this, colorbox, $.extend(old, options));
591
+ }).addClass(boxElement);
592
+
593
+ settings = new Settings($obj[0], options);
594
+
595
+ if (settings.get('open')) {
596
+ launch($obj[0]);
597
+ }
598
+ }
599
+
600
+ return $obj;
601
+ };
602
+
603
+ publicMethod.position = function (speed, loadedCallback) {
604
+ var
605
+ css,
606
+ top = 0,
607
+ left = 0,
608
+ offset = $box.offset(),
609
+ scrollTop,
610
+ scrollLeft;
611
+
612
+ $window.unbind('resize.' + prefix);
613
+
614
+ // remove the modal so that it doesn't influence the document width/height
615
+ $box.css({top: -9e4, left: -9e4});
616
+
617
+ scrollTop = $window.scrollTop();
618
+ scrollLeft = $window.scrollLeft();
619
+
620
+ if (settings.get('fixed')) {
621
+ offset.top -= scrollTop;
622
+ offset.left -= scrollLeft;
623
+ $box.css({position: 'fixed'});
624
+ } else {
625
+ top = scrollTop;
626
+ left = scrollLeft;
627
+ $box.css({position: 'absolute'});
628
+ }
629
+
630
+ // keeps the top and left positions within the browser's viewport.
631
+ if (settings.get('right') !== false) {
632
+ left += Math.max($window.width() - settings.w - loadedWidth - interfaceWidth - setSize(settings.get('right'), 'x'), 0);
633
+ } else if (settings.get('left') !== false) {
634
+ left += setSize(settings.get('left'), 'x');
635
+ } else {
636
+ left += Math.round(Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0) / 2);
637
+ }
638
+
639
+ if (settings.get('bottom') !== false) {
640
+ top += Math.max(winheight() - settings.h - loadedHeight - interfaceHeight - setSize(settings.get('bottom'), 'y'), 0);
641
+ } else if (settings.get('top') !== false) {
642
+ top += setSize(settings.get('top'), 'y');
643
+ } else {
644
+ top += Math.round(Math.max(winheight() - settings.h - loadedHeight - interfaceHeight, 0) / 2);
645
+ }
646
+
647
+ $box.css({top: offset.top, left: offset.left, visibility:'visible'});
648
+
649
+ // this gives the wrapper plenty of breathing room so it's floated contents can move around smoothly,
650
+ // but it has to be shrank down around the size of div#colorbox when it's done. If not,
651
+ // it can invoke an obscure IE bug when using iframes.
652
+ $wrap[0].style.width = $wrap[0].style.height = "9999px";
653
+
654
+ function modalDimensions() {
655
+ $topBorder[0].style.width = $bottomBorder[0].style.width = $content[0].style.width = (parseInt($box[0].style.width,10) - interfaceWidth)+'px';
656
+ $content[0].style.height = $leftBorder[0].style.height = $rightBorder[0].style.height = (parseInt($box[0].style.height,10) - interfaceHeight)+'px';
657
+ }
658
+
659
+ css = {width: settings.w + loadedWidth + interfaceWidth, height: settings.h + loadedHeight + interfaceHeight, top: top, left: left};
660
+
661
+ // setting the speed to 0 if the content hasn't changed size or position
662
+ if (speed) {
663
+ var tempSpeed = 0;
664
+ $.each(css, function(i){
665
+ if (css[i] !== previousCSS[i]) {
666
+ tempSpeed = speed;
667
+ return;
668
+ }
669
+ });
670
+ speed = tempSpeed;
671
+ }
672
+
673
+ previousCSS = css;
674
+
675
+ if (!speed) {
676
+ $box.css(css);
677
+ }
678
+
679
+ $box.dequeue().animate(css, {
680
+ duration: speed || 0,
681
+ complete: function () {
682
+ modalDimensions();
683
+
684
+ active = false;
685
+
686
+ // shrink the wrapper down to exactly the size of colorbox to avoid a bug in IE's iframe implementation.
687
+ $wrap[0].style.width = (settings.w + loadedWidth + interfaceWidth) + "px";
688
+ $wrap[0].style.height = (settings.h + loadedHeight + interfaceHeight) + "px";
689
+
690
+ if (settings.get('reposition')) {
691
+ setTimeout(function () { // small delay before binding onresize due to an IE8 bug.
692
+ $window.bind('resize.' + prefix, publicMethod.position);
693
+ }, 1);
694
+ }
695
+
696
+ if (loadedCallback) {
697
+ loadedCallback();
698
+ }
699
+ },
700
+ step: modalDimensions
701
+ });
702
+ };
703
+
704
+ publicMethod.resize = function (options) {
705
+ var scrolltop;
706
+
707
+ if (open) {
708
+ options = options || {};
709
+
710
+ if (options.width) {
711
+ settings.w = setSize(options.width, 'x') - loadedWidth - interfaceWidth;
712
+ }
713
+
714
+ if (options.innerWidth) {
715
+ settings.w = setSize(options.innerWidth, 'x');
716
+ }
717
+
718
+ $loaded.css({width: settings.w});
719
+
720
+ if (options.height) {
721
+ settings.h = setSize(options.height, 'y') - loadedHeight - interfaceHeight;
722
+ }
723
+
724
+ if (options.innerHeight) {
725
+ settings.h = setSize(options.innerHeight, 'y');
726
+ }
727
+
728
+ if (!options.innerHeight && !options.height) {
729
+ scrolltop = $loaded.scrollTop();
730
+ $loaded.css({height: "auto"});
731
+ settings.h = $loaded.height();
732
+ }
733
+
734
+ $loaded.css({height: settings.h});
735
+
736
+ if(scrolltop) {
737
+ $loaded.scrollTop(scrolltop);
738
+ }
739
+
740
+ publicMethod.position(settings.get('transition') === "none" ? 0 : settings.get('speed'));
741
+ }
742
+ };
743
+
744
+ publicMethod.prep = function (object) {
745
+ if (!open) {
746
+ return;
747
+ }
748
+
749
+ var callback, speed = settings.get('transition') === "none" ? 0 : settings.get('speed');
750
+
751
+ $loaded.remove();
752
+
753
+ $loaded = $tag(div, 'LoadedContent').append(object);
754
+
755
+ function getWidth() {
756
+ settings.w = settings.w || $loaded.width();
757
+ settings.w = settings.mw && settings.mw < settings.w ? settings.mw : settings.w;
758
+ return settings.w;
759
+ }
760
+ function getHeight() {
761
+ settings.h = settings.h || $loaded.height();
762
+ settings.h = settings.mh && settings.mh < settings.h ? settings.mh : settings.h;
763
+ return settings.h;
764
+ }
765
+
766
+ $loaded.hide()
767
+ .appendTo($loadingBay.show())// content has to be appended to the DOM for accurate size calculations.
768
+ .css({width: getWidth(), overflow: settings.get('scrolling') ? 'auto' : 'hidden'})
769
+ .css({height: getHeight()})// sets the height independently from the width in case the new width influences the value of height.
770
+ .prependTo($content);
771
+
772
+ $loadingBay.hide();
773
+
774
+ // floating the IMG removes the bottom line-height and fixed a problem where IE miscalculates the width of the parent element as 100% of the document width.
775
+
776
+ $(photo).css({'float': 'none'});
777
+
778
+ setClass(settings.get('className'));
779
+
780
+ callback = function () {
781
+ var total = $related.length,
782
+ iframe,
783
+ complete;
784
+
785
+ if (!open) {
786
+ return;
787
+ }
788
+
789
+ function removeFilter() { // Needed for IE8 in versions of jQuery prior to 1.7.2
790
+ if ($.support.opacity === false) {
791
+ $box[0].style.removeAttribute('filter');
792
+ }
793
+ }
794
+
795
+ complete = function () {
796
+ clearTimeout(loadingTimer);
797
+ $loadingOverlay.hide();
798
+ trigger(event_complete);
799
+ settings.get('onComplete');
800
+ };
801
+
802
+
803
+ $title.html(settings.get('title')).show();
804
+ $loaded.show();
805
+
806
+ if (total > 1) { // handle grouping
807
+ if (typeof settings.get('current') === "string") {
808
+ $current.html(settings.get('current').replace('{current}', index + 1).replace('{total}', total)).show();
809
+ }
810
+
811
+ $next[(settings.get('loop') || index < total - 1) ? "show" : "hide"]().html(settings.get('next'));
812
+ $prev[(settings.get('loop') || index) ? "show" : "hide"]().html(settings.get('previous'));
813
+
814
+ slideshow();
815
+
816
+ // Preloads images within a rel group
817
+ if (settings.get('preloading')) {
818
+ $.each([getIndex(-1), getIndex(1)], function(){
819
+ var img,
820
+ i = $related[this],
821
+ settings = new Settings(i, $.data(i, colorbox)),
822
+ src = settings.get('href');
823
+
824
+ if (src && isImage(settings, src)) {
825
+ src = retinaUrl(settings, src);
826
+ img = document.createElement('img');
827
+ img.src = src;
828
+ }
829
+ });
830
+ }
831
+ } else {
832
+ $groupControls.hide();
833
+ }
834
+
835
+ if (settings.get('iframe')) {
836
+ iframe = document.createElement('iframe');
837
+
838
+ if ('frameBorder' in iframe) {
839
+ iframe.frameBorder = 0;
840
+ }
841
+
842
+ if ('allowTransparency' in iframe) {
843
+ iframe.allowTransparency = "true";
844
+ }
845
+
846
+ if (!settings.get('scrolling')) {
847
+ iframe.scrolling = "no";
848
+ }
849
+
850
+ $(iframe)
851
+ .attr({
852
+ src: settings.get('href'),
853
+ name: (new Date()).getTime(), // give the iframe a unique name to prevent caching
854
+ 'class': prefix + 'Iframe',
855
+ allowFullScreen : true // allow HTML5 video to go fullscreen
856
+ })
857
+ .one('load', complete)
858
+ .appendTo($loaded);
859
+
860
+ $events.one(event_purge, function () {
861
+ iframe.src = "//about:blank";
862
+ });
863
+
864
+ if (settings.get('fastIframe')) {
865
+ $(iframe).trigger('load');
866
+ }
867
+ } else {
868
+ complete();
869
+ }
870
+
871
+ if (settings.get('transition') === 'fade') {
872
+ $box.fadeTo(speed, 1, removeFilter);
873
+ } else {
874
+ removeFilter();
875
+ }
876
+ };
877
+
878
+ if (settings.get('transition') === 'fade') {
879
+ $box.fadeTo(speed, 0, function () {
880
+ publicMethod.position(0, callback);
881
+ });
882
+ } else {
883
+ publicMethod.position(speed, callback);
884
+ }
885
+ };
886
+
887
+ function load () {
888
+ var href, setResize, prep = publicMethod.prep, $inline, request = ++requests;
889
+
890
+ active = true;
891
+
892
+ photo = false;
893
+
894
+ trigger(event_purge);
895
+ trigger(event_load);
896
+ settings.get('onLoad');
897
+
898
+ settings.h = settings.get('height') ?
899
+ setSize(settings.get('height'), 'y') - loadedHeight - interfaceHeight :
900
+ settings.get('innerHeight') && setSize(settings.get('innerHeight'), 'y');
901
+
902
+ settings.w = settings.get('width') ?
903
+ setSize(settings.get('width'), 'x') - loadedWidth - interfaceWidth :
904
+ settings.get('innerWidth') && setSize(settings.get('innerWidth'), 'x');
905
+
906
+ // Sets the minimum dimensions for use in image scaling
907
+ settings.mw = settings.w;
908
+ settings.mh = settings.h;
909
+
910
+ // Re-evaluate the minimum width and height based on maxWidth and maxHeight values.
911
+ // If the width or height exceed the maxWidth or maxHeight, use the maximum values instead.
912
+ if (settings.get('maxWidth')) {
913
+ settings.mw = setSize(settings.get('maxWidth'), 'x') - loadedWidth - interfaceWidth;
914
+ settings.mw = settings.w && settings.w < settings.mw ? settings.w : settings.mw;
915
+ }
916
+ if (settings.get('maxHeight')) {
917
+ settings.mh = setSize(settings.get('maxHeight'), 'y') - loadedHeight - interfaceHeight;
918
+ settings.mh = settings.h && settings.h < settings.mh ? settings.h : settings.mh;
919
+ }
920
+
921
+ href = settings.get('href');
922
+
923
+ loadingTimer = setTimeout(function () {
924
+ $loadingOverlay.show();
925
+ }, 100);
926
+
927
+ if (settings.get('inline')) {
928
+ // Inserts an empty placeholder where inline content is being pulled from.
929
+ // An event is bound to put inline content back when Colorbox closes or loads new content.
930
+ $inline = $tag(div).hide().insertBefore($(href)[0]);
931
+
932
+ $events.one(event_purge, function () {
933
+ $inline.replaceWith($loaded.children());
934
+ });
935
+
936
+ prep($(href));
937
+ } else if (settings.get('iframe')) {
938
+ // IFrame element won't be added to the DOM until it is ready to be displayed,
939
+ // to avoid problems with DOM-ready JS that might be trying to run in that iframe.
940
+ prep(" ");
941
+ } else if (settings.get('html')) {
942
+ prep(settings.get('html'));
943
+ } else if (isImage(settings, href)) {
944
+
945
+ href = retinaUrl(settings, href);
946
+
947
+ photo = document.createElement('img');
948
+
949
+ $(photo)
950
+ .addClass(prefix + 'Photo')
951
+ .bind('error',function () {
952
+ prep($tag(div, 'Error').html(settings.get('imgError')));
953
+ })
954
+ .one('load', function () {
955
+ var percent;
956
+
957
+ if (request !== requests) {
958
+ return;
959
+ }
960
+
961
+ $.each(['alt', 'longdesc', 'aria-describedby'], function(i,val){
962
+ var attr = $(settings.el).attr(val) || $(settings.el).attr('data-'+val);
963
+ if (attr) {
964
+ photo.setAttribute(val, attr);
965
+ }
966
+ });
967
+
968
+ if (settings.get('retinaImage') && window.devicePixelRatio > 1) {
969
+ photo.height = photo.height / window.devicePixelRatio;
970
+ photo.width = photo.width / window.devicePixelRatio;
971
+ }
972
+
973
+ if (settings.get('scalePhotos')) {
974
+ setResize = function () {
975
+ photo.height -= photo.height * percent;
976
+ photo.width -= photo.width * percent;
977
+ };
978
+ if (settings.mw && photo.width > settings.mw) {
979
+ percent = (photo.width - settings.mw) / photo.width;
980
+ setResize();
981
+ }
982
+ if (settings.mh && photo.height > settings.mh) {
983
+ percent = (photo.height - settings.mh) / photo.height;
984
+ setResize();
985
+ }
986
+ }
987
+
988
+ if (settings.h) {
989
+ photo.style.marginTop = Math.max(settings.mh - photo.height, 0) / 2 + 'px';
990
+ }
991
+
992
+ if ($related[1] && (settings.get('loop') || $related[index + 1])) {
993
+ photo.style.cursor = 'pointer';
994
+ photo.onclick = function () {
995
+ publicMethod.next();
996
+ };
997
+ }
998
+
999
+ photo.style.width = photo.width + 'px';
1000
+ photo.style.height = photo.height + 'px';
1001
+
1002
+ setTimeout(function () { // A pause because Chrome will sometimes report a 0 by 0 size otherwise.
1003
+ prep(photo);
1004
+ }, 1);
1005
+ });
1006
+
1007
+ setTimeout(function () { // A pause because Opera 10.6+ will sometimes not run the onload function otherwise.
1008
+ photo.src = href;
1009
+ }, 1);
1010
+ } else if (href) {
1011
+ $loadingBay.load(href, settings.get('data'), function (data, status) {
1012
+ if (request === requests) {
1013
+ prep(status === 'error' ? $tag(div, 'Error').html(settings.get('xhrError')) : $(this).contents());
1014
+ }
1015
+ });
1016
+ }
1017
+ }
1018
+
1019
+ // Navigates to the next page/image in a set.
1020
+ publicMethod.next = function () {
1021
+ if (!active && $related[1] && (settings.get('loop') || $related[index + 1])) {
1022
+ index = getIndex(1);
1023
+ launch($related[index]);
1024
+ }
1025
+ };
1026
+
1027
+ publicMethod.prev = function () {
1028
+ if (!active && $related[1] && (settings.get('loop') || index)) {
1029
+ index = getIndex(-1);
1030
+ launch($related[index]);
1031
+ }
1032
+ };
1033
+
1034
+ // Note: to use this within an iframe use the following format: parent.jQuery.colorbox.close();
1035
+ publicMethod.close = function () {
1036
+ if (open && !closing) {
1037
+
1038
+ closing = true;
1039
+
1040
+ open = false;
1041
+
1042
+ trigger(event_cleanup);
1043
+ settings.get('onCleanup');
1044
+
1045
+ $window.unbind('.' + prefix);
1046
+
1047
+ $overlay.fadeTo(settings.get('fadeOut') || 0, 0);
1048
+
1049
+ $box.stop().fadeTo(settings.get('fadeOut') || 0, 0, function () {
1050
+
1051
+ $box.add($overlay).css({'opacity': 1, cursor: 'auto'}).hide();
1052
+
1053
+ trigger(event_purge);
1054
+
1055
+ $loaded.remove();
1056
+
1057
+ setTimeout(function () {
1058
+ closing = false;
1059
+ trigger(event_closed);
1060
+ settings.get('onClosed');
1061
+ }, 1);
1062
+ });
1063
+ }
1064
+ };
1065
+
1066
+ // Removes changes Colorbox made to the document, but does not remove the plugin.
1067
+ publicMethod.remove = function () {
1068
+ if (!$box) { return; }
1069
+
1070
+ $box.stop();
1071
+ $.colorbox.close();
1072
+ $box.stop().remove();
1073
+ $overlay.remove();
1074
+ closing = false;
1075
+ $box = null;
1076
+ $('.' + boxElement)
1077
+ .removeData(colorbox)
1078
+ .removeClass(boxElement);
1079
+
1080
+ $(document).unbind('click.'+prefix);
1081
+ };
1082
+
1083
+ // A method for fetching the current element Colorbox is referencing.
1084
+ // returns a jQuery object.
1085
+ publicMethod.element = function () {
1086
+ return $(settings.el);
1087
+ };
1088
+
1089
+ publicMethod.settings = defaults;
1090
+
1091
+ }(jQuery, document, window));