garb 0.9.1 → 0.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/.travis.yml +7 -0
  4. data/CHANGELOG.md +95 -0
  5. data/Gemfile +15 -0
  6. data/README.md +47 -25
  7. data/Rakefile +8 -34
  8. data/garb.gemspec +22 -0
  9. data/lib/garb.rb +71 -48
  10. data/lib/garb/attributes.rb +35 -0
  11. data/lib/garb/core_ext/array.rb +13 -0
  12. data/lib/garb/core_ext/string.rb +48 -0
  13. data/lib/garb/core_ext/symbol.rb +59 -0
  14. data/lib/garb/destination.rb +5 -6
  15. data/lib/garb/errors.rb +20 -0
  16. data/lib/garb/filter_parameters.rb +20 -29
  17. data/lib/garb/management/account.rb +10 -16
  18. data/lib/garb/management/feed.rb +4 -5
  19. data/lib/garb/management/goal.rb +10 -15
  20. data/lib/garb/management/profile.rb +11 -20
  21. data/lib/garb/management/segment.rb +9 -15
  22. data/lib/garb/management/web_property.rb +11 -16
  23. data/lib/garb/model.rb +37 -13
  24. data/lib/garb/path_attribute.rb +7 -0
  25. data/lib/garb/report_parameter.rb +5 -5
  26. data/lib/garb/report_response.rb +29 -28
  27. data/lib/garb/reports/bounces.rb +1 -1
  28. data/lib/garb/reports/exits.rb +1 -1
  29. data/lib/garb/reports/pageviews.rb +1 -1
  30. data/lib/garb/reports/unique_pageviews.rb +1 -1
  31. data/lib/garb/reports/visits.rb +1 -1
  32. data/lib/garb/request/authentication.rb +54 -0
  33. data/lib/garb/request/data.rb +98 -0
  34. data/lib/garb/result_set.rb +23 -9
  35. data/lib/garb/session.rb +3 -3
  36. data/lib/garb/step.rb +4 -4
  37. data/lib/garb/support.rb +6 -0
  38. data/lib/garb/version.rb +3 -3
  39. data/test/fixtures/account_management.json +1 -0
  40. data/test/fixtures/ga_profile_management.json +1 -0
  41. data/test/fixtures/ga_segment_management.json +1 -0
  42. data/test/fixtures/ga_webproperty_management.json +1 -0
  43. data/test/fixtures/goal_management.json +1 -0
  44. data/test/fixtures/profile_feed.json +1 -0
  45. data/test/fixtures/report_feed.json +75 -0
  46. data/test/test_helper.rb +6 -10
  47. data/test/unit/garb/filter_parameters_test.rb +15 -46
  48. data/test/unit/garb/management/account_test.rb +8 -16
  49. data/test/unit/garb/management/feed_test.rb +5 -10
  50. data/test/unit/garb/management/goal_test.rb +7 -21
  51. data/test/unit/garb/management/profile_test.rb +11 -26
  52. data/test/unit/garb/management/segment_test.rb +7 -6
  53. data/test/unit/garb/management/web_property_test.rb +10 -12
  54. data/test/unit/garb/model_test.rb +70 -32
  55. data/test/unit/garb/report_parameter_test.rb +6 -6
  56. data/test/unit/garb/report_response_test.rb +23 -13
  57. data/test/unit/garb/request/authentication_test.rb +152 -0
  58. data/test/unit/garb/request/data_test.rb +157 -0
  59. data/test/unit/garb/session_test.rb +13 -13
  60. data/test/unit/garb_test.rb +4 -11
  61. data/test/unit/symbol_operator_test.rb +3 -3
  62. metadata +90 -292
  63. data/lib/garb/account.rb +0 -22
  64. data/lib/garb/account_feed_request.rb +0 -25
  65. data/lib/garb/authentication_request.rb +0 -53
  66. data/lib/garb/data_request.rb +0 -42
  67. data/lib/garb/goal.rb +0 -20
  68. data/lib/garb/profile.rb +0 -33
  69. data/lib/garb/report.rb +0 -28
  70. data/lib/garb/resource.rb +0 -115
  71. data/lib/support.rb +0 -40
  72. data/test/unit/garb/account_feed_request_test.rb +0 -42
  73. data/test/unit/garb/account_test.rb +0 -53
  74. data/test/unit/garb/authentication_request_test.rb +0 -121
  75. data/test/unit/garb/coverage/assets/0.3.9/app.js +0 -66
  76. data/test/unit/garb/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
  77. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
  78. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
  79. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
  80. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
  81. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
  82. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
  83. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
  84. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
  85. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
  86. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
  87. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
  88. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
  89. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
  90. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
  91. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
  92. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
  93. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
  94. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
  95. data/test/unit/garb/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
  96. data/test/unit/garb/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +0 -363
  97. data/test/unit/garb/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +0 -44
  98. data/test/unit/garb/coverage/assets/0.3.9/favicon.png +0 -0
  99. data/test/unit/garb/coverage/assets/0.3.9/jquery-1.4.2.min.js +0 -155
  100. data/test/unit/garb/coverage/assets/0.3.9/jquery.dataTables.min.js +0 -152
  101. data/test/unit/garb/coverage/assets/0.3.9/jquery.timeago.js +0 -141
  102. data/test/unit/garb/coverage/assets/0.3.9/jquery.url.js +0 -174
  103. data/test/unit/garb/coverage/assets/0.3.9/loading.gif +0 -0
  104. data/test/unit/garb/coverage/assets/0.3.9/magnify.png +0 -0
  105. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  106. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  107. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  108. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  109. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  110. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  111. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  112. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  113. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
  114. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  115. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
  116. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
  117. data/test/unit/garb/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  118. data/test/unit/garb/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +0 -295
  119. data/test/unit/garb/coverage/assets/0.3.9/stylesheet.css +0 -341
  120. data/test/unit/garb/coverage/index.html +0 -100
  121. data/test/unit/garb/coverage/resultset.yml +0 -5
  122. data/test/unit/garb/data_request_test.rb +0 -107
  123. data/test/unit/garb/destination_test.rb +0 -28
  124. data/test/unit/garb/goal_test.rb +0 -24
  125. data/test/unit/garb/management/coverage/assets/0.3.9/app.js +0 -66
  126. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
  127. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
  128. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
  129. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
  130. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
  131. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
  132. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
  133. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
  134. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
  135. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
  136. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
  137. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
  138. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
  139. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
  140. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
  141. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
  142. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
  143. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
  144. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
  145. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
  146. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +0 -363
  147. data/test/unit/garb/management/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +0 -44
  148. data/test/unit/garb/management/coverage/assets/0.3.9/favicon.png +0 -0
  149. data/test/unit/garb/management/coverage/assets/0.3.9/jquery-1.4.2.min.js +0 -155
  150. data/test/unit/garb/management/coverage/assets/0.3.9/jquery.dataTables.min.js +0 -152
  151. data/test/unit/garb/management/coverage/assets/0.3.9/jquery.timeago.js +0 -141
  152. data/test/unit/garb/management/coverage/assets/0.3.9/jquery.url.js +0 -174
  153. data/test/unit/garb/management/coverage/assets/0.3.9/loading.gif +0 -0
  154. data/test/unit/garb/management/coverage/assets/0.3.9/magnify.png +0 -0
  155. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  156. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  157. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  158. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  159. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  160. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  161. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  162. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  163. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
  164. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  165. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
  166. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
  167. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  168. data/test/unit/garb/management/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +0 -295
  169. data/test/unit/garb/management/coverage/assets/0.3.9/stylesheet.css +0 -341
  170. data/test/unit/garb/management/coverage/index.html +0 -100
  171. data/test/unit/garb/management/coverage/resultset.yml +0 -5
  172. data/test/unit/garb/profile_test.rb +0 -77
  173. data/test/unit/garb/report_test.rb +0 -99
  174. data/test/unit/garb/resource_test.rb +0 -50
  175. data/test/unit/garb/step_test.rb +0 -15
@@ -1,121 +0,0 @@
1
- require 'test_helper'
2
-
3
- CA_CERT_FILE = File.join(File.dirname(__FILE__), '..', '/cacert.pem')
4
-
5
- module Garb
6
- class AuthenticationRequestTest < MiniTest::Unit::TestCase
7
-
8
- context "An instance of the AuthenticationRequest class" do
9
-
10
- setup { @request = AuthenticationRequest.new('email', 'password') }
11
-
12
- should "have a collection of parameters that include the email and password" do
13
- expected =
14
- {
15
- 'Email' => 'user@example.com',
16
- 'Passwd' => 'fuzzybunnies',
17
- 'accountType' => 'HOSTED_OR_GOOGLE',
18
- 'service' => 'analytics',
19
- 'source' => 'vigetLabs-garb-001'
20
- }
21
-
22
- request = AuthenticationRequest.new('user@example.com', 'fuzzybunnies')
23
- assert_equal expected, request.parameters
24
- end
25
-
26
- should "have a URI" do
27
- assert_equal URI.parse('https://www.google.com/accounts/ClientLogin'), @request.uri
28
- end
29
-
30
- should "be able to send a request to the GAAPI service with proper ssl" do
31
- @request.expects(:build_request).returns('post')
32
-
33
- response = mock {|m| m.expects(:is_a?).with(Net::HTTPOK).returns(true) }
34
-
35
- http = mock do |m|
36
- m.expects(:use_ssl=).with(true)
37
- m.expects(:verify_mode=).with(OpenSSL::SSL::VERIFY_PEER)
38
- m.expects(:ca_file=).with(CA_CERT_FILE)
39
- m.expects(:request).with('post').yields(response)
40
- end
41
-
42
- Net::HTTP.expects(:new).with('www.google.com', 443).returns(http)
43
-
44
- @request.send_request(OpenSSL::SSL::VERIFY_PEER)
45
- end
46
-
47
- should "be able to send a request to the GAAPI service with ignoring ssl" do
48
- @request.expects(:build_request).returns('post')
49
-
50
- response = mock {|m| m.expects(:is_a?).with(Net::HTTPOK).returns(true) }
51
-
52
- http = mock do |m|
53
- m.expects(:use_ssl=).with(true)
54
- m.expects(:verify_mode=).with(OpenSSL::SSL::VERIFY_NONE)
55
- m.expects(:request).with('post').yields(response)
56
- end
57
-
58
- Net::HTTP.expects(:new).with('www.google.com', 443).returns(http)
59
-
60
- @request.send_request(OpenSSL::SSL::VERIFY_NONE)
61
- end
62
-
63
- should "be able to build a request for the GAAPI service" do
64
- params = "param"
65
- @request.expects(:parameters).with().returns(params)
66
-
67
- post = mock
68
- post.expects(:set_form_data).with(params)
69
-
70
- Net::HTTP::Post.expects(:new).with('/accounts/ClientLogin').returns(post)
71
-
72
- @request.build_request
73
- end
74
-
75
- should "be able to retrieve an auth_token from the body" do
76
- response_data =
77
- "SID=mysid\n" +
78
- "LSID=mylsid\n" +
79
- "Auth=auth_token\n"
80
-
81
- @request.expects(:send_request).with(OpenSSL::SSL::VERIFY_NONE).returns(stub(:body => response_data))
82
-
83
- assert_equal 'auth_token', @request.auth_token
84
- end
85
-
86
- should "use VERIFY_PEER if auth_token needs to be secure" do
87
- response_data =
88
- "SID=mysid\n" +
89
- "LSID=mylsid\n" +
90
- "Auth=auth_token\n"
91
-
92
- @request.expects(:send_request).with(OpenSSL::SSL::VERIFY_PEER).returns(stub(:body => response_data))
93
-
94
- assert_equal 'auth_token', @request.auth_token(:secure => true)
95
- end
96
-
97
- should "raise an exception when requesting an auth_token when the authorization fails" do
98
- @request.stubs(:build_request)
99
- response = mock do |m|
100
- m.expects(:is_a?).with(Net::HTTPOK).returns(false)
101
- end
102
-
103
- http = stub do |s|
104
- s.stubs(:use_ssl=)
105
- s.stubs(:verify_mode=)
106
- s.stubs(:request).yields(response)
107
- end
108
-
109
- Net::HTTP.stubs(:new).with('www.google.com', 443).returns(http)
110
-
111
- assert_raises(Garb::AuthenticationRequest::AuthError) do
112
- @request.send_request(OpenSSL::SSL::VERIFY_NONE)
113
- end
114
- end
115
-
116
- end
117
-
118
-
119
-
120
- end
121
- end
@@ -1,66 +0,0 @@
1
- $(document).ready(function() {
2
- $('.file_list').dataTable({
3
- "aaSorting": [[ 1, "asc" ]],
4
- "bPaginate": false,
5
- "bJQueryUI": true,
6
- "aoColumns": [
7
- null,
8
- { "sType": "percent" },
9
- null,
10
- null,
11
- null,
12
- null
13
- ]
14
- });
15
-
16
- $('.source_table tbody tr:odd').addClass('odd');
17
- $('.source_table tbody tr:even').addClass('even');
18
-
19
- $("a.src_link").fancybox({
20
- 'hideOnContentClick': true
21
- });
22
-
23
- // Hide src files and file list container
24
- $('.source_files').hide();
25
- $('.file_list_container').hide();
26
-
27
- // Add tabs based upon existing file_list_containers
28
- $('.file_list_container h2').each(function(){
29
- $('.group_tabs').append('<li><a href="#' + $(this).parent().attr('id') + '">' + $(this).html() + '</a></li>');
30
- });
31
-
32
- $('.group_tabs a').each( function() {
33
- $(this).addClass($(this).attr('href').replace('#', ''));
34
- });
35
-
36
- $('.group_tabs a').live('focus', function() {
37
- $(this).blur();
38
- });
39
-
40
- var favicon_path = $('link[rel="shortcut icon"]').attr('href')
41
- $('.group_tabs a').live('click', function(){
42
- if (!$(this).parent().hasClass('active')) {
43
- $('.group_tabs a').parent().removeClass('active');
44
- $(this).parent().addClass('active');
45
- $('.file_list_container').hide();
46
- $(".file_list_container" + $(this).attr('href')).show();
47
- window.location.href = window.location.href.split('#')[0] + $(this).attr('href').replace('#', '#_');
48
-
49
- // Force favicon reload - otherwise the location change containing anchor would drop the favicon...
50
- // Works only on firefox, but still... - Anyone know a better solution to force favicon?
51
- $('link[rel="shortcut icon"]').remove();
52
- $('head').append('<link rel="shortcut icon" type="image/png" href="'+ favicon_path +'" />');
53
- };
54
- return false;
55
- });
56
-
57
- if (jQuery.url.attr('anchor')) {
58
- $('.group_tabs a.'+jQuery.url.attr('anchor').replace('_', '')).click();
59
- } else {
60
- $('.group_tabs a:first').click();
61
- };
62
-
63
- $("abbr.timeago").timeago();
64
- $('#loading').fadeOut();
65
- $('#wrapper').show();
66
- });
@@ -1,363 +0,0 @@
1
- /*
2
- * FancyBox - jQuery Plugin
3
- * Simple and fancy lightbox alternative
4
- *
5
- * Examples and documentation at: http://fancybox.net
6
- *
7
- * Copyright (c) 2008 - 2010 Janis Skarnelis
8
- *
9
- * Version: 1.3.1 (05/03/2010)
10
- * Requires: jQuery v1.3+
11
- *
12
- * Dual licensed under the MIT and GPL licenses:
13
- * http://www.opensource.org/licenses/mit-license.php
14
- * http://www.gnu.org/licenses/gpl.html
15
- */
16
-
17
- #fancybox-loading {
18
- position: fixed;
19
- top: 50%;
20
- left: 50%;
21
- height: 40px;
22
- width: 40px;
23
- margin-top: -20px;
24
- margin-left: -20px;
25
- cursor: pointer;
26
- overflow: hidden;
27
- z-index: 1104;
28
- display: none;
29
- }
30
-
31
- * html #fancybox-loading { /* IE6 */
32
- position: absolute;
33
- margin-top: 0;
34
- }
35
-
36
- #fancybox-loading div {
37
- position: absolute;
38
- top: 0;
39
- left: 0;
40
- width: 40px;
41
- height: 480px;
42
- background-image: url('fancybox.png');
43
- }
44
-
45
- #fancybox-overlay {
46
- position: fixed;
47
- top: 0;
48
- left: 0;
49
- bottom: 0;
50
- right: 0;
51
- background: #000;
52
- z-index: 1100;
53
- display: none;
54
- }
55
-
56
- * html #fancybox-overlay { /* IE6 */
57
- position: absolute;
58
- width: 100%;
59
- }
60
-
61
- #fancybox-tmp {
62
- padding: 0;
63
- margin: 0;
64
- border: 0;
65
- overflow: auto;
66
- display: none;
67
- }
68
-
69
- #fancybox-wrap {
70
- position: absolute;
71
- top: 0;
72
- left: 0;
73
- margin: 0;
74
- padding: 20px;
75
- z-index: 1101;
76
- display: none;
77
- }
78
-
79
- #fancybox-outer {
80
- position: relative;
81
- width: 100%;
82
- height: 100%;
83
- background: #FFF;
84
- }
85
-
86
- #fancybox-inner {
87
- position: absolute;
88
- top: 0;
89
- left: 0;
90
- width: 1px;
91
- height: 1px;
92
- padding: 0;
93
- margin: 0;
94
- outline: none;
95
- overflow: hidden;
96
- }
97
-
98
- #fancybox-hide-sel-frame {
99
- position: absolute;
100
- top: 0;
101
- left: 0;
102
- width: 100%;
103
- height: 100%;
104
- background: transparent;
105
- }
106
-
107
- #fancybox-close {
108
- position: absolute;
109
- top: -15px;
110
- right: -15px;
111
- width: 30px;
112
- height: 30px;
113
- background-image: url('fancybox.png');
114
- background-position: -40px 0px;
115
- cursor: pointer;
116
- z-index: 1103;
117
- display: none;
118
- }
119
-
120
- #fancybox_error {
121
- color: #444;
122
- font: normal 12px/20px Arial;
123
- padding: 7px;
124
- margin: 0;
125
- }
126
-
127
- #fancybox-content {
128
- height: auto;
129
- width: auto;
130
- padding: 0;
131
- margin: 0;
132
- }
133
-
134
- #fancybox-img {
135
- width: 100%;
136
- height: 100%;
137
- padding: 0;
138
- margin: 0;
139
- border: none;
140
- outline: none;
141
- line-height: 0;
142
- vertical-align: top;
143
- -ms-interpolation-mode: bicubic;
144
- }
145
-
146
- #fancybox-frame {
147
- position: relative;
148
- width: 100%;
149
- height: 100%;
150
- border: none;
151
- display: block;
152
- }
153
-
154
- #fancybox-title {
155
- position: absolute;
156
- bottom: 0;
157
- left: 0;
158
- font-family: Arial;
159
- font-size: 12px;
160
- z-index: 1102;
161
- }
162
-
163
- .fancybox-title-inside {
164
- padding: 10px 0;
165
- text-align: center;
166
- color: #333;
167
- }
168
-
169
- .fancybox-title-outside {
170
- padding-top: 5px;
171
- color: #FFF;
172
- text-align: center;
173
- font-weight: bold;
174
- }
175
-
176
- .fancybox-title-over {
177
- color: #FFF;
178
- text-align: left;
179
- }
180
-
181
- #fancybox-title-over {
182
- padding: 10px;
183
- background-image: url('fancy_title_over.png');
184
- display: block;
185
- }
186
-
187
- #fancybox-title-wrap {
188
- display: inline-block;
189
- }
190
-
191
- #fancybox-title-wrap span {
192
- height: 32px;
193
- float: left;
194
- }
195
-
196
- #fancybox-title-left {
197
- padding-left: 15px;
198
- background-image: url('fancybox.png');
199
- background-position: -40px -90px;
200
- background-repeat: no-repeat;
201
- }
202
-
203
- #fancybox-title-main {
204
- font-weight: bold;
205
- line-height: 29px;
206
- background-image: url('fancybox-x.png');
207
- background-position: 0px -40px;
208
- color: #FFF;
209
- }
210
-
211
- #fancybox-title-right {
212
- padding-left: 15px;
213
- background-image: url('fancybox.png');
214
- background-position: -55px -90px;
215
- background-repeat: no-repeat;
216
- }
217
-
218
- #fancybox-left, #fancybox-right {
219
- position: absolute;
220
- bottom: 0px;
221
- height: 100%;
222
- width: 35%;
223
- cursor: pointer;
224
- outline: none;
225
- background-image: url('blank.gif');
226
- z-index: 1102;
227
- display: none;
228
- }
229
-
230
- #fancybox-left {
231
- left: 0px;
232
- }
233
-
234
- #fancybox-right {
235
- right: 0px;
236
- }
237
-
238
- #fancybox-left-ico, #fancybox-right-ico {
239
- position: absolute;
240
- top: 50%;
241
- left: -9999px;
242
- width: 30px;
243
- height: 30px;
244
- margin-top: -15px;
245
- cursor: pointer;
246
- z-index: 1102;
247
- display: block;
248
- }
249
-
250
- #fancybox-left-ico {
251
- background-image: url('fancybox.png');
252
- background-position: -40px -30px;
253
- }
254
-
255
- #fancybox-right-ico {
256
- background-image: url('fancybox.png');
257
- background-position: -40px -60px;
258
- }
259
-
260
- #fancybox-left:hover, #fancybox-right:hover {
261
- visibility: visible; /* IE6 */
262
- }
263
-
264
- #fancybox-left:hover span {
265
- left: 20px;
266
- }
267
-
268
- #fancybox-right:hover span {
269
- left: auto;
270
- right: 20px;
271
- }
272
-
273
- .fancy-bg {
274
- position: absolute;
275
- padding: 0;
276
- margin: 0;
277
- border: 0;
278
- width: 20px;
279
- height: 20px;
280
- z-index: 1001;
281
- }
282
-
283
- #fancy-bg-n {
284
- top: -20px;
285
- left: 0;
286
- width: 100%;
287
- background-image: url('fancybox-x.png');
288
- }
289
-
290
- #fancy-bg-ne {
291
- top: -20px;
292
- right: -20px;
293
- background-image: url('fancybox.png');
294
- background-position: -40px -162px;
295
- }
296
-
297
- #fancy-bg-e {
298
- top: 0;
299
- right: -20px;
300
- height: 100%;
301
- background-image: url('fancybox-y.png');
302
- background-position: -20px 0px;
303
- }
304
-
305
- #fancy-bg-se {
306
- bottom: -20px;
307
- right: -20px;
308
- background-image: url('fancybox.png');
309
- background-position: -40px -182px;
310
- }
311
-
312
- #fancy-bg-s {
313
- bottom: -20px;
314
- left: 0;
315
- width: 100%;
316
- background-image: url('fancybox-x.png');
317
- background-position: 0px -20px;
318
- }
319
-
320
- #fancy-bg-sw {
321
- bottom: -20px;
322
- left: -20px;
323
- background-image: url('fancybox.png');
324
- background-position: -40px -142px;
325
- }
326
-
327
- #fancy-bg-w {
328
- top: 0;
329
- left: -20px;
330
- height: 100%;
331
- background-image: url('fancybox-y.png');
332
- }
333
-
334
- #fancy-bg-nw {
335
- top: -20px;
336
- left: -20px;
337
- background-image: url('fancybox.png');
338
- background-position: -40px -122px;
339
- }
340
-
341
- /* IE */
342
-
343
- #fancybox-loading.fancybox-ie div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_loading.png', sizingMethod='scale'); }
344
- .fancybox-ie #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_close.png', sizingMethod='scale'); }
345
-
346
- .fancybox-ie #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; }
347
- .fancybox-ie #fancybox-title-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_left.png', sizingMethod='scale'); }
348
- .fancybox-ie #fancybox-title-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_main.png', sizingMethod='scale'); }
349
- .fancybox-ie #fancybox-title-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_right.png', sizingMethod='scale'); }
350
-
351
- .fancybox-ie #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_left.png', sizingMethod='scale'); }
352
- .fancybox-ie #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_right.png', sizingMethod='scale'); }
353
-
354
- .fancybox-ie .fancy-bg { background: transparent !important; }
355
-
356
- .fancybox-ie #fancy-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); }
357
- .fancybox-ie #fancy-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }
358
- .fancybox-ie #fancy-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); }
359
- .fancybox-ie #fancy-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); }
360
- .fancybox-ie #fancy-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); }
361
- .fancybox-ie #fancy-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }
362
- .fancybox-ie #fancy-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); }
363
- .fancybox-ie #fancy-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }