Commit bd5e53506f690aa70a8ad25cca0ad7c4e653700b
1 parent
c1509167
Exists in
wikilibras
Wikilibras initial commit
Controller, model, migrations, views, lib, assets
Showing
14 changed files
with
5123 additions
and
2 deletions
Show diff stats
@@ -0,0 +1,12 @@ | @@ -0,0 +1,12 @@ | ||
1 | +class Wikilibras::SignsController < InheritedResources::Base | ||
2 | + actions :index, :new | ||
3 | + | ||
4 | + before_filter :authenticate_user! | ||
5 | + | ||
6 | + def create | ||
7 | + controller = Wikilibras::Controller.new(params[:sign]) | ||
8 | + controller.process() | ||
9 | + | ||
10 | + redirect_to @sign, notice: 'Edição criada com sucesso.' | ||
11 | + end | ||
12 | +end |
@@ -0,0 +1,15 @@ | @@ -0,0 +1,15 @@ | ||
1 | +# == Schema Information | ||
2 | +# | ||
3 | +# Table name: wikilibras_signs | ||
4 | +# | ||
5 | +# id :integer not null, primary key | ||
6 | +# name :string(255) | ||
7 | +# video_filename :string(255) | ||
8 | +# owner_id :integer | ||
9 | +# created_at :datetime | ||
10 | +# updated_at :datetime | ||
11 | +# | ||
12 | + | ||
13 | +class Wikilibras::Sign < ActiveRecord::Base | ||
14 | + | ||
15 | +end |
config/application.rb
@@ -19,6 +19,8 @@ module Vlibras | @@ -19,6 +19,8 @@ module Vlibras | ||
19 | # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. | 19 | # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. |
20 | # config.time_zone = 'Central Time (US & Canada)' | 20 | # config.time_zone = 'Central Time (US & Canada)' |
21 | 21 | ||
22 | + config.assets.paths << Rails.root.join("vendor", "assets", "flash") | ||
23 | + | ||
22 | # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. | 24 | # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. |
23 | # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] | 25 | # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] |
24 | config.i18n.enforce_available_locales = false | 26 | config.i18n.enforce_available_locales = false |
config/initializers/assets.rb
@@ -5,5 +5,11 @@ Rails.application.config.assets.precompile += %w( v_libras/requests/workflow.js | @@ -5,5 +5,11 @@ Rails.application.config.assets.precompile += %w( v_libras/requests/workflow.js | ||
5 | Rails.application.config.assets.precompile += %w( v_libras/videos/index.js ) | 5 | Rails.application.config.assets.precompile += %w( v_libras/videos/index.js ) |
6 | Rails.application.config.assets.precompile += %w( jquery.steps.js ) | 6 | Rails.application.config.assets.precompile += %w( jquery.steps.js ) |
7 | 7 | ||
8 | +Rails.application.config.assets.precompile += %w( UnityObject2.js ) | ||
9 | +Rails.application.config.assets.precompile += %w( handlebars.runtime-v1.3.0.js ) | ||
10 | +Rails.application.config.assets.precompile += %w( wikilibras.js ) | ||
11 | +Rails.application.config.assets.precompile += %w( wikilibras.css ) | ||
12 | + | ||
8 | Rails.application.config.assets.precompile += %w( v_libras/requests.css ) | 13 | Rails.application.config.assets.precompile += %w( v_libras/requests.css ) |
9 | -Rails.application.config.assets.precompile += %w( jquery.steps.css ) | ||
10 | \ No newline at end of file | 14 | \ No newline at end of file |
15 | +Rails.application.config.assets.precompile += %w( jquery.steps.css ) | ||
16 | +Rails.application.config.assets.precompile += %w( video-js.swf ) |
config/routes.rb
@@ -18,8 +18,14 @@ Rails.application.routes.draw do | @@ -18,8 +18,14 @@ Rails.application.routes.draw do | ||
18 | end | 18 | end |
19 | 19 | ||
20 | resources :videos, :only => [ :index, :show, :destroy ] | 20 | resources :videos, :only => [ :index, :show, :destroy ] |
21 | + end | ||
21 | 22 | ||
22 | - | 23 | + namespace :wikilibras do |
24 | + resources :signs do | ||
25 | + # Wikilibras plugins makes a POST request to itself. This redirects it to create method | ||
26 | + post 'new', on: :collection, to: 'signs#create' | ||
27 | + end | ||
23 | end | 28 | end |
24 | 29 | ||
30 | + | ||
25 | end | 31 | end |
No preview for this file type
@@ -0,0 +1,1693 @@ | @@ -0,0 +1,1693 @@ | ||
1 | +/** | ||
2 | + * @fileOverview | ||
3 | + * Defines UnityObject2 | ||
4 | + */ | ||
5 | + | ||
6 | + | ||
7 | +//TODO: No need to polute the global space, just transfer this control to a 'static' variable insite unityObject! | ||
8 | +/** | ||
9 | + * @namespace | ||
10 | + */ | ||
11 | +//var unity = unity || {}; | ||
12 | +// We store all unityObject instances in a global scope, needed for IE firstFrameCallback and other internal tasks. | ||
13 | +//unity.instances = []; | ||
14 | +//unity.instanceNumber = 0; | ||
15 | + | ||
16 | +/** | ||
17 | + * Object expected by the Java Installer. We can move those to UnityObject2 if we update the java Installer. | ||
18 | + */ | ||
19 | +var unityObject = { | ||
20 | + /** | ||
21 | + * Callback used bt the Java installer to notify the Install Complete. | ||
22 | + * @private | ||
23 | + * @param {String} id | ||
24 | + * @param {bool} success | ||
25 | + * @param {String} errormessage | ||
26 | + */ | ||
27 | + javaInstallDone : function (id, success, errormessage) { | ||
28 | + | ||
29 | + var instanceId = parseInt(id.substring(id.lastIndexOf('_') + 1), 10); | ||
30 | + | ||
31 | + if (!isNaN(instanceId)) { | ||
32 | + | ||
33 | + // javaInstallDoneCallback must not be called directly because it deadlocks google chrome | ||
34 | + setTimeout(function () { | ||
35 | + | ||
36 | + UnityObject2.instances[instanceId].javaInstallDoneCallback(id, success, errormessage); | ||
37 | + }, 10); | ||
38 | + } | ||
39 | + } | ||
40 | +}; | ||
41 | + | ||
42 | + | ||
43 | +/** | ||
44 | + * @class | ||
45 | + * @constructor | ||
46 | + */ | ||
47 | +var UnityObject2 = function (config) { | ||
48 | + | ||
49 | + /** @private */ | ||
50 | + var logHistory = [], | ||
51 | + win = window, | ||
52 | + doc = document, | ||
53 | + nav = navigator, | ||
54 | + instanceNumber = null, | ||
55 | + //domLoaded = false, | ||
56 | + //domLoadEvents = [], | ||
57 | + embeddedObjects = [], //Could be removed? | ||
58 | + //listeners = [], | ||
59 | + //styleSheet = null, | ||
60 | + //styleSheetMedia = null, | ||
61 | + //autoHideShow = true, | ||
62 | + //fullSizeMissing = true, | ||
63 | + useSSL = (document.location.protocol == 'https:'), //This will turn off enableUnityAnalytics, since enableUnityAnalytics don't have a https version. | ||
64 | + baseDomain = useSSL ? "https://ssl-webplayer.unity3d.com/" : "http://webplayer.unity3d.com/", | ||
65 | + triedJavaCookie = "_unity_triedjava", | ||
66 | + triedJavaInstall = _getCookie(triedJavaCookie), | ||
67 | + triedClickOnceCookie = "_unity_triedclickonce", | ||
68 | + triedClickOnce = _getCookie(triedClickOnceCookie), | ||
69 | + progressCallback = false, | ||
70 | + applets = [], | ||
71 | + //addedClickOnce = false, | ||
72 | + googleAnalyticsLoaded = false, | ||
73 | + googleAnalyticsCallback = null, | ||
74 | + latestStatus = null, | ||
75 | + lastType = null, | ||
76 | + //beginCallback = [], | ||
77 | + //preCallback = [], | ||
78 | + imagesToWaitFor = [], | ||
79 | + //referrer = null, | ||
80 | + pluginStatus = null, | ||
81 | + pluginStatusHistory = [], | ||
82 | + installProcessStarted = false, //not used anymore? | ||
83 | + kInstalled = "installed", | ||
84 | + kMissing = "missing", | ||
85 | + kBroken = "broken", | ||
86 | + kUnsupported = "unsupported", | ||
87 | + kReady = "ready", //not used anymore? | ||
88 | + kStart = "start", | ||
89 | + kError = "error", | ||
90 | + kFirst = "first", | ||
91 | + //kStandard = "standard", | ||
92 | + kJava = "java", | ||
93 | + kClickOnce = "clickonce", //not used anymore? | ||
94 | + wasMissing = false, //identifies if this is a install attempt, or if the plugin was already installed | ||
95 | + unityObject = null, //The <embed> or <object> for the webplayer. This can be used for webPlayer communication. | ||
96 | + //kApplet = "_applet", | ||
97 | + //kBanner = "_banner", | ||
98 | + | ||
99 | + cfg = { | ||
100 | + pluginName : "Unity Player", | ||
101 | + pluginMimeType : "application/vnd.unity", | ||
102 | + baseDownloadUrl : baseDomain + "download_webplayer-3.x/", | ||
103 | + fullInstall : false, | ||
104 | + autoInstall : false, | ||
105 | + enableJava : true, | ||
106 | + enableJVMPreloading : false, | ||
107 | + enableClickOnce : true, | ||
108 | + enableUnityAnalytics : false, | ||
109 | + enableGoogleAnalytics : true, | ||
110 | + params : {}, | ||
111 | + attributes : {}, | ||
112 | + referrer : null, | ||
113 | + debugLevel : 0 | ||
114 | + }; | ||
115 | + | ||
116 | + // Merge in the given configuration and override defaults. | ||
117 | + cfg = jQuery.extend(true, cfg, config); | ||
118 | + | ||
119 | + if (cfg.referrer === "") { | ||
120 | + cfg.referrer = null; | ||
121 | + } | ||
122 | + //enableUnityAnalytics does not support SSL yet. | ||
123 | + if (useSSL) { | ||
124 | + cfg.enableUnityAnalytics = false; | ||
125 | + } | ||
126 | + | ||
127 | + /** | ||
128 | + * Get cookie value | ||
129 | + * @private | ||
130 | + * @param {String} name The param name | ||
131 | + * @return string or false if non-existing. | ||
132 | + */ | ||
133 | + function _getCookie(name) { | ||
134 | + | ||
135 | + var e = new RegExp(escape(name) + "=([^;]+)"); | ||
136 | + | ||
137 | + if (e.test(doc.cookie + ";")) { | ||
138 | + | ||
139 | + e.exec(doc.cookie + ";"); | ||
140 | + return RegExp.$1; | ||
141 | + } | ||
142 | + | ||
143 | + return false; | ||
144 | + } | ||
145 | + | ||
146 | + /** | ||
147 | + * Sets session cookie | ||
148 | + * @private | ||
149 | + */ | ||
150 | + function _setSessionCookie(name, value) { | ||
151 | + | ||
152 | + document.cookie = escape(name) + "=" + escape(value) + "; path=/"; | ||
153 | + } | ||
154 | + | ||
155 | + /** | ||
156 | + * Converts unity version to number (used for version comparison) | ||
157 | + * @private | ||
158 | + */ | ||
159 | + function _getNumericUnityVersion(version) { | ||
160 | + | ||
161 | + var result = 0, | ||
162 | + major, | ||
163 | + minor, | ||
164 | + fix, | ||
165 | + type, | ||
166 | + release; | ||
167 | + | ||
168 | + if (version) { | ||
169 | + | ||
170 | + var m = version.toLowerCase().match(/^(\d+)(?:\.(\d+)(?:\.(\d+)([dabfr])?(\d+)?)?)?$/); | ||
171 | + | ||
172 | + if (m && m[1]) { | ||
173 | + | ||
174 | + major = m[1]; | ||
175 | + minor = m[2] ? m[2] : 0; | ||
176 | + fix = m[3] ? m[3] : 0; | ||
177 | + type = m[4] ? m[4] : 'r'; | ||
178 | + release = m[5] ? m[5] : 0; | ||
179 | + result |= ((major / 10) % 10) << 28; | ||
180 | + result |= (major % 10) << 24; | ||
181 | + result |= (minor % 10) << 20; | ||
182 | + result |= (fix % 10) << 16; | ||
183 | + result |= {d: 2 << 12, a: 4 << 12, b: 6 << 12, f: 8 << 12, r: 8 << 12}[type]; | ||
184 | + result |= ((release / 100) % 10) << 8; | ||
185 | + result |= ((release / 10) % 10) << 4; | ||
186 | + result |= (release % 10); | ||
187 | + } | ||
188 | + } | ||
189 | + | ||
190 | + return result; | ||
191 | + } | ||
192 | + | ||
193 | + /** | ||
194 | + * Gets plugin and unity versions (non-ie) | ||
195 | + * @private | ||
196 | + */ | ||
197 | + function _getPluginVersion(callback, versions) { | ||
198 | + | ||
199 | + var b = doc.getElementsByTagName("body")[0]; | ||
200 | + var ue = doc.createElement("object"); | ||
201 | + var i = 0; | ||
202 | + | ||
203 | + if (b && ue) { | ||
204 | + ue.setAttribute("type", cfg.pluginMimeType); | ||
205 | + ue.style.visibility = "hidden"; | ||
206 | + b.appendChild(ue); | ||
207 | + var count = 0; | ||
208 | + | ||
209 | + (function () { | ||
210 | + if (typeof ue.GetPluginVersion === "undefined") { | ||
211 | + | ||
212 | + if (count++ < 10) { | ||
213 | + | ||
214 | + setTimeout(arguments.callee, 10); | ||
215 | + } else { | ||
216 | + | ||
217 | + b.removeChild(ue); | ||
218 | + callback(null); | ||
219 | + } | ||
220 | + } else { | ||
221 | + | ||
222 | + var v = {}; | ||
223 | + | ||
224 | + if (versions) { | ||
225 | + | ||
226 | + for (i = 0; i < versions.length; ++i) { | ||
227 | + | ||
228 | + v[versions[i]] = ue.GetUnityVersion(versions[i]); | ||
229 | + } | ||
230 | + } | ||
231 | + | ||
232 | + v.plugin = ue.GetPluginVersion(); | ||
233 | + b.removeChild(ue); | ||
234 | + callback(v); | ||
235 | + } | ||
236 | + })(); | ||
237 | + | ||
238 | + } else { | ||
239 | + | ||
240 | + callback(null); | ||
241 | + } | ||
242 | + } | ||
243 | + | ||
244 | + /** | ||
245 | + * Retrieves windows installer name | ||
246 | + * @private | ||
247 | + */ | ||
248 | + function _getWinInstall() { | ||
249 | + var url = ""; | ||
250 | + | ||
251 | + if (ua.x64) { | ||
252 | + url = cfg.fullInstall ? "UnityWebPlayerFull64.exe" : "UnityWebPlayer64.exe"; | ||
253 | + } else { | ||
254 | + url = cfg.fullInstall ? "UnityWebPlayerFull.exe" : "UnityWebPlayer.exe"; | ||
255 | + } | ||
256 | + | ||
257 | + if (cfg.referrer !== null) { | ||
258 | + | ||
259 | + url += "?referrer=" + cfg.referrer; | ||
260 | + } | ||
261 | + return url; | ||
262 | + } | ||
263 | + | ||
264 | + /** | ||
265 | + * Retrieves mac plugin package name | ||
266 | + * @private | ||
267 | + */ | ||
268 | + function _getOSXInstall() { | ||
269 | + | ||
270 | + var url = "UnityPlayer.plugin.zip"; | ||
271 | + | ||
272 | + if (cfg.referrer != null) { | ||
273 | + | ||
274 | + url += "?referrer=" + cfg.referrer; | ||
275 | + } | ||
276 | + return url; | ||
277 | + } | ||
278 | + | ||
279 | + /** | ||
280 | + * retrieves installer name | ||
281 | + * @private | ||
282 | + */ | ||
283 | + function _getInstaller() { | ||
284 | + | ||
285 | + return cfg.baseDownloadUrl + (ua.win ? _getWinInstall() : _getOSXInstall() ); | ||
286 | + } | ||
287 | + | ||
288 | + /** | ||
289 | + * sets plugin status | ||
290 | + * @private | ||
291 | + */ | ||
292 | + function _setPluginStatus(status, type, data, url) { | ||
293 | + | ||
294 | + if (status === kMissing) { | ||
295 | + wasMissing = true; | ||
296 | + } | ||
297 | + | ||
298 | + // debug('setPluginStatus() status:', status, 'type:', type, 'data:', data, 'url:', url); | ||
299 | + | ||
300 | + // only report to analytics the first time a status occurs. | ||
301 | + if ( jQuery.inArray(status, pluginStatusHistory) === -1 ) { | ||
302 | + | ||
303 | + //Only send analytics for plugins installs. Do not send if plugin is already installed. | ||
304 | + if (wasMissing) { | ||
305 | + _an.send(status, type, data, url); | ||
306 | + } | ||
307 | + pluginStatusHistory.push(status); | ||
308 | + } | ||
309 | + | ||
310 | + pluginStatus = status; | ||
311 | + } | ||
312 | + | ||
313 | + | ||
314 | + /** | ||
315 | + * Contains browser and platform properties | ||
316 | + * @private | ||
317 | + */ | ||
318 | + var ua = function () { | ||
319 | + | ||
320 | + var a = nav.userAgent, p = nav.platform; | ||
321 | + var chrome = /chrome/i.test(a); | ||
322 | + | ||
323 | + //starting from IE 11, IE is using a different UserAgent. | ||
324 | + var ie = false; | ||
325 | + if (/msie/i.test(a)){ | ||
326 | + ie = parseFloat(a.replace(/^.*msie ([0-9]+(\.[0-9]+)?).*$/i, "$1")); | ||
327 | + } else if (/Trident/i.test(a)) { | ||
328 | + ie = parseFloat(a.replace(/^.*rv:([0-9]+(\.[0-9]+)?).*$/i, "$1")); | ||
329 | + } | ||
330 | + var ua = { | ||
331 | + w3 : typeof doc.getElementById != "undefined" && typeof doc.getElementsByTagName != "undefined" && typeof doc.createElement != "undefined", | ||
332 | + win : p ? /win/i.test(p) : /win/i.test(a), | ||
333 | + mac : p ? /mac/i.test(p) : /mac/i.test(a), | ||
334 | + ie : ie, | ||
335 | + ff : /firefox/i.test(a), | ||
336 | + op : /opera/i.test(a), | ||
337 | + ch : chrome, | ||
338 | + ch_v : /chrome/i.test(a) ? parseFloat(a.replace(/^.*chrome\/(\d+(\.\d+)?).*$/i, "$1")) : false, | ||
339 | + sf : /safari/i.test(a) && !chrome, | ||
340 | + wk : /webkit/i.test(a) ? parseFloat(a.replace(/^.*webkit\/(\d+(\.\d+)?).*$/i, "$1")) : false, | ||
341 | + x64 : /win64/i.test(a) && /x64/i.test(a), | ||
342 | + moz : /mozilla/i.test(a) ? parseFloat(a.replace(/^.*mozilla\/([0-9]+(\.[0-9]+)?).*$/i, "$1")) : 0, | ||
343 | + mobile: /ipad/i.test(p) || /iphone/i.test(p) || /ipod/i.test(p) || /android/i.test(a) || /windows phone/i.test(a) | ||
344 | + }; | ||
345 | + | ||
346 | + ua.clientBrand = ua.ch ? 'ch' : ua.ff ? 'ff' : ua.sf ? 'sf' : ua.ie ? 'ie' : ua.op ? 'op' : '??'; | ||
347 | + ua.clientPlatform = ua.win ? 'win' : ua.mac ? 'mac' : '???'; | ||
348 | + | ||
349 | + // get base url | ||
350 | + var s = doc.getElementsByTagName("script"); | ||
351 | + | ||
352 | + for (var i = 0; i < s.length; ++i) { | ||
353 | + | ||
354 | + var m = s[i].src.match(/^(.*)3\.0\/uo\/UnityObject2\.js$/i); | ||
355 | + | ||
356 | + if (m) { | ||
357 | + | ||
358 | + cfg.baseDownloadUrl = m[1]; | ||
359 | + break; | ||
360 | + } | ||
361 | + } | ||
362 | + | ||
363 | + /** | ||
364 | + * compares two versions | ||
365 | + * @private | ||
366 | + */ | ||
367 | + function _compareVersions(v1, v2) { | ||
368 | + | ||
369 | + for (var i = 0; i < Math.max(v1.length, v2.length); ++i) { | ||
370 | + | ||
371 | + var n1 = (i < v1.length) && v1[i] ? new Number(v1[i]) : 0; | ||
372 | + var n2 = (i < v2.length) && v2[i] ? new Number(v2[i]) : 0; | ||
373 | + if (n1 < n2) return -1; | ||
374 | + if (n1 > n2) return 1; | ||
375 | + } | ||
376 | + | ||
377 | + return 0; | ||
378 | + }; | ||
379 | + | ||
380 | + /** | ||
381 | + * detect java | ||
382 | + */ | ||
383 | + ua.java = function () { | ||
384 | + | ||
385 | + if (nav.javaEnabled()) { | ||
386 | + | ||
387 | + var wj = (ua.win && ua.ff); | ||
388 | + var mj = false;//(ua.mac && (ua.ff || ua.ch || ua.sf)); | ||
389 | + | ||
390 | + if (wj || mj) { | ||
391 | + | ||
392 | + if (typeof nav.mimeTypes != "undefined") { | ||
393 | + | ||
394 | + var rv = wj ? [1, 6, 0, 12] : [1, 4, 2, 0]; | ||
395 | + | ||
396 | + for (var i = 0; i < nav.mimeTypes.length; ++i) { | ||
397 | + | ||
398 | + if (nav.mimeTypes[i].enabledPlugin) { | ||
399 | + | ||
400 | + var m = nav.mimeTypes[i].type.match(/^application\/x-java-applet;(?:jpi-)?version=(\d+)(?:\.(\d+)(?:\.(\d+)(?:_(\d+))?)?)?$/); | ||
401 | + | ||
402 | + if (m != null) { | ||
403 | + | ||
404 | + if (_compareVersions(rv, m.slice(1)) <= 0) { | ||
405 | + | ||
406 | + return true; | ||
407 | + } | ||
408 | + } | ||
409 | + } | ||
410 | + } | ||
411 | + } | ||
412 | + } else if (ua.win && ua.ie) { | ||
413 | + | ||
414 | + if (typeof ActiveXObject != "undefined") { | ||
415 | + | ||
416 | + /** | ||
417 | + * ActiveX Test | ||
418 | + */ | ||
419 | + function _axTest(v) { | ||
420 | + | ||
421 | + try { | ||
422 | + | ||
423 | + return new ActiveXObject("JavaWebStart.isInstalled." + v + ".0") != null; | ||
424 | + } | ||
425 | + catch (ex) { | ||
426 | + | ||
427 | + return false; | ||
428 | + } | ||
429 | + } | ||
430 | + | ||
431 | + /** | ||
432 | + * ActiveX Test 2 | ||
433 | + */ | ||
434 | + function _axTest2(v) { | ||
435 | + | ||
436 | + try { | ||
437 | + | ||
438 | + return new ActiveXObject("JavaPlugin.160_" + v) != null; | ||
439 | + } catch (ex) { | ||
440 | + | ||
441 | + return false; | ||
442 | + } | ||
443 | + } | ||
444 | + | ||
445 | + if (_axTest("1.7.0")) { | ||
446 | + | ||
447 | + return true; | ||
448 | + } | ||
449 | + | ||
450 | + if (ua.ie >= 8) { | ||
451 | + | ||
452 | + if (_axTest("1.6.0")) { | ||
453 | + | ||
454 | + // make sure it's 1.6.0.12 or newer. increment 50 to a larger value if 1.6.0.50 is released | ||
455 | + for (var i = 12; i <= 50; ++i) { | ||
456 | + | ||
457 | + if (_axTest2(i)) { | ||
458 | + | ||
459 | + if (ua.ie == 9 && ua.moz == 5 && i < 24) { | ||
460 | + // when IE9 is not in compatibility mode require at least | ||
461 | + // Java 1.6.0.24: http://support.microsoft.com/kb/2506617 | ||
462 | + continue; | ||
463 | + } else { | ||
464 | + | ||
465 | + return true; | ||
466 | + } | ||
467 | + } | ||
468 | + } | ||
469 | + | ||
470 | + return false; | ||
471 | + } | ||
472 | + } else { | ||
473 | + | ||
474 | + return _axTest("1.6.0") || _axTest("1.5.0") || _axTest("1.4.2"); | ||
475 | + } | ||
476 | + } | ||
477 | + } | ||
478 | + } | ||
479 | + | ||
480 | + return false; | ||
481 | + }(); | ||
482 | + | ||
483 | + // detect clickonce | ||
484 | + ua.co = function () { | ||
485 | + | ||
486 | + if (ua.win && ua.ie) { | ||
487 | + var av = a.match(/(\.NET CLR [0-9.]+)|(\.NET[0-9.]+)/g); | ||
488 | + if (av != null) { | ||
489 | + var rv = [3, 5, 0]; | ||
490 | + for (var i = 0; i < av.length; ++i) { | ||
491 | + var versionNumbers = av[i].match(/[0-9.]{2,}/g)[0].split("."); | ||
492 | + if (_compareVersions(rv, versionNumbers) <= 0) { | ||
493 | + return true; | ||
494 | + } | ||
495 | + } | ||
496 | + } | ||
497 | + } | ||
498 | + return false; | ||
499 | + | ||
500 | + }(); | ||
501 | + | ||
502 | + return ua; | ||
503 | + }(); | ||
504 | + | ||
505 | + | ||
506 | + /** | ||
507 | + * analytics | ||
508 | + * @private | ||
509 | + */ | ||
510 | + var _an = function () { | ||
511 | + var uid = function () { | ||
512 | + | ||
513 | + var now = new Date(); | ||
514 | + var utc = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDay(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds(), now.getUTCMilliseconds()); | ||
515 | + return utc.toString(16) + _getRandomInt().toString(16); | ||
516 | + }(); | ||
517 | + var seq = 0; | ||
518 | + var _ugaq = window["_gaq"] = ( window["_gaq"] || [] ); | ||
519 | + | ||
520 | + _setUpAnalytics(); | ||
521 | + | ||
522 | + /** | ||
523 | + * generates random integer number | ||
524 | + * @private | ||
525 | + */ | ||
526 | + function _getRandomInt() { | ||
527 | + | ||
528 | + return Math.floor(Math.random() * 2147483647); | ||
529 | + } | ||
530 | + | ||
531 | + /** | ||
532 | + * Checks if there is a need to load analytics, by checking the existance of a _gaq object | ||
533 | + */ | ||
534 | + function _setUpAnalytics() { | ||
535 | + | ||
536 | + var gaUrl = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | ||
537 | + var ss = doc.getElementsByTagName("script"); | ||
538 | + var googleAnalyticsLoaded = false; | ||
539 | + for (var i = 0; i < ss.length; ++i) { | ||
540 | + | ||
541 | + if (ss[i].src && ss[i].src.toLowerCase() == gaUrl.toLowerCase()) { | ||
542 | + | ||
543 | + googleAnalyticsLoaded = true; | ||
544 | + break; | ||
545 | + } | ||
546 | + } | ||
547 | + | ||
548 | + if (!googleAnalyticsLoaded) { | ||
549 | + var ga = doc.createElement("script"); | ||
550 | + ga.type = "text/javascript"; | ||
551 | + ga.async = true; | ||
552 | + ga.src = gaUrl; | ||
553 | + var s = document.getElementsByTagName("script")[0]; | ||
554 | + s.parentNode.insertBefore(ga, s); | ||
555 | + } | ||
556 | + | ||
557 | + var gaAccount = (cfg.debugLevel === 0) ? 'UA-16068464-16' : 'UA-16068464-17'; | ||
558 | + | ||
559 | + _ugaq.push(["unity._setDomainName", "none"]); | ||
560 | + _ugaq.push(["unity._setAllowLinker", true]); | ||
561 | + _ugaq.push(["unity._setReferrerOverride", ' '+this.location.toString()]); | ||
562 | + | ||
563 | + _ugaq.push(["unity._setAccount", gaAccount]); | ||
564 | + // $(GoogleRevisionPlaceholder) | ||
565 | + } | ||
566 | + | ||
567 | + /** | ||
568 | + * sends analytics data to unity | ||
569 | + * @private | ||
570 | + */ | ||
571 | + function _sendUnityAnalytics(event, type, data, callback) { | ||
572 | + | ||
573 | + if (!cfg.enableUnityAnalytics) { | ||
574 | + | ||
575 | + if (callback) { | ||
576 | + | ||
577 | + callback(); | ||
578 | + } | ||
579 | + | ||
580 | + return; | ||
581 | + } | ||
582 | + | ||
583 | + var url = "http://unityanalyticscapture.appspot.com/event?u=" + encodeURIComponent(uid) + "&s=" + encodeURIComponent(seq) + "&e=" + encodeURIComponent(event); | ||
584 | + // $(UnityRevisionPlaceholder) | ||
585 | + | ||
586 | + if (cfg.referrer !== null) { | ||
587 | + | ||
588 | + url += "?r=" + cfg.referrer; | ||
589 | + } | ||
590 | + | ||
591 | + if (type) { | ||
592 | + | ||
593 | + url += "&t=" + encodeURIComponent(type); | ||
594 | + } | ||
595 | + | ||
596 | + if (data) { | ||
597 | + | ||
598 | + url += "&d=" + encodeURIComponent(data); | ||
599 | + } | ||
600 | + | ||
601 | + var img = new Image(); | ||
602 | + | ||
603 | + if (callback) { | ||
604 | + | ||
605 | + img.onload = img.onerror = callback; | ||
606 | + } | ||
607 | + | ||
608 | + img.src = url; | ||
609 | + } | ||
610 | + | ||
611 | + /** | ||
612 | + * sends analytics data to google | ||
613 | + * @private | ||
614 | + */ | ||
615 | + function _sendGoogleAnalytics(event, type, data, callback) { | ||
616 | + | ||
617 | + if (!cfg.enableGoogleAnalytics) { | ||
618 | + | ||
619 | + if (callback) { | ||
620 | + | ||
621 | + callback(); | ||
622 | + } | ||
623 | + | ||
624 | + return; | ||
625 | + } | ||
626 | + | ||
627 | + var url = "/webplayer/install/" + event; | ||
628 | + var join = "?"; | ||
629 | + | ||
630 | + if (type) { | ||
631 | + | ||
632 | + url += join + "t=" + encodeURIComponent(type); | ||
633 | + join = "&"; | ||
634 | + } | ||
635 | + | ||
636 | + if (data) { | ||
637 | + | ||
638 | + url += join + "d=" + encodeURIComponent(data); | ||
639 | + join = "&"; | ||
640 | + } | ||
641 | + | ||
642 | + if (callback) { | ||
643 | + | ||
644 | + _ugaq.push(function () { | ||
645 | + setTimeout(callback,1000); | ||
646 | + //this.googleAnalyticsCallback = callback; | ||
647 | + }); | ||
648 | + } | ||
649 | + | ||
650 | + //try to shorten the URL to fit into customVariable | ||
651 | + //it will try to replace the early directories to .. | ||
652 | + var gameUrl = cfg.src; | ||
653 | + if (gameUrl.length > 40) { | ||
654 | + gameUrl = gameUrl.replace("http://",""); | ||
655 | + var paths = gameUrl.split("/"); | ||
656 | + | ||
657 | + var gameUrlFirst = paths.shift(); | ||
658 | + var gameUrlLast = paths.pop(); | ||
659 | + gameUrl = gameUrlFirst + "/../"+ gameUrlLast; | ||
660 | + | ||
661 | + while(gameUrl.length < 40 && paths.length > 0) { | ||
662 | + var nextpath = paths.pop(); | ||
663 | + if(gameUrl.length + nextpath.length + 5 < 40) { | ||
664 | + gameUrlLast = nextpath + "/" + gameUrlLast; | ||
665 | + } else { | ||
666 | + gameUrlLast = "../" + gameUrlLast; | ||
667 | + } | ||
668 | + gameUrl = gameUrlFirst + "/../"+ gameUrlLast; | ||
669 | + } | ||
670 | + } | ||
671 | + _ugaq.push(['unity._setCustomVar', | ||
672 | + 2, // This custom var is set to slot #1. Required parameter. | ||
673 | + 'GameURL', // The name acts as a kind of category for the user activity. Required parameter. | ||
674 | + gameUrl, // This value of the custom variable. Required parameter. | ||
675 | + 3 // Sets the scope to page-level. Optional parameter. | ||
676 | + ]); | ||
677 | + _ugaq.push(['unity._setCustomVar', | ||
678 | + 1, // This custom var is set to slot #1. Required parameter. | ||
679 | + 'UnityObjectVersion', // The name acts as a kind of category for the user activity. Required parameter. | ||
680 | + "2", // This value of the custom variable. Required parameter. | ||
681 | + 3 // Sets the scope to page-level. Optional parameter. | ||
682 | + ]); | ||
683 | + if (type) { | ||
684 | + _ugaq.push(['unity._setCustomVar', | ||
685 | + 3, // This custom var is set to slot #1. Required parameter. | ||
686 | + 'installMethod', // The name acts as a kind of category for the user activity. Required parameter. | ||
687 | + type, // This value of the custom variable. Required parameter. | ||
688 | + 3 // Sets the scope to page-level. Optional parameter. | ||
689 | + ]); | ||
690 | + } | ||
691 | + | ||
692 | + _ugaq.push(["unity._trackPageview", url]); | ||
693 | + } | ||
694 | + | ||
695 | + return { | ||
696 | + /** | ||
697 | + * sends analytics data. optionally opens url once data has been sent | ||
698 | + * @public | ||
699 | + */ | ||
700 | + send : function (event, type, data, url) { | ||
701 | + | ||
702 | + if (cfg.enableUnityAnalytics || cfg.enableGoogleAnalytics) { | ||
703 | + | ||
704 | + debug('Analytics SEND', event, type, data, url); | ||
705 | + } | ||
706 | + | ||
707 | + ++seq; | ||
708 | + var count = 2; | ||
709 | + | ||
710 | + var callback = function () { | ||
711 | + | ||
712 | + if (0 == --count) { | ||
713 | + | ||
714 | + googleAnalyticsCallback = null; | ||
715 | + window.location = url; | ||
716 | + } | ||
717 | + } | ||
718 | + | ||
719 | + if (data === null || data === undefined) { | ||
720 | + data = ""; | ||
721 | + } | ||
722 | + | ||
723 | + _sendUnityAnalytics(event, type, data, url ? callback : null); | ||
724 | + _sendGoogleAnalytics(event, type, data, url ? callback : null); | ||
725 | + } | ||
726 | + }; | ||
727 | + }(); | ||
728 | + | ||
729 | + | ||
730 | + | ||
731 | + | ||
732 | + | ||
733 | + /* Java Install - BEGIN */ | ||
734 | + | ||
735 | + /** | ||
736 | + * @private | ||
737 | + */ | ||
738 | + function _createObjectElement(attributes, params, elementToReplace) { | ||
739 | + | ||
740 | + var i, | ||
741 | + at, | ||
742 | + pt, | ||
743 | + ue, | ||
744 | + pe; | ||
745 | + | ||
746 | + if (ua.win && ua.ie) { | ||
747 | + | ||
748 | + at = ""; | ||
749 | + | ||
750 | + for (i in attributes) { | ||
751 | + | ||
752 | + at += ' ' + i + '="' + attributes[i] + '"'; | ||
753 | + } | ||
754 | + | ||
755 | + pt = ""; | ||
756 | + | ||
757 | + for (i in params) { | ||
758 | + | ||
759 | + pt += '<param name="' + i + '" value="' + params[i] + '" />'; | ||
760 | + } | ||
761 | + | ||
762 | + elementToReplace.outerHTML = '<object' + at + '>' + pt + '</object>'; | ||
763 | + | ||
764 | + } else { | ||
765 | + | ||
766 | + ue = doc.createElement("object"); | ||
767 | + | ||
768 | + for (i in attributes) { | ||
769 | + | ||
770 | + ue.setAttribute(i, attributes[i]); | ||
771 | + } | ||
772 | + | ||
773 | + for (i in params) { | ||
774 | + | ||
775 | + pe = doc.createElement("param"); | ||
776 | + pe.name = i; | ||
777 | + pe.value = params[i]; | ||
778 | + ue.appendChild(pe); | ||
779 | + } | ||
780 | + | ||
781 | + elementToReplace.parentNode.replaceChild(ue, elementToReplace); | ||
782 | + } | ||
783 | + } | ||
784 | + | ||
785 | + /** | ||
786 | + * @private | ||
787 | + */ | ||
788 | + function _checkImage(img) { | ||
789 | + | ||
790 | + // img element not in the DOM yet | ||
791 | + if (typeof img == "undefined") { | ||
792 | + | ||
793 | + return false; | ||
794 | + } | ||
795 | + | ||
796 | + if (!img.complete) { | ||
797 | + | ||
798 | + return false; | ||
799 | + } | ||
800 | + | ||
801 | + // some browsers always return true in img.complete, for those | ||
802 | + // we can check naturalWidth | ||
803 | + if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) { | ||
804 | + | ||
805 | + return false; | ||
806 | + } | ||
807 | + | ||
808 | + // no other way of checking, assuming it is ok | ||
809 | + return true; | ||
810 | + } | ||
811 | + | ||
812 | + /** | ||
813 | + * @private | ||
814 | + */ | ||
815 | + function _preloadJVMWhenReady(id) { | ||
816 | + | ||
817 | + var needToWait = false; | ||
818 | + | ||
819 | + for (var i = 0; i < imagesToWaitFor.length; i++) { | ||
820 | + if (!imagesToWaitFor[i]) { | ||
821 | + continue; | ||
822 | + } | ||
823 | + var img = doc.images[imagesToWaitFor[i]]; | ||
824 | + if (!_checkImage(img)) { | ||
825 | + needToWait = true; | ||
826 | + } | ||
827 | + else { | ||
828 | + imagesToWaitFor[i] = null; | ||
829 | + } | ||
830 | + } | ||
831 | + if (needToWait) { | ||
832 | + // check again in 100ms | ||
833 | + setTimeout(arguments.callee, 100); | ||
834 | + } | ||
835 | + else { | ||
836 | + // preload after a small delay, to make sure | ||
837 | + // the images have actually rendered | ||
838 | + setTimeout(function () { | ||
839 | + _preloadJVM(id); | ||
840 | + }, 100); | ||
841 | + } | ||
842 | + } | ||
843 | + | ||
844 | + | ||
845 | + /** | ||
846 | + * preloads the JVM and the Java Plug-in | ||
847 | + * @private | ||
848 | + */ | ||
849 | + function _preloadJVM(id) { | ||
850 | + | ||
851 | + var re = doc.getElementById(id); | ||
852 | + | ||
853 | + if (!re) { | ||
854 | + | ||
855 | + re = doc.createElement("div"); | ||
856 | + var lastBodyElem = doc.body.lastChild; | ||
857 | + doc.body.insertBefore(re, lastBodyElem.nextSibling); | ||
858 | + } | ||
859 | + | ||
860 | + var codebase = cfg.baseDownloadUrl + "3.0/jws/"; | ||
861 | + | ||
862 | + var a = { | ||
863 | + id : id, | ||
864 | + type : "application/x-java-applet", | ||
865 | + code : "JVMPreloader", | ||
866 | + width : 1, | ||
867 | + height : 1, | ||
868 | + name : "JVM Preloader" | ||
869 | + }; | ||
870 | + | ||
871 | + var p = { | ||
872 | + context : id, | ||
873 | + codebase : codebase, | ||
874 | + classloader_cache : false, | ||
875 | + scriptable : true, | ||
876 | + mayscript : true | ||
877 | + }; | ||
878 | + | ||
879 | + _createObjectElement(a, p, re); | ||
880 | + jQuery('#' + id).show(); | ||
881 | + //setVisibility(id, true); | ||
882 | + } | ||
883 | + | ||
884 | + /** | ||
885 | + * launches java installer | ||
886 | + * @private | ||
887 | + */ | ||
888 | + function _doJavaInstall(id) { | ||
889 | + | ||
890 | + triedJavaInstall = true; | ||
891 | + _setSessionCookie(triedJavaCookie, triedJavaInstall); | ||
892 | + var re = doc.getElementById(id); | ||
893 | + var appletID = id + "_applet_" + instanceNumber; | ||
894 | + | ||
895 | + applets[appletID] = { | ||
896 | + attributes : cfg.attributes, | ||
897 | + params : cfg.params, | ||
898 | + callback : cfg.callback, | ||
899 | + broken : cfg.broken | ||
900 | + }; | ||
901 | + | ||
902 | + var applet = applets[appletID]; | ||
903 | + | ||
904 | + var a = { | ||
905 | + id : appletID, | ||
906 | + type : "application/x-java-applet", | ||
907 | + archive : cfg.baseDownloadUrl + "3.0/jws/UnityWebPlayer.jar", | ||
908 | + code : "UnityWebPlayer", | ||
909 | + width : 1, | ||
910 | + height : 1, | ||
911 | + name : "Unity Web Player" | ||
912 | + }; | ||
913 | + | ||
914 | + if (ua.win && ua.ff) { | ||
915 | + | ||
916 | + a["style"] = "visibility: hidden;"; | ||
917 | + } | ||
918 | + | ||
919 | + var p = { | ||
920 | + context : appletID, | ||
921 | + jnlp_href : cfg.baseDownloadUrl + "3.0/jws/UnityWebPlayer.jnlp", | ||
922 | + classloader_cache : false, | ||
923 | + installer : _getInstaller(), | ||
924 | + image : baseDomain + "installation/unitylogo.png", | ||
925 | + centerimage : true, | ||
926 | + boxborder : false, | ||
927 | + scriptable : true, | ||
928 | + mayscript : true | ||
929 | + }; | ||
930 | + | ||
931 | + for (var i in applet.params) { | ||
932 | + | ||
933 | + if (i == "src") { | ||
934 | + | ||
935 | + continue; | ||
936 | + } | ||
937 | + | ||
938 | + if (applet.params[i] != Object.prototype[i]) { | ||
939 | + | ||
940 | + p[i] = applet.params[i]; | ||
941 | + | ||
942 | + if (i.toLowerCase() == "logoimage") { | ||
943 | + | ||
944 | + p["image"] = applet.params[i]; | ||
945 | + } | ||
946 | + else if (i.toLowerCase() == "backgroundcolor") { | ||
947 | + | ||
948 | + p["boxbgcolor"] = "#" + applet.params[i]; | ||
949 | + } | ||
950 | + else if (i.toLowerCase() == "bordercolor") { | ||
951 | + | ||
952 | + // there's no way to specify border color | ||
953 | + p["boxborder"] = true; | ||
954 | + } | ||
955 | + else if (i.toLowerCase() == "textcolor") { | ||
956 | + | ||
957 | + p["boxfgcolor"] = "#" + applet.params[i]; | ||
958 | + } | ||
959 | + } | ||
960 | + } | ||
961 | + | ||
962 | + // Create a dummy div element in the unityPlayer div | ||
963 | + // so that it can be replaced with the 1x1 px applet. | ||
964 | + // The applet will be resized when it has fully loaded, | ||
965 | + // see appletStarted(). | ||
966 | + var divToBeReplacedWithApplet = doc.createElement("div"); | ||
967 | + re.appendChild(divToBeReplacedWithApplet); | ||
968 | + _createObjectElement(a, p, divToBeReplacedWithApplet); | ||
969 | + jQuery('#' + id).show(); | ||
970 | + //setVisibility(appletID, true); | ||
971 | + } | ||
972 | + | ||
973 | + /** | ||
974 | + * @private | ||
975 | + */ | ||
976 | + function _jvmPreloaded(id) { | ||
977 | + | ||
978 | + // timeout prevents crash on ie | ||
979 | + setTimeout(function () { | ||
980 | + | ||
981 | + var re = doc.getElementById(id); | ||
982 | + | ||
983 | + if (re) { | ||
984 | + re.parentNode.removeChild(re); | ||
985 | + } | ||
986 | + }, 0); | ||
987 | + } | ||
988 | + | ||
989 | + /** | ||
990 | + * @private | ||
991 | + */ | ||
992 | + function _appletStarted(id) { | ||
993 | + // set the size of the applet to the one from cloned attributes | ||
994 | + var applet = applets[id], | ||
995 | + appletElement = doc.getElementById(id), | ||
996 | + childNode; | ||
997 | + | ||
998 | + // the applet might have already finished by now | ||
999 | + if (!appletElement) { | ||
1000 | + | ||
1001 | + return; | ||
1002 | + } | ||
1003 | + | ||
1004 | + appletElement.width = applet.attributes["width"] || 600; | ||
1005 | + appletElement.height = applet.attributes["height"] || 450; | ||
1006 | + | ||
1007 | + // remove all the siblings of the applet | ||
1008 | + var parentNode = appletElement.parentNode; | ||
1009 | + var childNodeList = parentNode.childNodes; | ||
1010 | + | ||
1011 | + for (var i = 0; i < childNodeList.length; i++) { | ||
1012 | + | ||
1013 | + childNode = childNodeList[i]; | ||
1014 | + // Compare the child node with our applet element only if | ||
1015 | + // it has the same type. Doing the comparison in other cases just | ||
1016 | + // jumps out of the loop. | ||
1017 | + if (childNode.nodeType == 1 && childNode != appletElement) { | ||
1018 | + | ||
1019 | + parentNode.removeChild(childNode); | ||
1020 | + } | ||
1021 | + } | ||
1022 | + } | ||
1023 | + | ||
1024 | + | ||
1025 | + // java installation callback | ||
1026 | + function _javaInstallDoneCallback(id, success, errormessage) { | ||
1027 | + | ||
1028 | + debug('_javaInstallDoneCallback', id, success, errormessage); | ||
1029 | + //console.log('javaInstallDoneCallback', id, success, errormessage); | ||
1030 | + | ||
1031 | + if (!success) { | ||
1032 | + | ||
1033 | + //var applet = applets[id]; | ||
1034 | + _setPluginStatus(kError, kJava, errormessage); | ||
1035 | + //createMissingUnity(id, applet.attributes, applet.params, applet.callback, applet.broken, kJava, errormessage); | ||
1036 | + } | ||
1037 | + } | ||
1038 | + | ||
1039 | + /* Java Install - END */ | ||
1040 | + | ||
1041 | + | ||
1042 | + /** | ||
1043 | + * @private | ||
1044 | + */ | ||
1045 | + function log() { | ||
1046 | + | ||
1047 | + logHistory.push(arguments); | ||
1048 | + | ||
1049 | + if ( cfg.debugLevel > 0 && window.console && window.console.log ) { | ||
1050 | + | ||
1051 | + console.log(Array.prototype.slice.call(arguments)); | ||
1052 | + //console.log.apply(console, Array.prototype.slice.call(arguments)); | ||
1053 | + } | ||
1054 | + } | ||
1055 | + | ||
1056 | + /** | ||
1057 | + * @private | ||
1058 | + */ | ||
1059 | + function debug() { | ||
1060 | + | ||
1061 | + logHistory.push(arguments); | ||
1062 | + | ||
1063 | + if ( cfg.debugLevel > 1 && window.console && window.console.log ) { | ||
1064 | + | ||
1065 | + console.log(Array.prototype.slice.call(arguments)); | ||
1066 | + //console.log.apply(console, Array.prototype.slice.call(arguments)); | ||
1067 | + } | ||
1068 | + } | ||
1069 | + | ||
1070 | + /** | ||
1071 | + * appends px to the value if it's a plain number | ||
1072 | + * @private | ||
1073 | + */ | ||
1074 | + function _appendPX(value) { | ||
1075 | + | ||
1076 | + if (/^[-+]?[0-9]+$/.test(value)) { | ||
1077 | + value += "px"; | ||
1078 | + } | ||
1079 | + return value; | ||
1080 | + } | ||
1081 | + | ||
1082 | + | ||
1083 | + | ||
1084 | + | ||
1085 | + var publicAPI = /** @lends UnityObject2.prototype */ { | ||
1086 | + | ||
1087 | + /** | ||
1088 | + * Get Debug Level (0=Disabled) | ||
1089 | + * @public | ||
1090 | + * @return {Number} Debug Level | ||
1091 | + */ | ||
1092 | + getLogHistory: function () { | ||
1093 | + | ||
1094 | + return logHistory; // JSON.stringify() | ||
1095 | + }, | ||
1096 | + | ||
1097 | + | ||
1098 | + /** | ||
1099 | + * Get configuration object | ||
1100 | + * @public | ||
1101 | + * @return {Object} cfg | ||
1102 | + */ | ||
1103 | + getConfig: function () { | ||
1104 | + | ||
1105 | + return cfg; // JSON.stringify() | ||
1106 | + }, | ||
1107 | + | ||
1108 | + | ||
1109 | + /** | ||
1110 | + * @public | ||
1111 | + * @return {Object} detailed info about OS and Browser. | ||
1112 | + */ | ||
1113 | + getPlatformInfo: function () { | ||
1114 | + | ||
1115 | + return ua; | ||
1116 | + }, | ||
1117 | + | ||
1118 | + | ||
1119 | + /** | ||
1120 | + * Initialize plugin config and proceed with attempting to start the webplayer. | ||
1121 | + * @public | ||
1122 | + */ | ||
1123 | + initPlugin: function (targetEl, src) { | ||
1124 | + | ||
1125 | + cfg.targetEl = targetEl; | ||
1126 | + cfg.src = src; | ||
1127 | + | ||
1128 | + debug('ua:', ua); | ||
1129 | + //console.debug('initPlugin this:', this); | ||
1130 | + this.detectUnity(this.handlePluginStatus); | ||
1131 | + }, | ||
1132 | + | ||
1133 | + | ||
1134 | + /** | ||
1135 | + * detects unity web player. | ||
1136 | + * @public | ||
1137 | + * callback - accepts two parameters. | ||
1138 | + * first one contains "installed", "missing", "broken" or "unsupported" value. | ||
1139 | + * second one returns requested unity versions. plugin version is included as well. | ||
1140 | + * versions - optional array of unity versions to detect. | ||
1141 | + */ | ||
1142 | + detectUnity: function (callback, versions) { | ||
1143 | + | ||
1144 | + // console.debug('detectUnity this:', this); | ||
1145 | + var self = this; | ||
1146 | + | ||
1147 | + var status = kMissing; | ||
1148 | + var data; | ||
1149 | + nav.plugins.refresh(); | ||
1150 | + | ||
1151 | + if (ua.clientBrand === "??" || ua.clientPlatform === "???" || ua.mobile ) { | ||
1152 | + status = kUnsupported; | ||
1153 | + } else if (ua.op && ua.mac) { // Opera on MAC is unsupported | ||
1154 | + | ||
1155 | + status = kUnsupported; | ||
1156 | + data = "OPERA-MAC"; | ||
1157 | + } else if ( | ||
1158 | + typeof nav.plugins != "undefined" | ||
1159 | + && nav.plugins[cfg.pluginName] | ||
1160 | + && typeof nav.mimeTypes != "undefined" | ||
1161 | + && nav.mimeTypes[cfg.pluginMimeType] | ||
1162 | + && nav.mimeTypes[cfg.pluginMimeType].enabledPlugin | ||
1163 | + ) { | ||
1164 | + | ||
1165 | + status = kInstalled; | ||
1166 | + | ||
1167 | + // make sure web player is compatible with 64-bit safari | ||
1168 | + if (ua.sf && /Mac OS X 10_6/.test(nav.appVersion)) { | ||
1169 | + | ||
1170 | + _getPluginVersion(function (version) { | ||
1171 | + | ||
1172 | + if (!version || !version.plugin) { | ||
1173 | + | ||
1174 | + status = kBroken; | ||
1175 | + data = "OSX10.6-SFx64"; | ||
1176 | + } | ||
1177 | + | ||
1178 | + _setPluginStatus(status, lastType, data); | ||
1179 | + callback.call(self, status, version); | ||
1180 | + }, versions); | ||
1181 | + | ||
1182 | + return; | ||
1183 | + } else if (ua.mac && ua.ch) { // older versions have issues on chrome | ||
1184 | + | ||
1185 | + _getPluginVersion(function (version) { | ||
1186 | + | ||
1187 | + if (version && (_getNumericUnityVersion(version.plugin) <= _getNumericUnityVersion("2.6.1f3"))) { | ||
1188 | + status = kBroken; | ||
1189 | + data = "OSX-CH-U<=2.6.1f3"; | ||
1190 | + } | ||
1191 | + | ||
1192 | + _setPluginStatus(status, lastType, data); | ||
1193 | + callback.call(self, status, version); | ||
1194 | + }, versions); | ||
1195 | + | ||
1196 | + return; | ||
1197 | + } else if (versions) { | ||
1198 | + | ||
1199 | + _getPluginVersion(function (version) { | ||
1200 | + | ||
1201 | + _setPluginStatus(status, lastType, data); | ||
1202 | + callback.call(self, status, version); | ||
1203 | + }, versions); | ||
1204 | + return; | ||
1205 | + } | ||
1206 | + } else if (ua.ie) { | ||
1207 | + var activeXSupported = false; | ||
1208 | + try { | ||
1209 | + if (ActiveXObject.prototype != null) { | ||
1210 | + activeXSupported = true; | ||
1211 | + } | ||
1212 | + } catch(e) {} | ||
1213 | + | ||
1214 | + if (!activeXSupported) { | ||
1215 | + status = kUnsupported; | ||
1216 | + data = "ActiveXFailed"; | ||
1217 | + } else { | ||
1218 | + status = kMissing; | ||
1219 | + try { | ||
1220 | + var uo = new ActiveXObject("UnityWebPlayer.UnityWebPlayer.1"); | ||
1221 | + var pv = uo.GetPluginVersion(); | ||
1222 | + | ||
1223 | + if (versions) { | ||
1224 | + var v = {}; | ||
1225 | + for (var i = 0; i < versions.length; ++i) { | ||
1226 | + v[versions[i]] = uo.GetUnityVersion(versions[i]); | ||
1227 | + } | ||
1228 | + v.plugin = pv; | ||
1229 | + } | ||
1230 | + | ||
1231 | + status = kInstalled; | ||
1232 | + // 2.5.0 auto update has issues on vista and later | ||
1233 | + if (pv == "2.5.0f5") { | ||
1234 | + var m = /Windows NT \d+\.\d+/.exec(nav.userAgent); | ||
1235 | + if (m && m.length > 0) { | ||
1236 | + var wv = parseFloat(m[0].split(' ')[2]); | ||
1237 | + if (wv >= 6) { | ||
1238 | + status = kBroken; | ||
1239 | + data = "WIN-U2.5.0f5"; | ||
1240 | + } | ||
1241 | + } | ||
1242 | + } | ||
1243 | + } catch(e) {} | ||
1244 | + } | ||
1245 | + } | ||
1246 | + | ||
1247 | + _setPluginStatus(status, lastType, data); | ||
1248 | + callback.call(self, status, v); | ||
1249 | + }, | ||
1250 | + | ||
1251 | + | ||
1252 | + | ||
1253 | + /** | ||
1254 | + * @public | ||
1255 | + * @return {Object} with info about Unity WebPlayer plugin status (not installed, loading, running etc..) | ||
1256 | + */ | ||
1257 | + handlePluginStatus: function (status, versions) { | ||
1258 | + | ||
1259 | + // Store targetEl in the closure, to be able to get it back if setTimeout calls again. | ||
1260 | + var targetEl = cfg.targetEl; | ||
1261 | + | ||
1262 | + var $targetEl = jQuery(targetEl); | ||
1263 | + | ||
1264 | + switch(status) { | ||
1265 | + | ||
1266 | + case kInstalled: | ||
1267 | + | ||
1268 | + // @todo add support for alternate custom handlers. | ||
1269 | + this.notifyProgress($targetEl); | ||
1270 | + this.embedPlugin($targetEl, cfg.callback); | ||
1271 | + break; | ||
1272 | + | ||
1273 | + case kMissing: | ||
1274 | + | ||
1275 | + this.notifyProgress($targetEl); | ||
1276 | + //this.installPlugin($targetEl); | ||
1277 | + | ||
1278 | + var self = this; | ||
1279 | + var delayTime = (cfg.debugLevel === 0) ? 1000 : 8000; | ||
1280 | + | ||
1281 | + // Do a delay and re-check for plugin | ||
1282 | + setTimeout(function () { | ||
1283 | + | ||
1284 | + cfg.targetEl = targetEl; | ||
1285 | + self.detectUnity(self.handlePluginStatus); | ||
1286 | + }, delayTime); | ||
1287 | + | ||
1288 | + break; | ||
1289 | + | ||
1290 | + case kBroken: | ||
1291 | + // Browser needs to restart after install | ||
1292 | + this.notifyProgress($targetEl); | ||
1293 | + break; | ||
1294 | + | ||
1295 | + case kUnsupported: | ||
1296 | + | ||
1297 | + this.notifyProgress($targetEl); | ||
1298 | + break; | ||
1299 | + } | ||
1300 | + | ||
1301 | + }, | ||
1302 | + | ||
1303 | + /** | ||
1304 | + * @public | ||
1305 | + * @return {Object} with detailed plugin info, version number and other info that can be retrieved from the plugin. | ||
1306 | + */ | ||
1307 | + /*getPluginInfo: function () { | ||
1308 | + | ||
1309 | + },*/ | ||
1310 | + | ||
1311 | + /** | ||
1312 | + * @public | ||
1313 | + */ | ||
1314 | + getPluginURL: function () { | ||
1315 | + | ||
1316 | + var url = "http://unity3d.com/webplayer/"; | ||
1317 | + | ||
1318 | + if (ua.win) { | ||
1319 | + | ||
1320 | + url = cfg.baseDownloadUrl + _getWinInstall(); | ||
1321 | + | ||
1322 | + } else if (nav.platform == "MacIntel") { | ||
1323 | + | ||
1324 | + url = cfg.baseDownloadUrl + (cfg.fullInstall ? "webplayer-i386.dmg" : "webplayer-mini.dmg"); | ||
1325 | + | ||
1326 | + if (cfg.referrer !== null) { | ||
1327 | + | ||
1328 | + url += "?referrer=" + cfg.referrer; | ||
1329 | + } | ||
1330 | + | ||
1331 | + } else if (nav.platform == "MacPPC") { | ||
1332 | + | ||
1333 | + url = cfg.baseDownloadUrl + (cfg.fullInstall ? "webplayer-ppc.dmg" : "webplayer-mini.dmg"); | ||
1334 | + | ||
1335 | + if (cfg.referrer !== null) { | ||
1336 | + | ||
1337 | + url += "?referrer=" + cfg.referrer; | ||
1338 | + } | ||
1339 | + } | ||
1340 | + | ||
1341 | + return url; | ||
1342 | + }, | ||
1343 | + | ||
1344 | + /** | ||
1345 | + * @public | ||
1346 | + */ | ||
1347 | + getClickOnceURL: function () { | ||
1348 | + | ||
1349 | + return cfg.baseDownloadUrl + "3.0/co/UnityWebPlayer.application?installer=" + encodeURIComponent(cfg.baseDownloadUrl + _getWinInstall()); | ||
1350 | + }, | ||
1351 | + | ||
1352 | + /** | ||
1353 | + * Embed the plugin into the DOM. | ||
1354 | + * @public | ||
1355 | + */ | ||
1356 | + embedPlugin: function (targetEl, callback) { | ||
1357 | + | ||
1358 | + targetEl = jQuery(targetEl).empty(); | ||
1359 | + | ||
1360 | + var src = cfg.src; //targetEl.data('src'), | ||
1361 | + var width = cfg.width || "100%"; //TODO: extract those hardcoded values | ||
1362 | + var height = cfg.height || "100%"; | ||
1363 | + var self = this; | ||
1364 | + | ||
1365 | + if (ua.win && ua.ie) { | ||
1366 | + // ie, dom and object element do not mix & match | ||
1367 | + | ||
1368 | + var at = ""; | ||
1369 | + | ||
1370 | + for (var i in cfg.attributes) { | ||
1371 | + if (cfg.attributes[i] != Object.prototype[i]) { | ||
1372 | + if (i.toLowerCase() == "styleclass") { | ||
1373 | + at += ' class="' + cfg.attributes[i] + '"'; | ||
1374 | + } | ||
1375 | + else if (i.toLowerCase() != "classid") { | ||
1376 | + at += ' ' + i + '="' + cfg.attributes[i] + '"'; | ||
1377 | + } | ||
1378 | + } | ||
1379 | + } | ||
1380 | + | ||
1381 | + var pt = ""; | ||
1382 | + | ||
1383 | + // we manually add SRC here, because its now defined on the target element. | ||
1384 | + pt += '<param name="src" value="' + src + '" />'; | ||
1385 | + pt += '<param name="firstFrameCallback" value="UnityObject2.instances[' + instanceNumber + '].firstFrameCallback();" />'; | ||
1386 | + | ||
1387 | + for (var i in cfg.params) { | ||
1388 | + | ||
1389 | + if (cfg.params[i] != Object.prototype[i]) { | ||
1390 | + | ||
1391 | + if (i.toLowerCase() != "classid") { | ||
1392 | + | ||
1393 | + pt += '<param name="' + i + '" value="' + cfg.params[i] + '" />'; | ||
1394 | + } | ||
1395 | + } | ||
1396 | + } | ||
1397 | + | ||
1398 | + //var tmpHtml = '<div id="' + targetEl.attr('id') + '" style="width: ' + _appendPX(width) + '; height: ' + _appendPX(height) + ';"><object classid="clsid:444785F1-DE89-4295-863A-D46C3A781394" style="display: block; width: 100%; height: 100%;"' + at + '>' + pt + '</object></div>'; | ||
1399 | + var tmpHtml = '<object classid="clsid:444785F1-DE89-4295-863A-D46C3A781394" style="display: block; width: ' + _appendPX(width) + '; height: ' + _appendPX(height) + ';"' + at + '>' + pt + '</object>'; | ||
1400 | + var $object = jQuery(tmpHtml); | ||
1401 | + targetEl.append( $object ); | ||
1402 | + embeddedObjects.push( targetEl.attr('id') ); | ||
1403 | + unityObject = $object[0]; | ||
1404 | + | ||
1405 | + } else { | ||
1406 | + | ||
1407 | + // Create and append embed element into DOM. | ||
1408 | + var $embed = jQuery('<embed/>') | ||
1409 | + .attr({ | ||
1410 | + src: src, | ||
1411 | + type: cfg.pluginMimeType, | ||
1412 | + width: width, | ||
1413 | + height: height, | ||
1414 | + firstFrameCallback: 'UnityObject2.instances[' + instanceNumber + '].firstFrameCallback();' | ||
1415 | + }) | ||
1416 | + .attr(cfg.attributes) | ||
1417 | + .attr(cfg.params) | ||
1418 | + .css({ | ||
1419 | + display: 'block', | ||
1420 | + width: _appendPX(width), | ||
1421 | + height: _appendPX(height) | ||
1422 | + }) | ||
1423 | + .appendTo( targetEl ); | ||
1424 | + unityObject = $embed[0]; | ||
1425 | + } | ||
1426 | + | ||
1427 | + //Auto focus the new object/embed, so players dont have to click it before using it. | ||
1428 | + //setTimeout is here to workaround a chrome bug. | ||
1429 | + //we should not invoke focus on safari on mac. it causes some Input bugs. | ||
1430 | + if (!ua.sf || !ua.mac) { | ||
1431 | + setTimeout(function() { | ||
1432 | + unityObject.focus(); | ||
1433 | + }, 100); | ||
1434 | + } | ||
1435 | + | ||
1436 | + if (callback) { | ||
1437 | + | ||
1438 | + callback(); | ||
1439 | + } | ||
1440 | + }, | ||
1441 | + | ||
1442 | + /** | ||
1443 | + * Determine which installation method to use on the current platform, and return an array with their identifiers (i.e. 'ClickOnceIE', 'JavaInstall', 'Manual') | ||
1444 | + * Take into account which previous methods might have been attempted (and failed) and skip to next best method. | ||
1445 | + * @public | ||
1446 | + * @return {String} | ||
1447 | + */ | ||
1448 | + getBestInstallMethod: function () { | ||
1449 | + | ||
1450 | + // Always fall back to good old manual (download) install. | ||
1451 | + var method = 'Manual'; | ||
1452 | + | ||
1453 | + //We only have manual install for 64bit plugin so far. | ||
1454 | + if (ua.x64) | ||
1455 | + return method; | ||
1456 | + | ||
1457 | + // Is Java available and not yet attempted? | ||
1458 | + if (cfg.enableJava && ua.java && triedJavaInstall === false) { | ||
1459 | + | ||
1460 | + method = 'JavaInstall'; | ||
1461 | + } | ||
1462 | + // Is ClickOnce available and not yet attempted? | ||
1463 | + else if (cfg.enableClickOnce && ua.co && triedClickOnce === false) { | ||
1464 | + | ||
1465 | + method = 'ClickOnceIE'; | ||
1466 | + } | ||
1467 | + | ||
1468 | + return method; | ||
1469 | + }, | ||
1470 | + | ||
1471 | + /** | ||
1472 | + * Tries to install the plugin using the specified method. | ||
1473 | + * If no method is passed, it will try to use this.getBestInstallMethod() | ||
1474 | + * @public | ||
1475 | + * @param {String} method The desired install method | ||
1476 | + */ | ||
1477 | + installPlugin: function(method) { | ||
1478 | + if (method == null || method == undefined) { | ||
1479 | + method = this.getBestInstallMethod(); | ||
1480 | + } | ||
1481 | + | ||
1482 | + var urlToOpen = null; | ||
1483 | + switch(method) { | ||
1484 | + | ||
1485 | + case "JavaInstall": | ||
1486 | + this.doJavaInstall(cfg.targetEl.id); | ||
1487 | + break; | ||
1488 | + case "ClickOnceIE": | ||
1489 | + triedClickOnce = true; | ||
1490 | + _setSessionCookie(triedClickOnceCookie, triedClickOnce); | ||
1491 | + var $iframe = jQuery("<iframe src='" + this.getClickOnceURL() + "' style='display:none;' />"); | ||
1492 | + jQuery(cfg.targetEl).append($iframe); | ||
1493 | + break; | ||
1494 | + default: | ||
1495 | + case "Manual": | ||
1496 | + //doc.location = this.getPluginURL(); | ||
1497 | + //urlToOpen = this.getPluginURL(); | ||
1498 | + var $iframe = jQuery("<iframe src='" + this.getPluginURL() + "' style='display:none;' />"); | ||
1499 | + jQuery(cfg.targetEl).append($iframe); | ||
1500 | + break; | ||
1501 | + } | ||
1502 | + | ||
1503 | + lastType = method; | ||
1504 | + _an.send(kStart, method, null, null); | ||
1505 | + | ||
1506 | + }, | ||
1507 | + | ||
1508 | + /** | ||
1509 | + * Trigger event using jQuery(document).trigger() | ||
1510 | + * @public | ||
1511 | + */ | ||
1512 | + //TODO: verify its use. | ||
1513 | + trigger: function (event, params) { | ||
1514 | + | ||
1515 | + if (params) { | ||
1516 | + | ||
1517 | + debug('trigger("' + event + '")', params); | ||
1518 | + | ||
1519 | + } else { | ||
1520 | + | ||
1521 | + debug('trigger("' + event + '")'); | ||
1522 | + } | ||
1523 | + | ||
1524 | + jQuery(document).trigger(event, params); | ||
1525 | + }, | ||
1526 | + | ||
1527 | + /** | ||
1528 | + * Notify observers about onProgress event | ||
1529 | + * @public | ||
1530 | + */ | ||
1531 | + notifyProgress: function (targetEl) { | ||
1532 | + | ||
1533 | + //debug('*** notifyProgress ***') | ||
1534 | + | ||
1535 | + if (typeof progressCallback !== "undefined" && typeof progressCallback === "function") { | ||
1536 | + | ||
1537 | + var payload = { | ||
1538 | + | ||
1539 | + ua: ua, | ||
1540 | + pluginStatus: pluginStatus, | ||
1541 | + bestMethod: null, | ||
1542 | + lastType: lastType, | ||
1543 | + targetEl: cfg.targetEl, | ||
1544 | + unityObj: this | ||
1545 | + }; | ||
1546 | + | ||
1547 | + if (pluginStatus === kMissing) { | ||
1548 | + | ||
1549 | + payload.bestMethod = this.getBestInstallMethod(); | ||
1550 | + } | ||
1551 | + | ||
1552 | + if (latestStatus !== pluginStatus) { //Execute only on state change | ||
1553 | + latestStatus = pluginStatus; | ||
1554 | + | ||
1555 | + progressCallback(payload); | ||
1556 | + } | ||
1557 | + } | ||
1558 | + }, | ||
1559 | + | ||
1560 | + /** | ||
1561 | + * Subscribe to onProgress notification | ||
1562 | + * @public | ||
1563 | + */ | ||
1564 | + observeProgress: function (callback) { | ||
1565 | + | ||
1566 | + progressCallback = callback; | ||
1567 | + }, | ||
1568 | + | ||
1569 | + | ||
1570 | + /** | ||
1571 | + * Callback made by the WebPlayer plugin when the first frame is rendered. | ||
1572 | + * @public | ||
1573 | + */ | ||
1574 | + firstFrameCallback : function () { | ||
1575 | + | ||
1576 | + debug('*** firstFrameCallback (' + instanceNumber + ') ***'); | ||
1577 | + pluginStatus = kFirst; | ||
1578 | + this.notifyProgress(); | ||
1579 | + | ||
1580 | + /* | ||
1581 | + // What? | ||
1582 | + if (status == kFirst) { | ||
1583 | + if (pluginStatus == null) { | ||
1584 | + return; | ||
1585 | + } | ||
1586 | + } | ||
1587 | + */ | ||
1588 | + | ||
1589 | + //Webplayer was already installed. | ||
1590 | + //Should only log firstframes if it happened after a install. | ||
1591 | + if (wasMissing === true) { | ||
1592 | + _an.send(pluginStatus, lastType); | ||
1593 | + } | ||
1594 | + | ||
1595 | + //setRunStatus(kFirst, lastType); | ||
1596 | + }, | ||
1597 | + | ||
1598 | + /** | ||
1599 | + * Get a string from a session cookie or SessionStorage | ||
1600 | + * @public | ||
1601 | + * @return {String} | ||
1602 | + */ | ||
1603 | + /*getSessionString: function (key) { | ||
1604 | + | ||
1605 | + },*/ | ||
1606 | + | ||
1607 | + /** | ||
1608 | + * Set a string via a session cookie or SessionStorage | ||
1609 | + * @public | ||
1610 | + */ | ||
1611 | + /* setSessionString: function (key, value) { | ||
1612 | + | ||
1613 | + },*/ | ||
1614 | + | ||
1615 | + /** | ||
1616 | + * Get a string from a persistent cookie | ||
1617 | + * @public | ||
1618 | + * @return {String} | ||
1619 | + */ | ||
1620 | + /*getCookie: function (key) { | ||
1621 | + | ||
1622 | + },*/ | ||
1623 | + | ||
1624 | + /** | ||
1625 | + * Set a string to a persistent cookie | ||
1626 | + * @public | ||
1627 | + */ | ||
1628 | + /*setCookie: function (key, value, expiryDate) { | ||
1629 | + | ||
1630 | + },*/ | ||
1631 | + | ||
1632 | + /** | ||
1633 | + * Exposed private function | ||
1634 | + * @public | ||
1635 | + */ | ||
1636 | + setPluginStatus: function (status, type, data, url) { | ||
1637 | + | ||
1638 | + _setPluginStatus(status, type, data, url); | ||
1639 | + }, | ||
1640 | + | ||
1641 | + /** | ||
1642 | + * Exposed private function | ||
1643 | + * @public | ||
1644 | + */ | ||
1645 | + doJavaInstall : function (id) { | ||
1646 | + | ||
1647 | + _doJavaInstall(id); | ||
1648 | + }, | ||
1649 | + | ||
1650 | + /** | ||
1651 | + * Exposed private function | ||
1652 | + * @public | ||
1653 | + */ | ||
1654 | + jvmPreloaded : function (id) { | ||
1655 | + | ||
1656 | + _jvmPreloaded(id); | ||
1657 | + }, | ||
1658 | + | ||
1659 | + /** | ||
1660 | + * Exposed private function | ||
1661 | + * @public | ||
1662 | + */ | ||
1663 | + appletStarted : function (id) { | ||
1664 | + | ||
1665 | + _appletStarted(id); | ||
1666 | + }, | ||
1667 | + | ||
1668 | + /** | ||
1669 | + * Exposed private function | ||
1670 | + * @public | ||
1671 | + */ | ||
1672 | + javaInstallDoneCallback : function (id, success, errormessage) { | ||
1673 | + | ||
1674 | + _javaInstallDoneCallback(id, success, errormessage); | ||
1675 | + }, | ||
1676 | + | ||
1677 | + getUnity: function() { | ||
1678 | + return unityObject; | ||
1679 | + } | ||
1680 | + } | ||
1681 | + | ||
1682 | + // Internal store of each instance. | ||
1683 | + instanceNumber = UnityObject2.instances.length; | ||
1684 | + UnityObject2.instances.push(publicAPI); | ||
1685 | + | ||
1686 | + return publicAPI; | ||
1687 | + | ||
1688 | +}; | ||
1689 | + | ||
1690 | +/** | ||
1691 | + * @static | ||
1692 | + **/ | ||
1693 | +UnityObject2.instances = []; | ||
0 | \ No newline at end of file | 1694 | \ No newline at end of file |
@@ -0,0 +1,530 @@ | @@ -0,0 +1,530 @@ | ||
1 | +/*! | ||
2 | + | ||
3 | + handlebars v1.3.0 | ||
4 | + | ||
5 | +Copyright (C) 2011 by Yehuda Katz | ||
6 | + | ||
7 | +Permission is hereby granted, free of charge, to any person obtaining a copy | ||
8 | +of this software and associated documentation files (the "Software"), to deal | ||
9 | +in the Software without restriction, including without limitation the rights | ||
10 | +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
11 | +copies of the Software, and to permit persons to whom the Software is | ||
12 | +furnished to do so, subject to the following conditions: | ||
13 | + | ||
14 | +The above copyright notice and this permission notice shall be included in | ||
15 | +all copies or substantial portions of the Software. | ||
16 | + | ||
17 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
18 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
19 | +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
20 | +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
21 | +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
22 | +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
23 | +THE SOFTWARE. | ||
24 | + | ||
25 | +@license | ||
26 | +*/ | ||
27 | +/* exported Handlebars */ | ||
28 | +var Handlebars = (function() { | ||
29 | +// handlebars/safe-string.js | ||
30 | +var __module3__ = (function() { | ||
31 | + "use strict"; | ||
32 | + var __exports__; | ||
33 | + // Build out our basic SafeString type | ||
34 | + function SafeString(string) { | ||
35 | + this.string = string; | ||
36 | + } | ||
37 | + | ||
38 | + SafeString.prototype.toString = function() { | ||
39 | + return "" + this.string; | ||
40 | + }; | ||
41 | + | ||
42 | + __exports__ = SafeString; | ||
43 | + return __exports__; | ||
44 | +})(); | ||
45 | + | ||
46 | +// handlebars/utils.js | ||
47 | +var __module2__ = (function(__dependency1__) { | ||
48 | + "use strict"; | ||
49 | + var __exports__ = {}; | ||
50 | + /*jshint -W004 */ | ||
51 | + var SafeString = __dependency1__; | ||
52 | + | ||
53 | + var escape = { | ||
54 | + "&": "&", | ||
55 | + "<": "<", | ||
56 | + ">": ">", | ||
57 | + '"': """, | ||
58 | + "'": "'", | ||
59 | + "`": "`" | ||
60 | + }; | ||
61 | + | ||
62 | + var badChars = /[&<>"'`]/g; | ||
63 | + var possible = /[&<>"'`]/; | ||
64 | + | ||
65 | + function escapeChar(chr) { | ||
66 | + return escape[chr] || "&"; | ||
67 | + } | ||
68 | + | ||
69 | + function extend(obj, value) { | ||
70 | + for(var key in value) { | ||
71 | + if(Object.prototype.hasOwnProperty.call(value, key)) { | ||
72 | + obj[key] = value[key]; | ||
73 | + } | ||
74 | + } | ||
75 | + } | ||
76 | + | ||
77 | + __exports__.extend = extend;var toString = Object.prototype.toString; | ||
78 | + __exports__.toString = toString; | ||
79 | + // Sourced from lodash | ||
80 | + // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt | ||
81 | + var isFunction = function(value) { | ||
82 | + return typeof value === 'function'; | ||
83 | + }; | ||
84 | + // fallback for older versions of Chrome and Safari | ||
85 | + if (isFunction(/x/)) { | ||
86 | + isFunction = function(value) { | ||
87 | + return typeof value === 'function' && toString.call(value) === '[object Function]'; | ||
88 | + }; | ||
89 | + } | ||
90 | + var isFunction; | ||
91 | + __exports__.isFunction = isFunction; | ||
92 | + var isArray = Array.isArray || function(value) { | ||
93 | + return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false; | ||
94 | + }; | ||
95 | + __exports__.isArray = isArray; | ||
96 | + | ||
97 | + function escapeExpression(string) { | ||
98 | + // don't escape SafeStrings, since they're already safe | ||
99 | + if (string instanceof SafeString) { | ||
100 | + return string.toString(); | ||
101 | + } else if (!string && string !== 0) { | ||
102 | + return ""; | ||
103 | + } | ||
104 | + | ||
105 | + // Force a string conversion as this will be done by the append regardless and | ||
106 | + // the regex test will do this transparently behind the scenes, causing issues if | ||
107 | + // an object's to string has escaped characters in it. | ||
108 | + string = "" + string; | ||
109 | + | ||
110 | + if(!possible.test(string)) { return string; } | ||
111 | + return string.replace(badChars, escapeChar); | ||
112 | + } | ||
113 | + | ||
114 | + __exports__.escapeExpression = escapeExpression;function isEmpty(value) { | ||
115 | + if (!value && value !== 0) { | ||
116 | + return true; | ||
117 | + } else if (isArray(value) && value.length === 0) { | ||
118 | + return true; | ||
119 | + } else { | ||
120 | + return false; | ||
121 | + } | ||
122 | + } | ||
123 | + | ||
124 | + __exports__.isEmpty = isEmpty; | ||
125 | + return __exports__; | ||
126 | +})(__module3__); | ||
127 | + | ||
128 | +// handlebars/exception.js | ||
129 | +var __module4__ = (function() { | ||
130 | + "use strict"; | ||
131 | + var __exports__; | ||
132 | + | ||
133 | + var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack']; | ||
134 | + | ||
135 | + function Exception(message, node) { | ||
136 | + var line; | ||
137 | + if (node && node.firstLine) { | ||
138 | + line = node.firstLine; | ||
139 | + | ||
140 | + message += ' - ' + line + ':' + node.firstColumn; | ||
141 | + } | ||
142 | + | ||
143 | + var tmp = Error.prototype.constructor.call(this, message); | ||
144 | + | ||
145 | + // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. | ||
146 | + for (var idx = 0; idx < errorProps.length; idx++) { | ||
147 | + this[errorProps[idx]] = tmp[errorProps[idx]]; | ||
148 | + } | ||
149 | + | ||
150 | + if (line) { | ||
151 | + this.lineNumber = line; | ||
152 | + this.column = node.firstColumn; | ||
153 | + } | ||
154 | + } | ||
155 | + | ||
156 | + Exception.prototype = new Error(); | ||
157 | + | ||
158 | + __exports__ = Exception; | ||
159 | + return __exports__; | ||
160 | +})(); | ||
161 | + | ||
162 | +// handlebars/base.js | ||
163 | +var __module1__ = (function(__dependency1__, __dependency2__) { | ||
164 | + "use strict"; | ||
165 | + var __exports__ = {}; | ||
166 | + var Utils = __dependency1__; | ||
167 | + var Exception = __dependency2__; | ||
168 | + | ||
169 | + var VERSION = "1.3.0"; | ||
170 | + __exports__.VERSION = VERSION;var COMPILER_REVISION = 4; | ||
171 | + __exports__.COMPILER_REVISION = COMPILER_REVISION; | ||
172 | + var REVISION_CHANGES = { | ||
173 | + 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it | ||
174 | + 2: '== 1.0.0-rc.3', | ||
175 | + 3: '== 1.0.0-rc.4', | ||
176 | + 4: '>= 1.0.0' | ||
177 | + }; | ||
178 | + __exports__.REVISION_CHANGES = REVISION_CHANGES; | ||
179 | + var isArray = Utils.isArray, | ||
180 | + isFunction = Utils.isFunction, | ||
181 | + toString = Utils.toString, | ||
182 | + objectType = '[object Object]'; | ||
183 | + | ||
184 | + function HandlebarsEnvironment(helpers, partials) { | ||
185 | + this.helpers = helpers || {}; | ||
186 | + this.partials = partials || {}; | ||
187 | + | ||
188 | + registerDefaultHelpers(this); | ||
189 | + } | ||
190 | + | ||
191 | + __exports__.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = { | ||
192 | + constructor: HandlebarsEnvironment, | ||
193 | + | ||
194 | + logger: logger, | ||
195 | + log: log, | ||
196 | + | ||
197 | + registerHelper: function(name, fn, inverse) { | ||
198 | + if (toString.call(name) === objectType) { | ||
199 | + if (inverse || fn) { throw new Exception('Arg not supported with multiple helpers'); } | ||
200 | + Utils.extend(this.helpers, name); | ||
201 | + } else { | ||
202 | + if (inverse) { fn.not = inverse; } | ||
203 | + this.helpers[name] = fn; | ||
204 | + } | ||
205 | + }, | ||
206 | + | ||
207 | + registerPartial: function(name, str) { | ||
208 | + if (toString.call(name) === objectType) { | ||
209 | + Utils.extend(this.partials, name); | ||
210 | + } else { | ||
211 | + this.partials[name] = str; | ||
212 | + } | ||
213 | + } | ||
214 | + }; | ||
215 | + | ||
216 | + function registerDefaultHelpers(instance) { | ||
217 | + instance.registerHelper('helperMissing', function(arg) { | ||
218 | + if(arguments.length === 2) { | ||
219 | + return undefined; | ||
220 | + } else { | ||
221 | + throw new Exception("Missing helper: '" + arg + "'"); | ||
222 | + } | ||
223 | + }); | ||
224 | + | ||
225 | + instance.registerHelper('blockHelperMissing', function(context, options) { | ||
226 | + var inverse = options.inverse || function() {}, fn = options.fn; | ||
227 | + | ||
228 | + if (isFunction(context)) { context = context.call(this); } | ||
229 | + | ||
230 | + if(context === true) { | ||
231 | + return fn(this); | ||
232 | + } else if(context === false || context == null) { | ||
233 | + return inverse(this); | ||
234 | + } else if (isArray(context)) { | ||
235 | + if(context.length > 0) { | ||
236 | + return instance.helpers.each(context, options); | ||
237 | + } else { | ||
238 | + return inverse(this); | ||
239 | + } | ||
240 | + } else { | ||
241 | + return fn(context); | ||
242 | + } | ||
243 | + }); | ||
244 | + | ||
245 | + instance.registerHelper('each', function(context, options) { | ||
246 | + var fn = options.fn, inverse = options.inverse; | ||
247 | + var i = 0, ret = "", data; | ||
248 | + | ||
249 | + if (isFunction(context)) { context = context.call(this); } | ||
250 | + | ||
251 | + if (options.data) { | ||
252 | + data = createFrame(options.data); | ||
253 | + } | ||
254 | + | ||
255 | + if(context && typeof context === 'object') { | ||
256 | + if (isArray(context)) { | ||
257 | + for(var j = context.length; i<j; i++) { | ||
258 | + if (data) { | ||
259 | + data.index = i; | ||
260 | + data.first = (i === 0); | ||
261 | + data.last = (i === (context.length-1)); | ||
262 | + } | ||
263 | + ret = ret + fn(context[i], { data: data }); | ||
264 | + } | ||
265 | + } else { | ||
266 | + for(var key in context) { | ||
267 | + if(context.hasOwnProperty(key)) { | ||
268 | + if(data) { | ||
269 | + data.key = key; | ||
270 | + data.index = i; | ||
271 | + data.first = (i === 0); | ||
272 | + } | ||
273 | + ret = ret + fn(context[key], {data: data}); | ||
274 | + i++; | ||
275 | + } | ||
276 | + } | ||
277 | + } | ||
278 | + } | ||
279 | + | ||
280 | + if(i === 0){ | ||
281 | + ret = inverse(this); | ||
282 | + } | ||
283 | + | ||
284 | + return ret; | ||
285 | + }); | ||
286 | + | ||
287 | + instance.registerHelper('if', function(conditional, options) { | ||
288 | + if (isFunction(conditional)) { conditional = conditional.call(this); } | ||
289 | + | ||
290 | + // Default behavior is to render the positive path if the value is truthy and not empty. | ||
291 | + // The `includeZero` option may be set to treat the condtional as purely not empty based on the | ||
292 | + // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative. | ||
293 | + if ((!options.hash.includeZero && !conditional) || Utils.isEmpty(conditional)) { | ||
294 | + return options.inverse(this); | ||
295 | + } else { | ||
296 | + return options.fn(this); | ||
297 | + } | ||
298 | + }); | ||
299 | + | ||
300 | + instance.registerHelper('unless', function(conditional, options) { | ||
301 | + return instance.helpers['if'].call(this, conditional, {fn: options.inverse, inverse: options.fn, hash: options.hash}); | ||
302 | + }); | ||
303 | + | ||
304 | + instance.registerHelper('with', function(context, options) { | ||
305 | + if (isFunction(context)) { context = context.call(this); } | ||
306 | + | ||
307 | + if (!Utils.isEmpty(context)) return options.fn(context); | ||
308 | + }); | ||
309 | + | ||
310 | + instance.registerHelper('log', function(context, options) { | ||
311 | + var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1; | ||
312 | + instance.log(level, context); | ||
313 | + }); | ||
314 | + } | ||
315 | + | ||
316 | + var logger = { | ||
317 | + methodMap: { 0: 'debug', 1: 'info', 2: 'warn', 3: 'error' }, | ||
318 | + | ||
319 | + // State enum | ||
320 | + DEBUG: 0, | ||
321 | + INFO: 1, | ||
322 | + WARN: 2, | ||
323 | + ERROR: 3, | ||
324 | + level: 3, | ||
325 | + | ||
326 | + // can be overridden in the host environment | ||
327 | + log: function(level, obj) { | ||
328 | + if (logger.level <= level) { | ||
329 | + var method = logger.methodMap[level]; | ||
330 | + if (typeof console !== 'undefined' && console[method]) { | ||
331 | + console[method].call(console, obj); | ||
332 | + } | ||
333 | + } | ||
334 | + } | ||
335 | + }; | ||
336 | + __exports__.logger = logger; | ||
337 | + function log(level, obj) { logger.log(level, obj); } | ||
338 | + | ||
339 | + __exports__.log = log;var createFrame = function(object) { | ||
340 | + var obj = {}; | ||
341 | + Utils.extend(obj, object); | ||
342 | + return obj; | ||
343 | + }; | ||
344 | + __exports__.createFrame = createFrame; | ||
345 | + return __exports__; | ||
346 | +})(__module2__, __module4__); | ||
347 | + | ||
348 | +// handlebars/runtime.js | ||
349 | +var __module5__ = (function(__dependency1__, __dependency2__, __dependency3__) { | ||
350 | + "use strict"; | ||
351 | + var __exports__ = {}; | ||
352 | + var Utils = __dependency1__; | ||
353 | + var Exception = __dependency2__; | ||
354 | + var COMPILER_REVISION = __dependency3__.COMPILER_REVISION; | ||
355 | + var REVISION_CHANGES = __dependency3__.REVISION_CHANGES; | ||
356 | + | ||
357 | + function checkRevision(compilerInfo) { | ||
358 | + var compilerRevision = compilerInfo && compilerInfo[0] || 1, | ||
359 | + currentRevision = COMPILER_REVISION; | ||
360 | + | ||
361 | + if (compilerRevision !== currentRevision) { | ||
362 | + if (compilerRevision < currentRevision) { | ||
363 | + var runtimeVersions = REVISION_CHANGES[currentRevision], | ||
364 | + compilerVersions = REVISION_CHANGES[compilerRevision]; | ||
365 | + throw new Exception("Template was precompiled with an older version of Handlebars than the current runtime. "+ | ||
366 | + "Please update your precompiler to a newer version ("+runtimeVersions+") or downgrade your runtime to an older version ("+compilerVersions+")."); | ||
367 | + } else { | ||
368 | + // Use the embedded version info since the runtime doesn't know about this revision yet | ||
369 | + throw new Exception("Template was precompiled with a newer version of Handlebars than the current runtime. "+ | ||
370 | + "Please update your runtime to a newer version ("+compilerInfo[1]+")."); | ||
371 | + } | ||
372 | + } | ||
373 | + } | ||
374 | + | ||
375 | + __exports__.checkRevision = checkRevision;// TODO: Remove this line and break up compilePartial | ||
376 | + | ||
377 | + function template(templateSpec, env) { | ||
378 | + if (!env) { | ||
379 | + throw new Exception("No environment passed to template"); | ||
380 | + } | ||
381 | + | ||
382 | + // Note: Using env.VM references rather than local var references throughout this section to allow | ||
383 | + // for external users to override these as psuedo-supported APIs. | ||
384 | + var invokePartialWrapper = function(partial, name, context, helpers, partials, data) { | ||
385 | + var result = env.VM.invokePartial.apply(this, arguments); | ||
386 | + if (result != null) { return result; } | ||
387 | + | ||
388 | + if (env.compile) { | ||
389 | + var options = { helpers: helpers, partials: partials, data: data }; | ||
390 | + partials[name] = env.compile(partial, { data: data !== undefined }, env); | ||
391 | + return partials[name](context, options); | ||
392 | + } else { | ||
393 | + throw new Exception("The partial " + name + " could not be compiled when running in runtime-only mode"); | ||
394 | + } | ||
395 | + }; | ||
396 | + | ||
397 | + // Just add water | ||
398 | + var container = { | ||
399 | + escapeExpression: Utils.escapeExpression, | ||
400 | + invokePartial: invokePartialWrapper, | ||
401 | + programs: [], | ||
402 | + program: function(i, fn, data) { | ||
403 | + var programWrapper = this.programs[i]; | ||
404 | + if(data) { | ||
405 | + programWrapper = program(i, fn, data); | ||
406 | + } else if (!programWrapper) { | ||
407 | + programWrapper = this.programs[i] = program(i, fn); | ||
408 | + } | ||
409 | + return programWrapper; | ||
410 | + }, | ||
411 | + merge: function(param, common) { | ||
412 | + var ret = param || common; | ||
413 | + | ||
414 | + if (param && common && (param !== common)) { | ||
415 | + ret = {}; | ||
416 | + Utils.extend(ret, common); | ||
417 | + Utils.extend(ret, param); | ||
418 | + } | ||
419 | + return ret; | ||
420 | + }, | ||
421 | + programWithDepth: env.VM.programWithDepth, | ||
422 | + noop: env.VM.noop, | ||
423 | + compilerInfo: null | ||
424 | + }; | ||
425 | + | ||
426 | + return function(context, options) { | ||
427 | + options = options || {}; | ||
428 | + var namespace = options.partial ? options : env, | ||
429 | + helpers, | ||
430 | + partials; | ||
431 | + | ||
432 | + if (!options.partial) { | ||
433 | + helpers = options.helpers; | ||
434 | + partials = options.partials; | ||
435 | + } | ||
436 | + var result = templateSpec.call( | ||
437 | + container, | ||
438 | + namespace, context, | ||
439 | + helpers, | ||
440 | + partials, | ||
441 | + options.data); | ||
442 | + | ||
443 | + if (!options.partial) { | ||
444 | + env.VM.checkRevision(container.compilerInfo); | ||
445 | + } | ||
446 | + | ||
447 | + return result; | ||
448 | + }; | ||
449 | + } | ||
450 | + | ||
451 | + __exports__.template = template;function programWithDepth(i, fn, data /*, $depth */) { | ||
452 | + var args = Array.prototype.slice.call(arguments, 3); | ||
453 | + | ||
454 | + var prog = function(context, options) { | ||
455 | + options = options || {}; | ||
456 | + | ||
457 | + return fn.apply(this, [context, options.data || data].concat(args)); | ||
458 | + }; | ||
459 | + prog.program = i; | ||
460 | + prog.depth = args.length; | ||
461 | + return prog; | ||
462 | + } | ||
463 | + | ||
464 | + __exports__.programWithDepth = programWithDepth;function program(i, fn, data) { | ||
465 | + var prog = function(context, options) { | ||
466 | + options = options || {}; | ||
467 | + | ||
468 | + return fn(context, options.data || data); | ||
469 | + }; | ||
470 | + prog.program = i; | ||
471 | + prog.depth = 0; | ||
472 | + return prog; | ||
473 | + } | ||
474 | + | ||
475 | + __exports__.program = program;function invokePartial(partial, name, context, helpers, partials, data) { | ||
476 | + var options = { partial: true, helpers: helpers, partials: partials, data: data }; | ||
477 | + | ||
478 | + if(partial === undefined) { | ||
479 | + throw new Exception("The partial " + name + " could not be found"); | ||
480 | + } else if(partial instanceof Function) { | ||
481 | + return partial(context, options); | ||
482 | + } | ||
483 | + } | ||
484 | + | ||
485 | + __exports__.invokePartial = invokePartial;function noop() { return ""; } | ||
486 | + | ||
487 | + __exports__.noop = noop; | ||
488 | + return __exports__; | ||
489 | +})(__module2__, __module4__, __module1__); | ||
490 | + | ||
491 | +// handlebars.runtime.js | ||
492 | +var __module0__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) { | ||
493 | + "use strict"; | ||
494 | + var __exports__; | ||
495 | + /*globals Handlebars: true */ | ||
496 | + var base = __dependency1__; | ||
497 | + | ||
498 | + // Each of these augment the Handlebars object. No need to setup here. | ||
499 | + // (This is done to easily share code between commonjs and browse envs) | ||
500 | + var SafeString = __dependency2__; | ||
501 | + var Exception = __dependency3__; | ||
502 | + var Utils = __dependency4__; | ||
503 | + var runtime = __dependency5__; | ||
504 | + | ||
505 | + // For compatibility and usage outside of module systems, make the Handlebars object a namespace | ||
506 | + var create = function() { | ||
507 | + var hb = new base.HandlebarsEnvironment(); | ||
508 | + | ||
509 | + Utils.extend(hb, base); | ||
510 | + hb.SafeString = SafeString; | ||
511 | + hb.Exception = Exception; | ||
512 | + hb.Utils = Utils; | ||
513 | + | ||
514 | + hb.VM = runtime; | ||
515 | + hb.template = function(spec) { | ||
516 | + return runtime.template(spec, hb); | ||
517 | + }; | ||
518 | + | ||
519 | + return hb; | ||
520 | + }; | ||
521 | + | ||
522 | + var Handlebars = create(); | ||
523 | + Handlebars.create = create; | ||
524 | + | ||
525 | + __exports__ = Handlebars; | ||
526 | + return __exports__; | ||
527 | +})(__module1__, __module3__, __module4__, __module2__, __module5__); | ||
528 | + | ||
529 | + return __module0__; | ||
530 | +})(); |
@@ -0,0 +1,1880 @@ | @@ -0,0 +1,1880 @@ | ||
1 | +jQuery(function($) { $.extend({ | ||
2 | + form: function(url, data, method) { | ||
3 | + if (method == null) method = 'POST'; | ||
4 | + if (data == null) data = {}; | ||
5 | + | ||
6 | + var form = $('<form>').attr({ | ||
7 | + method: method, | ||
8 | + action: url | ||
9 | + }).css({ | ||
10 | + display: 'none' | ||
11 | + }); | ||
12 | + | ||
13 | + var addData = function(name, data) { | ||
14 | + if ($.isArray(data)) { | ||
15 | + for (var i = 0; i < data.length; i++) { | ||
16 | + var value = data[i]; | ||
17 | + addData(name + '[]', value); | ||
18 | + } | ||
19 | + } else if (typeof data === 'object') { | ||
20 | + for (var key in data) { | ||
21 | + if (data.hasOwnProperty(key)) { | ||
22 | + addData(name + '[' + key + ']', data[key]); | ||
23 | + } | ||
24 | + } | ||
25 | + } else if (data != null) { | ||
26 | + form.append($('<input>').attr({ | ||
27 | + type: 'hidden', | ||
28 | + name: String(name), | ||
29 | + value: String(data) | ||
30 | + })); | ||
31 | + } | ||
32 | + }; | ||
33 | + | ||
34 | + for (var key in data) { | ||
35 | + if (data.hasOwnProperty(key)) { | ||
36 | + addData(key, data[key]); | ||
37 | + } | ||
38 | + } | ||
39 | + | ||
40 | + return form.appendTo('body'); | ||
41 | + } | ||
42 | +}); }); | ||
43 | + | ||
44 | + | ||
45 | +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
46 | +(function (global){ | ||
47 | +/************ | ||
48 | +* Templates * | ||
49 | +*************/ | ||
50 | +var wlRegisterTpl = require('./templates/wlRegisterTpl'); | ||
51 | +var wlChoiceTpl = require('./templates/wlChoiceTpl'); | ||
52 | +var wlMainTpl = require('./templates/wlMainTpl'); | ||
53 | +var wlChoiceTpl = require('./templates/wlChoiceTpl'); | ||
54 | + | ||
55 | +/******* | ||
56 | +* Core * | ||
57 | +********/ | ||
58 | +var wlGlobalObjectLogic = require('./core/wlGlobalObject'); | ||
59 | +var wlRegisterLogic = require('./core/wlRegister'); | ||
60 | +var wlMainLogic = require('./core/wlMain'); | ||
61 | +var wlChoiceLogic = require('./core/wlChoice'); | ||
62 | + | ||
63 | +/************ | ||
64 | +* Instances * | ||
65 | +*************/ | ||
66 | + | ||
67 | +var rF, cF, mF; | ||
68 | + | ||
69 | +/*** BEGIN ***/ | ||
70 | + | ||
71 | +buildRegisterFrame(); // Build | ||
72 | + | ||
73 | +$('#registerContainer').find('.configurarSinal > button').click(function(e) { | ||
74 | + buildGlobalConfig(); // Build | ||
75 | + | ||
76 | + buildChoiceFrame(); // Build | ||
77 | + | ||
78 | + $('body').on('click', 'polygon:nth-of-type(1)', function(e) { | ||
79 | + configMainFrame(0); | ||
80 | + buildMainFrame(); | ||
81 | + }); | ||
82 | + | ||
83 | + $('body').on('click', 'polygon:nth-of-type(2)', function(e) { | ||
84 | + configMainFrame(1); | ||
85 | + buildMainFrame(); | ||
86 | + }); | ||
87 | + | ||
88 | + $('body').on('click', 'polygon:nth-of-type(3)', function(e) { | ||
89 | + configMainFrame(2); | ||
90 | + buildMainFrame(); | ||
91 | + }); | ||
92 | +}); | ||
93 | + | ||
94 | +$('body').on('click', '.continuar', function(e) { | ||
95 | + removeTemplate($('#mainContainer')); | ||
96 | + insertTemplate(Handlebars.templates.wlChoiceTpl()); | ||
97 | + | ||
98 | + cF = null; | ||
99 | + cF = new wlChoiceLogic.choiceFrame(); | ||
100 | + cF.run(); | ||
101 | +}); | ||
102 | + | ||
103 | +$('body').on('click', '.gerar', function(e) { | ||
104 | + /* $.ajax({ | ||
105 | + type: 'POST', | ||
106 | + url: $(location).attr('href'), | ||
107 | + // url: 'http://0.0.0.0:9000/signal', | ||
108 | + data: wlGlobalConfig.getSignalObject() | ||
109 | + }).done(function(data) { | ||
110 | + console.log(data); | ||
111 | + }); */ | ||
112 | + | ||
113 | + var object = { 'sign' : wlGlobalConfig.getSignalObject() }; | ||
114 | + object.authenticity_token = $("meta[name='csrf-token']").attr("content"); | ||
115 | + | ||
116 | + $.form($(location).attr('href'), object).submit(); | ||
117 | + | ||
118 | + console.log(wlGlobalConfig.getSignalObject()); | ||
119 | +}); | ||
120 | + | ||
121 | +/*** END ***/ | ||
122 | + | ||
123 | +/*** Configuration of the Main Frame ***/ | ||
124 | + | ||
125 | +function configMainFrame(index) { | ||
126 | + var currentConfigLabels = ['expression', 'rightHand', 'leftHand']; | ||
127 | + | ||
128 | + wlGlobalConfig.setCurrentConfig(currentConfigLabels[index]); | ||
129 | + configQuantityOfTabsAndPanels(); | ||
130 | + wlGlobalConfig.setFirstChoice(false); | ||
131 | +}; | ||
132 | + | ||
133 | +function configQuantityOfTabsAndPanels() { | ||
134 | + if (wlGlobalConfig.getCurrentConfig() === 'expression') { | ||
135 | + wlGlobalConfig.setQuantityOfTimelineBlocks(1); | ||
136 | + wlGlobalConfig.setQuantityOfTabsAndPanels(1); | ||
137 | + wlGlobalConfig.setPanelLabels(['Expressão Facial']); | ||
138 | + wlGlobalConfig.setTabsLabels(['Expressão']); | ||
139 | + return; | ||
140 | + } | ||
141 | + | ||
142 | + if ((wlGlobalConfig.getCurrentConfig() === 'rightHand') || (wlGlobalConfig.getCurrentConfig() === 'leftHand')) { | ||
143 | + if ((wlGlobalConfig.getTipoMov() === 'circular') || (wlGlobalConfig.getTipoMov() === 'semicircular')) { | ||
144 | + if (wlGlobalConfig.getTipoMov() === 'semicircular') { | ||
145 | + wlGlobalConfig.setQuantityOfTimelineBlocks(8); | ||
146 | + } else if (wlGlobalConfig.getTipoMov() === 'circular') { | ||
147 | + wlGlobalConfig.setQuantityOfTimelineBlocks(7); | ||
148 | + } | ||
149 | + | ||
150 | + wlGlobalConfig.setQuantityOfTabsAndPanels(4); | ||
151 | + wlGlobalConfig.setPanelLabels(['Configurações Iniciais', 'Configuração dos Dedos', 'Configuração da Palma da Mão', 'Localização do Movimento']); | ||
152 | + wlGlobalConfig.setTabsLabels(['Iniciais', 'Dedos', 'Palma da Mão', 'Localização']); | ||
153 | + } else if ((wlGlobalConfig.getTipoMov() === 'retilineo') || (wlGlobalConfig.getTipoMov() === 'pontual')) { | ||
154 | + wlGlobalConfig.setQuantityOfTimelineBlocks(4); | ||
155 | + wlGlobalConfig.setQuantityOfTabsAndPanels(3); | ||
156 | + wlGlobalConfig.setPanelLabels(['Configuração dos Dedos', 'Configuração da Palma da Mão', 'Localização do Movimento']); | ||
157 | + wlGlobalConfig.setTabsLabels(['Dedos', 'Palma da Mão', 'Localização']); | ||
158 | + } | ||
159 | + } | ||
160 | +}; | ||
161 | + | ||
162 | +/*** Build Functions ***/ | ||
163 | + | ||
164 | +function buildRegisterFrame() { | ||
165 | + insertTemplate(Handlebars.templates.wlRegisterTpl()); | ||
166 | + | ||
167 | + rF = new wlRegisterLogic.registerFrame(); | ||
168 | + rF.run(); | ||
169 | +}; | ||
170 | + | ||
171 | +function buildChoiceFrame() { | ||
172 | + removeTemplate($('#registerContainer')); | ||
173 | + insertTemplate(Handlebars.templates.wlChoiceTpl()); | ||
174 | + | ||
175 | + cF = new wlChoiceLogic.choiceFrame(); | ||
176 | + cF.run(); | ||
177 | +}; | ||
178 | + | ||
179 | +function buildMainFrame() { | ||
180 | + removeTemplate($('#choiceContainer')); | ||
181 | + insertTemplate(Handlebars.templates.wlMainTpl()); | ||
182 | + | ||
183 | + mF = new wlMainLogic.mainFrame(); | ||
184 | + mF.run(); | ||
185 | +}; | ||
186 | + | ||
187 | +function buildGlobalConfig() { | ||
188 | + global.wlGlobalConfig = new wlGlobalObjectLogic.globalConfig(); | ||
189 | + global.wlGlobalConfig.run(rF.getParams()); | ||
190 | +}; | ||
191 | + | ||
192 | +/*** Template Functions ***/ | ||
193 | + | ||
194 | +function insertTemplate(template) { | ||
195 | + $('body').prepend(template); | ||
196 | +}; | ||
197 | + | ||
198 | +function removeTemplate(template) { | ||
199 | + template.remove(); | ||
200 | +}; | ||
201 | +}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
202 | +},{"./core/wlChoice":2,"./core/wlGlobalObject":3,"./core/wlMain":4,"./core/wlRegister":5,"./templates/wlChoiceTpl":6,"./templates/wlMainTpl":7,"./templates/wlRegisterTpl":8}],2:[function(require,module,exports){ | ||
203 | +(function (global){ | ||
204 | +var choiceFrame = function() { | ||
205 | + | ||
206 | + /* Function Scope */ | ||
207 | + var self = this; | ||
208 | + | ||
209 | + /* Main Variables */ | ||
210 | + var choiceContainer; | ||
211 | + | ||
212 | + function _init() { | ||
213 | + self.choiceContainer = $('#choiceContainer'); | ||
214 | + }; | ||
215 | + | ||
216 | + function _finishChoice(start, end) { | ||
217 | + for (var i = start; i < (end + 1); i++) { | ||
218 | + self.choiceContainer.find('polygon:nth-of-type('+ i +')').attr('class', 'done'); | ||
219 | + } | ||
220 | + }; | ||
221 | + | ||
222 | + function _activeChoice(start, end) { | ||
223 | + for (var i = start; i < (end + 1); i++) | ||
224 | + self.choiceContainer.find('polygon:nth-of-type('+ i +')').attr('class', 'active'); | ||
225 | + }; | ||
226 | + | ||
227 | + function _disableChoice(index) { | ||
228 | + self.choiceContainer.find('polygon:nth-of-type('+ index +')').attr('class', 'disabled'); | ||
229 | + self.choiceContainer.find('polygon:nth-of-type('+ index +')').unbind('mouseenter'); | ||
230 | + }; | ||
231 | + | ||
232 | + function _unbindHoverEvent(start, end) { | ||
233 | + for (var i = start; i < (end + 1); i++) | ||
234 | + self.choiceContainer.find('polygon:nth-of-type('+ i +')').unbind('mouseenter'); | ||
235 | + }; | ||
236 | + | ||
237 | + /* Active choices at the first iteration */ | ||
238 | + function _setActiveChoices() { | ||
239 | + | ||
240 | + var globalConfig = global.wlGlobalConfig; | ||
241 | + | ||
242 | + if (!globalConfig.getFirstChoice()) | ||
243 | + return; | ||
244 | + | ||
245 | + if (globalConfig.getQuantMaos() === 'uma') { | ||
246 | + _activeChoice(1, 2); | ||
247 | + _disableChoice(3); | ||
248 | + } else if (globalConfig.getQuantMaos() === 'duas') { | ||
249 | + _activeChoice(1, 3); | ||
250 | + } | ||
251 | + }; | ||
252 | + | ||
253 | + /* Active choices after the first iteration */ | ||
254 | + function _updateChoices() { | ||
255 | + var globalConfig = global.wlGlobalConfig; | ||
256 | + | ||
257 | + if (globalConfig.getFirstChoice()) | ||
258 | + return; | ||
259 | + | ||
260 | + if (globalConfig.getQuantMaos() === 'uma') { | ||
261 | + if (globalConfig.isExpressionSet()) { | ||
262 | + _finishChoice(1, 1); | ||
263 | + _unbindHoverEvent(1, 1); | ||
264 | + _activeChoice(2, 2); | ||
265 | + } else if (globalConfig.isRightHandSet()) { | ||
266 | + _finishChoice(2, 2); | ||
267 | + _unbindHoverEvent(2, 2); | ||
268 | + _activeChoice(1, 1); | ||
269 | + } | ||
270 | + | ||
271 | + _disableChoice(3); | ||
272 | + } else if (globalConfig.getQuantMaos() === 'duas') { | ||
273 | + if ((globalConfig.isExpressionSet()) && (globalConfig.isRightHandSet())) { | ||
274 | + _finishChoice(1, 2); | ||
275 | + _unbindHoverEvent(1, 2); | ||
276 | + _activeChoice(3, 3); | ||
277 | + return; | ||
278 | + } else if ((globalConfig.isExpressionSet()) && (globalConfig.isLeftHandSet())) { | ||
279 | + _finishChoice(1, 1); | ||
280 | + _finishChoice(3, 3); | ||
281 | + _unbindHoverEvent(1, 1); | ||
282 | + _unbindHoverEvent(3, 3); | ||
283 | + _activeChoice(2, 2); | ||
284 | + return; | ||
285 | + } else if ((globalConfig.isRightHandSet()) && (globalConfig.isLeftHandSet())) { | ||
286 | + _finishChoice(2, 3); | ||
287 | + _unbindHoverEvent(2, 3); | ||
288 | + _activeChoice(1, 1); | ||
289 | + return; | ||
290 | + } | ||
291 | + | ||
292 | + if (globalConfig.isExpressionSet()) { | ||
293 | + _finishChoice(1, 1); | ||
294 | + _unbindHoverEvent(1, 1); | ||
295 | + _activeChoice(2, 3); | ||
296 | + } else if (globalConfig.isRightHandSet()) { | ||
297 | + _finishChoice(2, 2); | ||
298 | + _unbindHoverEvent(2, 2); | ||
299 | + _activeChoice(1, 1); | ||
300 | + _activeChoice(3, 3); | ||
301 | + } else if (globalConfig.isLeftHandSet()) { | ||
302 | + _finishChoice(3, 3); | ||
303 | + _unbindHoverEvent(3, 3); | ||
304 | + _activeChoice(1, 2); | ||
305 | + } | ||
306 | + } | ||
307 | + }; | ||
308 | + | ||
309 | + function _bindHoverChoices() { | ||
310 | + | ||
311 | + var previewField = self.choiceContainer.find('.preview > p'); | ||
312 | + | ||
313 | + self.choiceContainer.find('polygon:nth-of-type(1)').on('mouseenter', function(e){ | ||
314 | + previewField.text('Expressão Facial'); | ||
315 | + }); | ||
316 | + | ||
317 | + self.choiceContainer.find('polygon:nth-of-type(2)').on('mouseenter', function(e){ | ||
318 | + previewField.text('Mão Direita'); | ||
319 | + }); | ||
320 | + | ||
321 | + self.choiceContainer.find('polygon:nth-of-type(3)').on('mouseenter', function(e){ | ||
322 | + previewField.text('Mão Esquerda'); | ||
323 | + }); | ||
324 | + | ||
325 | + self.choiceContainer.find('polygon').on('mouseout', function(e) { | ||
326 | + previewField.text(''); | ||
327 | + }); | ||
328 | + }; | ||
329 | + | ||
330 | + return { | ||
331 | + run: function() { | ||
332 | + _init(); | ||
333 | + _bindHoverChoices(); | ||
334 | + _setActiveChoices(); | ||
335 | + _updateChoices(); | ||
336 | + } | ||
337 | + } | ||
338 | +}; | ||
339 | + | ||
340 | +module.exports.choiceFrame = choiceFrame; | ||
341 | +}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
342 | +},{}],3:[function(require,module,exports){ | ||
343 | +(function (global){ | ||
344 | +var globalConfig = function() { | ||
345 | + | ||
346 | + /* Function Scope */ | ||
347 | + var self = this; | ||
348 | + | ||
349 | + /* Global Object */ | ||
350 | + var globalConfig; | ||
351 | + | ||
352 | + /* Main Variables */ | ||
353 | + var signalObject, | ||
354 | + params, | ||
355 | + name, | ||
356 | + quantMaos, | ||
357 | + tipoMov, | ||
358 | + repeticao; | ||
359 | + | ||
360 | + /* Support Variables */ | ||
361 | + var panelLabels, | ||
362 | + tabsLabels, | ||
363 | + quantityOfTabsAndPanels, | ||
364 | + quantityOfTimelineBlocks, | ||
365 | + currentConfig, | ||
366 | + expression, | ||
367 | + rightHand, | ||
368 | + leftHand, | ||
369 | + firstChoice; | ||
370 | + | ||
371 | + function _init(params) { | ||
372 | + self.globalConfig = global.wlGlobalConfig; | ||
373 | + self.params = params; | ||
374 | + | ||
375 | + _initMain(); | ||
376 | + _initSupport(); | ||
377 | + _initSignalObject(); | ||
378 | + }; | ||
379 | + | ||
380 | + function _initMain() { | ||
381 | + self.name = self.params.name; | ||
382 | + self.quantMaos = self.params.quantMaos; | ||
383 | + self.tipoMov = self.params.tipoMov; | ||
384 | + self.repeticao = self.params.repeticao; | ||
385 | + }; | ||
386 | + | ||
387 | + function _initSupport() { | ||
388 | + switch (self.quantMaos) { | ||
389 | + case 'uma': | ||
390 | + self.expression = false; | ||
391 | + self.rightHand = false; | ||
392 | + self.leftHand = true; | ||
393 | + break; | ||
394 | + | ||
395 | + case 'duas': | ||
396 | + self.expression = false; | ||
397 | + self.rightHand = false; | ||
398 | + self.leftHand = false; | ||
399 | + break; | ||
400 | + } | ||
401 | + | ||
402 | + self.firstChoice = true; | ||
403 | + }; | ||
404 | + | ||
405 | + function _initSignalObject() { | ||
406 | + self.signalObject = { | ||
407 | + 'userId': null, | ||
408 | + 'typeOfMovement': null, | ||
409 | + 'qntHands': null, | ||
410 | + 'rightHand': [], | ||
411 | + 'leftHand': [], | ||
412 | + 'facialExp': null, | ||
413 | + 'repetition': self.globalConfig.getRepeticao(), | ||
414 | + 'signName': null | ||
415 | + } | ||
416 | + }; | ||
417 | + | ||
418 | + function _setSignalObject(config, params) { | ||
419 | + if (config === 'userId') | ||
420 | + self.signalObject.userId = params; | ||
421 | + | ||
422 | + if (config === 'typeOfMovement') | ||
423 | + self.signalObject.typeOfMovement = params; | ||
424 | + | ||
425 | + if (config === 'qntHands') | ||
426 | + self.signalObject.qntHands = params; | ||
427 | + | ||
428 | + if (config === 'rightHand') | ||
429 | + self.signalObject.rightHand = params; | ||
430 | + | ||
431 | + if (config === 'leftHand') | ||
432 | + self.signalObject.leftHand = params; | ||
433 | + | ||
434 | + if (config === 'facialExp') | ||
435 | + self.signalObject.facialExp = params; | ||
436 | + | ||
437 | + if (config === 'signName') | ||
438 | + self.signalObject.signName = params; | ||
439 | + }; | ||
440 | + | ||
441 | + function _setCurrentConfig(current) { | ||
442 | + self.currentConfig = current; | ||
443 | + }; | ||
444 | + | ||
445 | + function _setFirstChoice(params) { | ||
446 | + self.firstChoice = params; | ||
447 | + }; | ||
448 | + | ||
449 | + function _setPanelLabels(labels) { | ||
450 | + self.panelLabels = labels; | ||
451 | + }; | ||
452 | + | ||
453 | + function _setTabsLabels(labels) { | ||
454 | + self.tabsLabels = labels; | ||
455 | + }; | ||
456 | + | ||
457 | + function _setQuantityOfTabsAndPanels(quantity) { | ||
458 | + self.quantityOfTabsAndPanels = quantity; | ||
459 | + }; | ||
460 | + | ||
461 | + function _setQuantityOfTimelineBlocks(quantity) { | ||
462 | + self.quantityOfTimelineBlocks = quantity; | ||
463 | + }; | ||
464 | + | ||
465 | + function _expressionSet(config) { | ||
466 | + self.expression = config; | ||
467 | + }; | ||
468 | + | ||
469 | + function _rightHandSet(config) { | ||
470 | + self.rightHand = config; | ||
471 | + }; | ||
472 | + | ||
473 | + function _leftHandSet(config) { | ||
474 | + self.leftHand = config; | ||
475 | + }; | ||
476 | + | ||
477 | + function _getName() { return self.name; }; | ||
478 | + function _getQuantMaos() { return self.quantMaos; }; | ||
479 | + function _getTipoMov() { return self.tipoMov; }; | ||
480 | + function _getRepeticao() { return self.repeticao; }; | ||
481 | + function _getQuantityOfTabsAndPanels() { return self.quantityOfTabsAndPanels; }; | ||
482 | + function _getQuantityOfTimelineBlocks() { return self.quantityOfTimelineBlocks; }; | ||
483 | + function _getPanelLabels() { return self.panelLabels; }; | ||
484 | + function _getTabLabels() { return self.tabsLabels; }; | ||
485 | + function _getCurrentConfig() { return self.currentConfig; }; | ||
486 | + function _getFirstChoice() { return self.firstChoice; }; | ||
487 | + function _getSignalObject() { return self.signalObject; }; | ||
488 | + | ||
489 | + function _isExpressionSet() { return self.expression; }; | ||
490 | + function _isRightHandSet() { return self.rightHand; }; | ||
491 | + function _isLeftHandSet() { return self.leftHand; }; | ||
492 | + | ||
493 | + return { | ||
494 | + run: function(params) { | ||
495 | + _init(params); | ||
496 | + }, | ||
497 | + | ||
498 | + getName: function() { | ||
499 | + return _getName(); | ||
500 | + }, | ||
501 | + | ||
502 | + getQuantMaos: function() { | ||
503 | + return _getQuantMaos(); | ||
504 | + }, | ||
505 | + | ||
506 | + getTipoMov: function() { | ||
507 | + return _getTipoMov(); | ||
508 | + }, | ||
509 | + | ||
510 | + getRepeticao: function() { | ||
511 | + return _getRepeticao(); | ||
512 | + }, | ||
513 | + | ||
514 | + isExpressionSet: function() { | ||
515 | + return _isExpressionSet(); | ||
516 | + }, | ||
517 | + | ||
518 | + isRightHandSet: function() { | ||
519 | + return _isRightHandSet(); | ||
520 | + }, | ||
521 | + | ||
522 | + isLeftHandSet: function() { | ||
523 | + return _isLeftHandSet(); | ||
524 | + }, | ||
525 | + | ||
526 | + getQuantityOfTabsAndPanels: function() { | ||
527 | + return _getQuantityOfTabsAndPanels(); | ||
528 | + }, | ||
529 | + | ||
530 | + getPanelLabels: function() { | ||
531 | + return _getPanelLabels(); | ||
532 | + }, | ||
533 | + | ||
534 | + getTabLabels: function() { | ||
535 | + return _getTabLabels(); | ||
536 | + }, | ||
537 | + | ||
538 | + getCurrentConfig: function() { | ||
539 | + return _getCurrentConfig(); | ||
540 | + }, | ||
541 | + | ||
542 | + getFirstChoice: function() { | ||
543 | + return _getFirstChoice(); | ||
544 | + }, | ||
545 | + | ||
546 | + getQuantityOfTimelineBlocks: function() { | ||
547 | + return _getQuantityOfTimelineBlocks(); | ||
548 | + }, | ||
549 | + | ||
550 | + getSignalObject: function() { | ||
551 | + return _getSignalObject(); | ||
552 | + }, | ||
553 | + | ||
554 | + setCurrentConfig: function(current) { | ||
555 | + _setCurrentConfig(current); | ||
556 | + }, | ||
557 | + | ||
558 | + setFirstChoice: function(firstChoice) { | ||
559 | + _setFirstChoice(firstChoice); | ||
560 | + }, | ||
561 | + | ||
562 | + setQuantityOfTabsAndPanels: function(quantity) { | ||
563 | + _setQuantityOfTabsAndPanels(quantity); | ||
564 | + }, | ||
565 | + | ||
566 | + setPanelLabels: function(labels) { | ||
567 | + _setPanelLabels(labels); | ||
568 | + }, | ||
569 | + | ||
570 | + setTabsLabels: function(labels) { | ||
571 | + _setTabsLabels(labels); | ||
572 | + }, | ||
573 | + | ||
574 | + setQuantityOfTimelineBlocks: function(quantity) { | ||
575 | + _setQuantityOfTimelineBlocks(quantity); | ||
576 | + }, | ||
577 | + | ||
578 | + setSignalObject: function(config, params) { | ||
579 | + _setSignalObject(config, params); | ||
580 | + }, | ||
581 | + | ||
582 | + expressionSet: function(config) { | ||
583 | + _expressionSet(config); | ||
584 | + }, | ||
585 | + | ||
586 | + rightHandSet: function(config) { | ||
587 | + _rightHandSet(config); | ||
588 | + }, | ||
589 | + | ||
590 | + leftHandSet: function(config) { | ||
591 | + _leftHandSet(config); | ||
592 | + } | ||
593 | + } | ||
594 | +}; | ||
595 | + | ||
596 | +module.exports.globalConfig = globalConfig; | ||
597 | +}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
598 | +},{}],4:[function(require,module,exports){ | ||
599 | +(function (global){ | ||
600 | +var mainFrame = function() { | ||
601 | + | ||
602 | + /* Function Scope */ | ||
603 | + var self = this; | ||
604 | + | ||
605 | + /* wlGlobalConfig Holder Variable */ | ||
606 | + var globalConfig; | ||
607 | + | ||
608 | + /* Main Variables */ | ||
609 | + var configsObject, | ||
610 | + mainContainer, | ||
611 | + textsContainer, | ||
612 | + tabsContainer, | ||
613 | + panelsContainer, | ||
614 | + avatarContainer, | ||
615 | + timelineContainer; | ||
616 | + | ||
617 | + /* JSON Variables */ | ||
618 | + var imagesJSON, | ||
619 | + videosJSON; | ||
620 | + | ||
621 | + /* Support Variables */ | ||
622 | + var scrollVelocity, | ||
623 | + isScrolling, | ||
624 | + mainContent, | ||
625 | + timelineClicked; | ||
626 | + | ||
627 | + /* Init Functions */ | ||
628 | + function _init() { | ||
629 | + self.globalConfig = global.wlGlobalConfig; | ||
630 | + | ||
631 | + _initMain(); | ||
632 | + _initJSON(); | ||
633 | + _initSupport(); | ||
634 | + _initParametersObject(); | ||
635 | + _initSignalObject(); | ||
636 | + }; | ||
637 | + | ||
638 | + function _initMain() { | ||
639 | + self.mainContainer = $('#mainContainer'); | ||
640 | + self.textsContainer = $('#textsContainer'); | ||
641 | + self.tabsContainer = $('#tabsContainer'); | ||
642 | + self.panelsContainer = $('#panelsContainer'); | ||
643 | + self.avatarContainer = $('#avatarContainer'); | ||
644 | + self.timelineContainer = $('#timelineContainer'); | ||
645 | + }; | ||
646 | + | ||
647 | + function _initJSON() { | ||
648 | + self.imagesJSON = null; | ||
649 | + self.videosJSON = null; | ||
650 | + }; | ||
651 | + | ||
652 | + function _initSupport() { | ||
653 | + self.scrollVelocity = 2; // PX | ||
654 | + self.isScrolling = false; | ||
655 | + | ||
656 | + // Variável que auxilia ao highlight não ser movido duas vezes, | ||
657 | + // ao ser clicado em um bloco de timeline; | ||
658 | + self.timelineClicked = false; | ||
659 | + | ||
660 | + _setPanelLabel(0); | ||
661 | + }; | ||
662 | + | ||
663 | + function _initParametersObject() { | ||
664 | + | ||
665 | + self.configsObject = []; | ||
666 | + var length; | ||
667 | + | ||
668 | + if ((self.globalConfig.getTipoMov() === 'pontual') || (self.globalConfig.getTipoMov() === 'retilineo')) | ||
669 | + length = 3; | ||
670 | + | ||
671 | + if (self.globalConfig.getTipoMov() === 'circular') | ||
672 | + length = 6; | ||
673 | + | ||
674 | + if (self.globalConfig.getTipoMov() === 'semicircular') | ||
675 | + length = 7; | ||
676 | + | ||
677 | + if (self.globalConfig.getCurrentConfig() === 'expression') | ||
678 | + length = 1; | ||
679 | + | ||
680 | + for (var i = 0; i < length; i++) | ||
681 | + self.configsObject.push(''); | ||
682 | + }; | ||
683 | + | ||
684 | + function _initSignalObject() { | ||
685 | + self.globalConfig.setSignalObject('userId', 0); | ||
686 | + self.globalConfig.setSignalObject('typeOfMovement', self.globalConfig.getTipoMov()); | ||
687 | + self.globalConfig.setSignalObject('qntHands', self.globalConfig.getQuantMaos()); | ||
688 | + self.globalConfig.setSignalObject('signName', self.globalConfig.getName()); | ||
689 | + }; | ||
690 | + | ||
691 | + /* | ||
692 | + * Texts and Avatar Image Functions | ||
693 | + */ | ||
694 | + function _setPanelLabel(index) { | ||
695 | + var label = self.textsContainer.find('.pLWrapper'); | ||
696 | + | ||
697 | + label.text(self.globalConfig.getPanelLabels()[index]); | ||
698 | + }; | ||
699 | + | ||
700 | + function _setSignalName() { | ||
701 | + var name = self.textsContainer.find('.sNWrapper'); | ||
702 | + | ||
703 | + name.text(self.globalConfig.getName()); | ||
704 | + }; | ||
705 | + | ||
706 | + function _setAvatarImage() { | ||
707 | + | ||
708 | + var imageWrapper = self.avatarContainer.find('.wrapper'); | ||
709 | + var imageURL = self.imagesJSON.avatar; | ||
710 | + | ||
711 | + if (self.globalConfig.getCurrentConfig() === 'expression') | ||
712 | + imageWrapper.css('background-image', 'url(' + imageURL[0] + ')'); | ||
713 | + else if (self.globalConfig.getCurrentConfig() === 'rightHand') | ||
714 | + imageWrapper.css('background-image', 'url(' + imageURL[1] + ')'); | ||
715 | + else if (self.globalConfig.getCurrentConfig() === 'leftHand') | ||
716 | + imageWrapper.css('background-image', 'url(' + imageURL[2] + ')'); | ||
717 | + }; | ||
718 | + | ||
719 | + /* | ||
720 | + * DOM Functions | ||
721 | + */ | ||
722 | + function _createTabsDOM() { | ||
723 | + var tabs = self.tabsContainer.find('.tabs'); | ||
724 | + | ||
725 | + for (var i = 0; i < self.globalConfig.getQuantityOfTabsAndPanels(); i++) { | ||
726 | + if (i === 0) | ||
727 | + tabs.append('<li><p>' + self.globalConfig.getTabLabels()[i] + '</p><span class="arrow active"></span></li>'); | ||
728 | + else | ||
729 | + tabs.append('<li><p>' + self.globalConfig.getTabLabels()[i] + '</p><span class="arrow"></span></li>'); | ||
730 | + } | ||
731 | + }; | ||
732 | + | ||
733 | + function _createPanelsDOM() { | ||
734 | + | ||
735 | + var quantity = self.globalConfig.getQuantityOfTabsAndPanels(); | ||
736 | + | ||
737 | + if (quantity === 1) { | ||
738 | + _createPanel_Expression(); | ||
739 | + } else if (quantity === 3) { | ||
740 | + _createPanel_Fingers(); | ||
741 | + _createPanel_Orientation(); | ||
742 | + _createPanel_LocalizationsAndSubLocalizations(); | ||
743 | + } else if (quantity === 4) { | ||
744 | + _createPanel_Initial(); | ||
745 | + _createPanel_Fingers(); | ||
746 | + _createPanel_Orientation(); | ||
747 | + _createPanel_LocalizationsAndSubLocalizations(); | ||
748 | + } | ||
749 | + | ||
750 | + _createTimeline(); | ||
751 | + | ||
752 | + // Atualiza pela primeira vez qual é o atual panel ativo; | ||
753 | + self.mainContent = self.panelsContainer.find('.active').find('.mainContent').find('.wrapper'); | ||
754 | + | ||
755 | + function _createTimeline() { | ||
756 | + var timeline = self.timelineContainer.find('.wrapper'); | ||
757 | + var length = self.globalConfig.getQuantityOfTimelineBlocks(); | ||
758 | + | ||
759 | + for (var i = 0; i < length; i++) { | ||
760 | + if (i === 0) | ||
761 | + timeline.append('<span class="active"></span>'); | ||
762 | + else | ||
763 | + timeline.append('<span></span>'); | ||
764 | + } | ||
765 | + }; | ||
766 | + | ||
767 | + function _createPanel_Expression() { | ||
768 | + | ||
769 | + var panel = '<div class="expression active">' + | ||
770 | + '<div class="scrollUp"></div>' + | ||
771 | + '<div class="mainContent">' + | ||
772 | + '<div class="wrapper">' + | ||
773 | + '</div>' + | ||
774 | + '</div>' + | ||
775 | + '<div class="scrollDown"></div>' + | ||
776 | + '</div>'; | ||
777 | + | ||
778 | + self.panelsContainer.append(panel); | ||
779 | + }; | ||
780 | + | ||
781 | + function _createPanel_Initial() { | ||
782 | + | ||
783 | + var sentido = ['Horário', 'Anti-Horário']; | ||
784 | + var raio = ['Pequeno', 'Médio', 'Grande']; | ||
785 | + var orientacao = ['Perpendicular', 'Paralelo']; | ||
786 | + var direcao = ['Para Frente', 'Para Trás', 'Para Direita', 'Para Esquerda']; | ||
787 | + | ||
788 | + var panel = '<div class="initial active">' + | ||
789 | + '<div class="scrollUp"></div>' + | ||
790 | + '<div class="mainContent">' + | ||
791 | + '<div class="wrapper">'; | ||
792 | + | ||
793 | + if (self.globalConfig.getTipoMov() === 'semicircular') { | ||
794 | + panel += '<div>'; | ||
795 | + for (var j = 0; j < sentido.length; j++) { panel += '<span class="vWrapper"></span>'; } | ||
796 | + for (var k = 0; k < sentido.length; k++) { panel += '<div class="label">' + sentido[k] + '</div>'; } | ||
797 | + panel += '</div>'; | ||
798 | + | ||
799 | + panel += '<div>'; | ||
800 | + for (var l = 0; l < raio.length; l++) { panel += '<span class="vWrapper"></span>'; } | ||
801 | + for (var m = 0; m < raio.length; m++) { panel += '<div class="label">' + raio[m] + '</div>'; } | ||
802 | + panel += '</div>'; | ||
803 | + | ||
804 | + panel += '<div>'; | ||
805 | + for (var n = 0; n < orientacao.length; n++) { panel += '<span class="vWrapper"></span>'; } | ||
806 | + for (var o = 0; o < orientacao.length; o++) { panel += '<div class="label">' + orientacao[o] + '</div>'; } | ||
807 | + panel += '</div>'; | ||
808 | + | ||
809 | + panel += '<div>'; | ||
810 | + for (var p = 0; p < direcao.length; p++) { panel += '<span class="vWrapper"></span>'; } | ||
811 | + for (var q = 0; q < direcao.length; q++) { panel += '<div class="label">' + direcao[q] + '</div>'; } | ||
812 | + panel += '</div>'; | ||
813 | + } | ||
814 | + | ||
815 | + if (self.globalConfig.getTipoMov() === 'circular') { | ||
816 | + panel += '<div>'; | ||
817 | + for (var j = 0; j < sentido.length; j++) { panel += '<span class="vWrapper"></span>'; } | ||
818 | + for (var k = 0; k < sentido.length; k++) { panel += '<div class="label">' + sentido[k] + '</div>'; } | ||
819 | + panel += '</div>'; | ||
820 | + | ||
821 | + panel += '<div>'; | ||
822 | + for (var l = 0; l < raio.length; l++) { panel += '<span class="vWrapper"></span>'; } | ||
823 | + for (var m = 0; m < raio.length; m++) { panel += '<div class="label">' + raio[m] + '</div>'; } | ||
824 | + panel += '</div>'; | ||
825 | + | ||
826 | + panel += '<div style="margin-left: 180px;">'; | ||
827 | + for (var n = 0; n < orientacao.length; n++) { panel += '<span class="vWrapper"></span>'; } | ||
828 | + for (var o = 0; o < orientacao.length; o++) { panel += '<div class="label">' + orientacao[o] + '</div>'; } | ||
829 | + panel += '</div>'; | ||
830 | + } | ||
831 | + | ||
832 | + panel += '</div>' + | ||
833 | + '</div>' + | ||
834 | + '<div class="scrollDown"></div>' + | ||
835 | + '</div>'; | ||
836 | + | ||
837 | + self.panelsContainer.append(panel); | ||
838 | + }; | ||
839 | + | ||
840 | + function _createPanel_Fingers() { | ||
841 | + | ||
842 | + if ((self.globalConfig.getTipoMov() === 'pontual') || (self.globalConfig.getTipoMov() === 'retilineo')) | ||
843 | + var panel = '<div class="dedos active">'; | ||
844 | + else | ||
845 | + var panel = '<div class="dedos">'; | ||
846 | + | ||
847 | + panel += '<div class="scrollUp"></div>' + | ||
848 | + '<div class="mainContent">' + | ||
849 | + '<div class="wrapper">' + | ||
850 | + '</div>' + | ||
851 | + '</div>' + | ||
852 | + '<div class="scrollDown"></div>' + | ||
853 | + '</div>'; | ||
854 | + | ||
855 | + self.panelsContainer.append(panel); | ||
856 | + }; | ||
857 | + | ||
858 | + function _createPanel_Orientation() { | ||
859 | + var panel = '<div class="orientation">' + | ||
860 | + '<div class="scrollUp"></div>' + | ||
861 | + '<div class="mainContent">' + | ||
862 | + '<div class="wrapper">' + | ||
863 | + '</div>' + | ||
864 | + '</div>' + | ||
865 | + '<div class="scrollDown"></div>' + | ||
866 | + '</div>'; | ||
867 | + | ||
868 | + self.panelsContainer.append(panel); | ||
869 | + }; | ||
870 | + | ||
871 | + function _createPanel_LocalizationsAndSubLocalizations() { | ||
872 | + | ||
873 | + var panel = '<div class="localizations">' + | ||
874 | + '<div class="mainContent">' + | ||
875 | + '<div class="wrapper">' + | ||
876 | + '</div>' + | ||
877 | + '<div class="floatWrapper">'; | ||
878 | + | ||
879 | + for (var i = 0; i < 4; i++) { | ||
880 | + panel += '<div>' + | ||
881 | + '<div class="scrollUp"></div>' + | ||
882 | + '<img class="close" src="/system/wikilibras/images/close.png">' + | ||
883 | + '<div class="innerWrapper"></div>' + | ||
884 | + '<div class="scrollDown"></div>' + | ||
885 | + '</div>'; | ||
886 | + } | ||
887 | + | ||
888 | + panel += '</div>' + | ||
889 | + '</div>' + | ||
890 | + '</div>'; | ||
891 | + | ||
892 | + self.panelsContainer.append(panel); | ||
893 | + }; | ||
894 | + }; | ||
895 | + | ||
896 | + /* | ||
897 | + * Loading Functions | ||
898 | + */ | ||
899 | + function _loadingImagesAndVideos() { | ||
900 | + | ||
901 | + var quantity = self.globalConfig.getQuantityOfTabsAndPanels(); | ||
902 | + | ||
903 | + if (quantity === 1) { | ||
904 | + _populatePanel_Expression(); | ||
905 | + } else if (quantity === 3) { | ||
906 | + _populatePanel_Fingers(); | ||
907 | + _populatePanel_Orientation(); | ||
908 | + _populatePanel_LocalizationAndSubLocalization(); | ||
909 | + } else if (quantity === 4) { | ||
910 | + _populatePanel_Initial(); | ||
911 | + _populatePanel_Fingers(); | ||
912 | + _populatePanel_Orientation(); | ||
913 | + _populatePanel_LocalizationAndSubLocalization(); | ||
914 | + } | ||
915 | + }; | ||
916 | + | ||
917 | + function _populatePanel(element, jsonObject) { | ||
918 | + | ||
919 | + var length = jsonObject.length; | ||
920 | + | ||
921 | + for (var i = 0; i < length; i++) { | ||
922 | + element.append('<span></span>'); | ||
923 | + element.children().last().css('background-image', 'url(' + jsonObject[i] + ')'); | ||
924 | + } | ||
925 | + }; | ||
926 | + | ||
927 | + function _populatePanel_Expression() { | ||
928 | + | ||
929 | + var expressoes = self.panelsContainer.find('.expression').find('.mainContent').find('.wrapper'), | ||
930 | + expressoesImages = self.imagesJSON.expressao; | ||
931 | + | ||
932 | + _populatePanel(expressoes, expressoesImages); | ||
933 | + }; | ||
934 | + | ||
935 | + function _populatePanel_Initial() { | ||
936 | + | ||
937 | + var initialVideosJSON = self.videosJSON.iniciais, | ||
938 | + initialBlocks = self.panelsContainer.find('.vWrapper'), | ||
939 | + initialLabels = self.panelsContainer.find('.label'), | ||
940 | + length = initialBlocks.length, | ||
941 | + perpendicular, | ||
942 | + paralelo; | ||
943 | + | ||
944 | + var direcaoPerpen = $([initialBlocks[7], initialBlocks[8]]), | ||
945 | + labelsPerpen = $([initialLabels[7], initialLabels[8]]), | ||
946 | + direcaoParal = $([initialBlocks[9], initialBlocks[10]]), | ||
947 | + labelsParal = $([initialLabels[9], initialLabels[10]]); | ||
948 | + | ||
949 | + for (var i = 0; i < length; i++) { | ||
950 | + initialBlocks.eq(i).append( | ||
951 | + '<video class="video" width="100" height="150">' + | ||
952 | + '<source src="' + initialVideosJSON.mp4[i] + '" type="video/mp4">' + | ||
953 | + '<source src="' + initialVideosJSON.webm[i] + '" type="video/webm">' + | ||
954 | + '</video>'); | ||
955 | + | ||
956 | + if (i === 5) | ||
957 | + perpendicular = initialBlocks.eq(i); | ||
958 | + | ||
959 | + if (i === 6) | ||
960 | + paralelo = initialBlocks.eq(i); | ||
961 | + }; | ||
962 | + | ||
963 | + perpendicular.click(function(e) { | ||
964 | + direcaoParal.css('display', 'none'); | ||
965 | + labelsParal.css('display', 'none'); | ||
966 | + direcaoPerpen.css('display', 'inline'); | ||
967 | + labelsPerpen.css('display', 'block'); | ||
968 | + }); | ||
969 | + | ||
970 | + paralelo.click(function(e) { | ||
971 | + direcaoPerpen.css('display', 'none'); | ||
972 | + labelsPerpen.css('display', 'none'); | ||
973 | + direcaoParal.css('display', 'inline'); | ||
974 | + labelsParal.css('display', 'block'); | ||
975 | + }); | ||
976 | + }; | ||
977 | + | ||
978 | + function _populatePanel_Fingers() { | ||
979 | + | ||
980 | + var dedos = self.panelsContainer.find('.dedos').find('.mainContent').find('.wrapper'), | ||
981 | + dedosImages = self.imagesJSON.dedos; | ||
982 | + | ||
983 | + _populatePanel(dedos, dedosImages); | ||
984 | + }; | ||
985 | + | ||
986 | + function _populatePanel_Orientation() { | ||
987 | + | ||
988 | + var palma_mao = self.panelsContainer.find('.orientation').find('.mainContent').find('.wrapper'), | ||
989 | + palmaMaoImages = self.imagesJSON.palma_mao; | ||
990 | + | ||
991 | + _populatePanel(palma_mao, palmaMaoImages); | ||
992 | + }; | ||
993 | + | ||
994 | + function _populatePanelSubLocalization(element, jsonObject) { | ||
995 | + | ||
996 | + var length = jsonObject.mp4.length; | ||
997 | + | ||
998 | + for (var i = 0; i < length; i++) { | ||
999 | + element.append('<span></span>'); | ||
1000 | + element.children().last().append( | ||
1001 | + '<video class="video" width="134" height="185">' + | ||
1002 | + '<source src="' + jsonObject.mp4[i] + '" type="video/mp4">' + | ||
1003 | + '<source src="' + jsonObject.webm[i] + '" type="video/webm">' + | ||
1004 | + '</video>'); | ||
1005 | + }; | ||
1006 | + }; | ||
1007 | + | ||
1008 | + function _populatePanel_LocalizationAndSubLocalization() { | ||
1009 | + | ||
1010 | + var localizacao = self.panelsContainer.find('.localizations').find('.mainContent').find('.wrapper'), | ||
1011 | + sublocalizacao = self.panelsContainer.find('.localizations').find('.mainContent').find('.floatWrapper'), | ||
1012 | + localizacaoImages = self.imagesJSON.localizacao; | ||
1013 | + | ||
1014 | + _populatePanel(localizacao, localizacaoImages); | ||
1015 | + | ||
1016 | + for (var i = 0; i < 4; i++) { | ||
1017 | + if (i < 2) | ||
1018 | + _populatePanel(sublocalizacao.children().eq(i).find('.innerWrapper'), self.imagesJSON.sublocalizacao[i]); | ||
1019 | + | ||
1020 | + if (i === 2) | ||
1021 | + _populatePanelSubLocalization(sublocalizacao.children().eq(i).find('.innerWrapper'), self.videosJSON.sublocalizacao.media); | ||
1022 | + | ||
1023 | + if (i === 3) | ||
1024 | + _populatePanelSubLocalization(sublocalizacao.children().eq(i).find('.innerWrapper'), self.videosJSON.sublocalizacao.grande); | ||
1025 | + } | ||
1026 | + }; | ||
1027 | + | ||
1028 | + /* | ||
1029 | + * Bind Events Functions | ||
1030 | + */ | ||
1031 | + function _bindEventsOfTabsAndPanels() { | ||
1032 | + | ||
1033 | + var tabs = self.tabsContainer.find('.tabs').children(); | ||
1034 | + var panels = self.panelsContainer.children(); | ||
1035 | + | ||
1036 | + $.each(panels, function(index){ | ||
1037 | + tabs.eq(index).click(function(e) { | ||
1038 | + // Itera todas os panels e remove a class .active | ||
1039 | + panels.removeClass('active'); | ||
1040 | + // Adiciona a class .active ao panel clicado | ||
1041 | + panels.eq(index).addClass('active'); | ||
1042 | + // Itera todas as arrows das tabs e remove a class .active | ||
1043 | + tabs.find('.arrow').removeClass('active'); | ||
1044 | + // Adiciona a class .active a arrow da tab clicada | ||
1045 | + tabs.eq(index).find('.arrow').addClass('active'); | ||
1046 | + // Atualiza o label do panel | ||
1047 | + _setPanelLabel(index); | ||
1048 | + // Guarda em memória qual o panel ativo, para que os scrolls down e up possam manipulá-lo | ||
1049 | + _updateCurrentPanel('tabs'); | ||
1050 | + // Caso esteja no panel de sublocalização, dispara o evento clique do botão fechar | ||
1051 | + $('.close').trigger('click'); | ||
1052 | + | ||
1053 | + // Se a configuração atual for a de Expressão Facial, não há necessidade de registrar | ||
1054 | + // o evento de click nas tabs; | ||
1055 | + if (self.globalConfig.getCurrentConfig() === 'expression') | ||
1056 | + return; | ||
1057 | + | ||
1058 | + if (self.globalConfig.getTipoMov() === 'semicircular') { | ||
1059 | + switch (index) { | ||
1060 | + case 0: | ||
1061 | + if (!self.timelineClicked) | ||
1062 | + _moveHighlighter(0); | ||
1063 | + | ||
1064 | + break; | ||
1065 | + case 1: | ||
1066 | + if (!self.timelineClicked) | ||
1067 | + _moveHighlighter(4); | ||
1068 | + | ||
1069 | + break; | ||
1070 | + case 2: | ||
1071 | + if (!self.timelineClicked) | ||
1072 | + _moveHighlighter(5); | ||
1073 | + | ||
1074 | + break; | ||
1075 | + case 3: | ||
1076 | + if (!self.timelineClicked) | ||
1077 | + _moveHighlighter(6); | ||
1078 | + | ||
1079 | + break; | ||
1080 | + } | ||
1081 | + } | ||
1082 | + | ||
1083 | + if (self.globalConfig.getTipoMov() === 'circular') { | ||
1084 | + switch (index) { | ||
1085 | + case 0: | ||
1086 | + if (!self.timelineClicked) | ||
1087 | + _moveHighlighter(0); | ||
1088 | + | ||
1089 | + break; | ||
1090 | + case 1: | ||
1091 | + if (!self.timelineClicked) | ||
1092 | + _moveHighlighter(3); | ||
1093 | + | ||
1094 | + break; | ||
1095 | + case 2: | ||
1096 | + if (!self.timelineClicked) | ||
1097 | + _moveHighlighter(4); | ||
1098 | + | ||
1099 | + break; | ||
1100 | + case 3: | ||
1101 | + if (!self.timelineClicked) | ||
1102 | + _moveHighlighter(5); | ||
1103 | + | ||
1104 | + break; | ||
1105 | + } | ||
1106 | + } | ||
1107 | + | ||
1108 | + if (self.globalConfig.getTipoMov() === 'retilineo') { | ||
1109 | + switch (index) { | ||
1110 | + case 0: | ||
1111 | + if (!self.timelineClicked) | ||
1112 | + _moveHighlighter(0); | ||
1113 | + | ||
1114 | + break; | ||
1115 | + case 1: | ||
1116 | + if (!self.timelineClicked) | ||
1117 | + _moveHighlighter(1); | ||
1118 | + | ||
1119 | + break; | ||
1120 | + case 2: | ||
1121 | + if (!self.timelineClicked) | ||
1122 | + _moveHighlighter(2); | ||
1123 | + | ||
1124 | + break; | ||
1125 | + } | ||
1126 | + } | ||
1127 | + | ||
1128 | + if (self.globalConfig.getTipoMov() === 'pontual') { | ||
1129 | + switch (index) { | ||
1130 | + case 0: | ||
1131 | + if (!self.timelineClicked) | ||
1132 | + _moveHighlighter(0); | ||
1133 | + | ||
1134 | + break; | ||
1135 | + case 1: | ||
1136 | + if (!self.timelineClicked) | ||
1137 | + _moveHighlighter(1); | ||
1138 | + | ||
1139 | + break; | ||
1140 | + case 2: | ||
1141 | + if (!self.timelineClicked) | ||
1142 | + _moveHighlighter(2); | ||
1143 | + | ||
1144 | + break; | ||
1145 | + } | ||
1146 | + } | ||
1147 | + }); | ||
1148 | + }); | ||
1149 | + }; | ||
1150 | + | ||
1151 | + function _moveHighlighter(index) { | ||
1152 | + | ||
1153 | + var blocks = self.timelineContainer.find('.wrapper').children(); | ||
1154 | + | ||
1155 | + blocks.removeClass('active'); | ||
1156 | + blocks.eq(index).addClass('active'); | ||
1157 | + }; | ||
1158 | + | ||
1159 | + function _updateCurrentPanel(type) { | ||
1160 | + if (type === 'tabs') | ||
1161 | + self.mainContent = self.panelsContainer.find('.active').find('.mainContent').find('.wrapper'); | ||
1162 | + else if (type === 'blocks') | ||
1163 | + self.mainContent = self.panelsContainer.find('.localizations').find('.mainContent').find('.floatWrapper').find('.active').find('.innerWrapper'); | ||
1164 | + }; | ||
1165 | + | ||
1166 | + function _bindLocalizationPanelEvents() { | ||
1167 | + | ||
1168 | + var localizationBlocks = self.panelsContainer.find('.localizations').find('.mainContent').find('.wrapper').children(); | ||
1169 | + var floatWrapper = self.panelsContainer.find('.localizations').find('.mainContent').find('.floatWrapper'); | ||
1170 | + | ||
1171 | + $.each(localizationBlocks, function(index, block){ | ||
1172 | + $(block).click(function() { | ||
1173 | + floatWrapper.css('top', 0); | ||
1174 | + floatWrapper.children().removeClass('active'); | ||
1175 | + floatWrapper.children().eq(index).addClass('active'); | ||
1176 | + _updateCurrentPanel('blocks'); | ||
1177 | + }); | ||
1178 | + }); | ||
1179 | + | ||
1180 | + $('.close').click(function(e) { | ||
1181 | + if (floatWrapper.css('top') === '0px') | ||
1182 | + floatWrapper.css('top', -320 + 'px'); | ||
1183 | + }); | ||
1184 | + }; | ||
1185 | + | ||
1186 | + function _bindTimelineBlocksEvents() { | ||
1187 | + | ||
1188 | + var tabs = self.tabsContainer.find('.tabs').children(); | ||
1189 | + var timelineBlocks = self.timelineContainer.find('.wrapper').children(); | ||
1190 | + | ||
1191 | + if (timelineBlocks.length === 1) | ||
1192 | + return; | ||
1193 | + | ||
1194 | + if (self.globalConfig.getTipoMov() === 'semicircular') { | ||
1195 | + $.each(timelineBlocks, function(index, block){ | ||
1196 | + | ||
1197 | + // Iniciais | ||
1198 | + if ((index === 0) || (index === 1) || (index === 2) || (index === 3)) { | ||
1199 | + timelineBlocks.eq(index).click(function(e) { | ||
1200 | + self.timelineClicked = true; | ||
1201 | + tabs.eq(0).trigger('click'); | ||
1202 | + _moveHighlighter(index); | ||
1203 | + self.timelineClicked = false; | ||
1204 | + }); | ||
1205 | + } | ||
1206 | + | ||
1207 | + // Dedos | ||
1208 | + if (index === 4) { | ||
1209 | + timelineBlocks.eq(index).click(function(e) { | ||
1210 | + self.timelineClicked = true; | ||
1211 | + tabs.eq(1).trigger('click'); | ||
1212 | + _moveHighlighter(index); | ||
1213 | + self.timelineClicked = false; | ||
1214 | + }); | ||
1215 | + } | ||
1216 | + | ||
1217 | + // Palma da Mão | ||
1218 | + if (index === 5) { | ||
1219 | + timelineBlocks.eq(index).click(function(e) { | ||
1220 | + self.timelineClicked = true; | ||
1221 | + tabs.eq(2).trigger('click'); | ||
1222 | + _moveHighlighter(index); | ||
1223 | + self.timelineClicked = false; | ||
1224 | + }); | ||
1225 | + } | ||
1226 | + | ||
1227 | + // Localização | ||
1228 | + if ((index === 6) || (index === 7)) { | ||
1229 | + timelineBlocks.eq(index).click(function(e) { | ||
1230 | + self.timelineClicked = true; | ||
1231 | + tabs.eq(3).trigger('click'); | ||
1232 | + _moveHighlighter(index); | ||
1233 | + self.timelineClicked = false; | ||
1234 | + }); | ||
1235 | + } | ||
1236 | + }); | ||
1237 | + } | ||
1238 | + | ||
1239 | + if (self.globalConfig.getTipoMov() === 'circular') { | ||
1240 | + $.each(timelineBlocks, function(index, block){ | ||
1241 | + | ||
1242 | + // Iniciais | ||
1243 | + if ((index === 0) || (index === 1) || (index === 2)) { | ||
1244 | + timelineBlocks.eq(index).click(function(e) { | ||
1245 | + self.timelineClicked = true; | ||
1246 | + tabs.eq(0).trigger('click'); | ||
1247 | + _moveHighlighter(index); | ||
1248 | + self.timelineClicked = false; | ||
1249 | + }); | ||
1250 | + } | ||
1251 | + | ||
1252 | + // Dedos | ||
1253 | + if (index === 3) { | ||
1254 | + timelineBlocks.eq(index).click(function(e) { | ||
1255 | + self.timelineClicked = true; | ||
1256 | + tabs.eq(1).trigger('click'); | ||
1257 | + _moveHighlighter(index); | ||
1258 | + self.timelineClicked = false; | ||
1259 | + }); | ||
1260 | + } | ||
1261 | + | ||
1262 | + // Palma da Mão | ||
1263 | + if (index === 4) { | ||
1264 | + timelineBlocks.eq(index).click(function(e) { | ||
1265 | + self.timelineClicked = true; | ||
1266 | + tabs.eq(2).trigger('click'); | ||
1267 | + _moveHighlighter(index); | ||
1268 | + self.timelineClicked = false; | ||
1269 | + }); | ||
1270 | + } | ||
1271 | + | ||
1272 | + // Localização | ||
1273 | + if ((index === 5) || (index === 6)) { | ||
1274 | + timelineBlocks.eq(index).click(function(e) { | ||
1275 | + self.timelineClicked = true; | ||
1276 | + tabs.eq(3).trigger('click'); | ||
1277 | + _moveHighlighter(index); | ||
1278 | + self.timelineClicked = false; | ||
1279 | + }); | ||
1280 | + } | ||
1281 | + }); | ||
1282 | + } | ||
1283 | + | ||
1284 | + if ((self.globalConfig.getTipoMov() === 'retilineo') || (self.globalConfig.getTipoMov() === 'pontual')) { | ||
1285 | + $.each(timelineBlocks, function(index, block){ | ||
1286 | + | ||
1287 | + // Dedos | ||
1288 | + if (index === 0) { | ||
1289 | + timelineBlocks.eq(index).click(function(e) { | ||
1290 | + self.timelineClicked = true; | ||
1291 | + tabs.eq(0).trigger('click'); | ||
1292 | + _moveHighlighter(index); | ||
1293 | + self.timelineClicked = false; | ||
1294 | + }); | ||
1295 | + } | ||
1296 | + | ||
1297 | + // Palma da Mão | ||
1298 | + if (index === 1) { | ||
1299 | + timelineBlocks.eq(index).click(function(e) { | ||
1300 | + self.timelineClicked = true; | ||
1301 | + tabs.eq(1).trigger('click'); | ||
1302 | + _moveHighlighter(index); | ||
1303 | + self.timelineClicked = false; | ||
1304 | + }); | ||
1305 | + } | ||
1306 | + | ||
1307 | + // Localização | ||
1308 | + if ((index === 2) || (index === 3)) { | ||
1309 | + timelineBlocks.eq(index).click(function(e) { | ||
1310 | + self.timelineClicked = true; | ||
1311 | + tabs.eq(2).trigger('click'); | ||
1312 | + _moveHighlighter(index); | ||
1313 | + self.timelineClicked = false; | ||
1314 | + }); | ||
1315 | + } | ||
1316 | + }); | ||
1317 | + } | ||
1318 | + }; | ||
1319 | + | ||
1320 | + function _bindInitialVideosEvents(){ | ||
1321 | + | ||
1322 | + $(".video").bind('mouseover', function() { | ||
1323 | + this.play(); | ||
1324 | + }).bind('mouseout', function() { | ||
1325 | + this.currentTime = 0; | ||
1326 | + this.pause(); | ||
1327 | + }); | ||
1328 | + }; | ||
1329 | + | ||
1330 | + function _bindScrollEvents() { | ||
1331 | + | ||
1332 | + $('.scrollUp').bind('mouseover', function() { | ||
1333 | + self.isScrolling = true; | ||
1334 | + _scrollContent('up'); | ||
1335 | + }).bind('mouseout', function() { | ||
1336 | + self.isScrolling = false; | ||
1337 | + }); | ||
1338 | + | ||
1339 | + $('.scrollDown').bind('mouseover', function() { | ||
1340 | + self.isScrolling = true; | ||
1341 | + _scrollContent('down'); | ||
1342 | + }).bind('mouseout', function() { | ||
1343 | + self.isScrolling = false; | ||
1344 | + }); | ||
1345 | + }; | ||
1346 | + | ||
1347 | + function _scrollContent(direction) { | ||
1348 | + var velocity = (direction === 'up' ? '-=' + self.scrollVelocity + 'px' : '+=' + self.scrollVelocity + 'px'); | ||
1349 | + | ||
1350 | + self.mainContent.animate({ | ||
1351 | + scrollTop: velocity | ||
1352 | + }, 1, function() { | ||
1353 | + if (self.isScrolling) | ||
1354 | + _scrollContent(direction); | ||
1355 | + }); | ||
1356 | + }; | ||
1357 | + | ||
1358 | + /* | ||
1359 | + * JSON Functions | ||
1360 | + */ | ||
1361 | + function _getResourcesPath(callback) { | ||
1362 | + $.getJSON('/system/wikilibras/resources.json').done(function(json) { | ||
1363 | + self.imagesJSON = json.images; | ||
1364 | + self.videosJSON = json.videos; | ||
1365 | + callback(); | ||
1366 | + } | ||
1367 | + ); | ||
1368 | + }; | ||
1369 | + | ||
1370 | + function _bindConfigChoicesEvents() { | ||
1371 | + | ||
1372 | + var expressoes = self.panelsContainer.find('.expression').find('.mainContent').find('.wrapper').children(); | ||
1373 | + var expressoes_values = ['Exp_9', 'Exp_1', 'Exp_3', 'Exp_2', 'Exp_17', 'Exp_4', 'Exp_5', 'Exp_6', 'Exp_7', 'Exp_8', 'Exp_10', 'Exp_16', 'Exp_12', 'Exp_11', 'Exp_14', 'Exp_15']; | ||
1374 | + | ||
1375 | + $.each(expressoes, function(index, element) { | ||
1376 | + $(element).click(function(e) { | ||
1377 | + _setConfigsObject('expressao', expressoes_values[index]); | ||
1378 | + _checkConfigsObject(); | ||
1379 | + }); | ||
1380 | + }); | ||
1381 | + | ||
1382 | + if (self.globalConfig.getCurrentConfig() === 'expression') | ||
1383 | + return; | ||
1384 | + | ||
1385 | + if ((self.globalConfig.getTipoMov() === 'semicircular') || (self.globalConfig.getTipoMov() === 'circular')) { | ||
1386 | + | ||
1387 | + var iniciais = self.panelsContainer.find('.initial').find('.mainContent').find('.wrapper').children(); | ||
1388 | + var iniciais_values = { | ||
1389 | + 'sentido': ['horario', 'anti-horario'], | ||
1390 | + 'raio': ['pequeno', 'medio', 'grande'], | ||
1391 | + 'orientacao': ['perpendicular', 'paralelo'], | ||
1392 | + 'direcao': ['para-frente', 'para-tras', 'para-direita', 'para-esquerda'], | ||
1393 | + }; | ||
1394 | + | ||
1395 | + $.each(iniciais, function(index, element) { | ||
1396 | + | ||
1397 | + switch(index) { | ||
1398 | + case 0: | ||
1399 | + var length = (iniciais.eq(index).children().length / 2); | ||
1400 | + | ||
1401 | + $.each(iniciais.eq(index).children(), function(index, element) { | ||
1402 | + if (index < length) { | ||
1403 | + $(element).first().click(function(e) { | ||
1404 | + _moveHighlighter(1); | ||
1405 | + _setConfigsObject('sentido', iniciais_values.sentido[index]); | ||
1406 | + _checkConfigsObject(); | ||
1407 | + }); | ||
1408 | + } | ||
1409 | + }); | ||
1410 | + break; | ||
1411 | + | ||
1412 | + case 1: | ||
1413 | + var length = (iniciais.eq(index).children().length / 2); | ||
1414 | + | ||
1415 | + $.each(iniciais.eq(index).children(), function(index, element) { | ||
1416 | + if (index < length) { | ||
1417 | + $(element).first().click(function(e) { | ||
1418 | + _moveHighlighter(2); | ||
1419 | + _setConfigsObject('raio', iniciais_values.raio[index]); | ||
1420 | + _checkConfigsObject(); | ||
1421 | + }); | ||
1422 | + } | ||
1423 | + }); | ||
1424 | + break; | ||
1425 | + | ||
1426 | + case 2: | ||
1427 | + var length = (iniciais.eq(index).children().length / 2); | ||
1428 | + | ||
1429 | + $.each(iniciais.eq(index).children(), function(index, element) { | ||
1430 | + if (index < length) { | ||
1431 | + $(element).first().click(function(e) { | ||
1432 | + if (self.globalConfig.getTipoMov() === 'circular') | ||
1433 | + _triggerTab('inicial'); | ||
1434 | + | ||
1435 | + if (self.globalConfig.getTipoMov() === 'semicircular') | ||
1436 | + _moveHighlighter(3); | ||
1437 | + | ||
1438 | + _setConfigsObject('orientacao', iniciais_values.orientacao[index]); | ||
1439 | + _checkConfigsObject(); | ||
1440 | + }); | ||
1441 | + } | ||
1442 | + }); | ||
1443 | + break; | ||
1444 | + | ||
1445 | + case 3: | ||
1446 | + var length = (iniciais.eq(index).children().length / 2); | ||
1447 | + | ||
1448 | + $.each(iniciais.eq(index).children(), function(index, element) { | ||
1449 | + if (index < length) { | ||
1450 | + $(element).first().click(function(e) { | ||
1451 | + _triggerTab('inicial'); | ||
1452 | + _setConfigsObject('direcao', iniciais_values.direcao[index]); | ||
1453 | + _checkConfigsObject(); | ||
1454 | + }); | ||
1455 | + } | ||
1456 | + }); | ||
1457 | + break; | ||
1458 | + } | ||
1459 | + }); | ||
1460 | + } | ||
1461 | + | ||
1462 | + var dedos = self.panelsContainer.find('.dedos').find('.mainContent').find('.wrapper').children(); | ||
1463 | + | ||
1464 | + $.each(dedos, function(index, element) { | ||
1465 | + $(element).click(function(e) { | ||
1466 | + _triggerTab('dedos'); | ||
1467 | + _setConfigsObject('dedos', 'conf_' + (index + 1)); | ||
1468 | + _checkConfigsObject(); | ||
1469 | + }); | ||
1470 | + }); | ||
1471 | + | ||
1472 | + var palmas = self.panelsContainer.find('.orientation').find('.mainContent').find('.wrapper').children(); | ||
1473 | + var palmas_values = ['Ori_1', 'Ori_7', 'Ori_2', 'Ori_8', 'Ori_3', 'Ori_9', 'Ori_4', 'Ori_10', 'Ori_5', 'Ori_6', 'Ori_12', 'Ori_11']; | ||
1474 | + | ||
1475 | + $.each(palmas, function(index, element) { | ||
1476 | + $(element).click(function(e) { | ||
1477 | + _triggerTab('palma_mao'); | ||
1478 | + _setConfigsObject('palma_mao', palmas_values[index]); | ||
1479 | + _checkConfigsObject(); | ||
1480 | + }); | ||
1481 | + }); | ||
1482 | + | ||
1483 | + var localizacoes = self.panelsContainer.find('.localizations').find('.mainContent').find('.wrapper').children(), | ||
1484 | + sublocalizacoes = self.panelsContainer.find('.localizations').find('.mainContent').find('.floatWrapper').children(); | ||
1485 | + //localizacoes_values = ['cabeca', 'tronco', 'distancia_media', 'distancia_grande'], | ||
1486 | + sublocalizacoes_values = { | ||
1487 | + 'cabeca': ['Pa_6', 'Pa_35', 'Pa_38', 'Pa_50', 'Pa_57', 'Pa_60'], | ||
1488 | + 'tronco': ['Pa_15', 'Pa_18', 'Pa_24', 'Pa_27', 'Pa_44', 'Pa_66'], | ||
1489 | + 'distancia_media': ['Pa_7', 'Pa_16', 'Pa_19', 'Pa_25', 'Pa_28', 'Pa_36', 'Pa_39', 'Pa_45', 'Pa_48', 'Pa_61'], | ||
1490 | + 'distancia_grande': ['Pa_8', 'Pa_17', 'Pa_20', 'Pa_26', 'Pa_29', 'Pa_37', 'Pa_40', 'Pa_46', 'Pa_49', 'Pa_62'] | ||
1491 | + }; | ||
1492 | + | ||
1493 | + $.each(localizacoes, function(index, element) { | ||
1494 | + $(element).click(function(e) { | ||
1495 | + _moveHighlighter((wlGlobalConfig.getQuantityOfTimelineBlocks() - 1)); | ||
1496 | + //_setConfigsObject('localizacao', localizacoes_values[index]); | ||
1497 | + }); | ||
1498 | + | ||
1499 | + switch(index) { | ||
1500 | + case 0: | ||
1501 | + $.each(sublocalizacoes.eq(0).find('.innerWrapper').children(), function(index, element) { | ||
1502 | + $(element).click(function(e){ | ||
1503 | + $('.close').trigger('click'); | ||
1504 | + _setConfigsObject('sublocalizacao', sublocalizacoes_values.cabeca[index]); | ||
1505 | + _checkConfigsObject(); | ||
1506 | + }); | ||
1507 | + }); | ||
1508 | + break; | ||
1509 | + | ||
1510 | + case 1: | ||
1511 | + $.each(sublocalizacoes.eq(1).find('.innerWrapper').children(), function(index, element) { | ||
1512 | + $(element).click(function(e){ | ||
1513 | + $('.close').trigger('click'); | ||
1514 | + _setConfigsObject('sublocalizacao', sublocalizacoes_values.tronco[index]); | ||
1515 | + _checkConfigsObject(); | ||
1516 | + }); | ||
1517 | + }); | ||
1518 | + break; | ||
1519 | + | ||
1520 | + case 2: | ||
1521 | + $.each(sublocalizacoes.eq(2).find('.innerWrapper').children(), function(index, element) { | ||
1522 | + $(element).click(function(e){ | ||
1523 | + $('.close').trigger('click'); | ||
1524 | + _setConfigsObject('sublocalizacao', sublocalizacoes_values.distancia_media[index]); | ||
1525 | + _checkConfigsObject(); | ||
1526 | + }); | ||
1527 | + }); | ||
1528 | + break; | ||
1529 | + | ||
1530 | + case 3: | ||
1531 | + $.each(sublocalizacoes.eq(3).find('.innerWrapper').children(), function(index, element) { | ||
1532 | + $(element).click(function(e){ | ||
1533 | + $('.close').trigger('click'); | ||
1534 | + _setConfigsObject('sublocalizacao', sublocalizacoes_values.distancia_grande[index]); | ||
1535 | + _checkConfigsObject(); | ||
1536 | + }); | ||
1537 | + }); | ||
1538 | + break; | ||
1539 | + } | ||
1540 | + }); | ||
1541 | + }; | ||
1542 | + | ||
1543 | + function _setConfigsObject(category, value) { | ||
1544 | + | ||
1545 | + switch(category) { | ||
1546 | + case 'expressao': | ||
1547 | + self.configsObject[0] = value; | ||
1548 | + return; | ||
1549 | + break; | ||
1550 | + | ||
1551 | + case 'sentido': | ||
1552 | + self.configsObject[0] = value; | ||
1553 | + break; | ||
1554 | + | ||
1555 | + case 'raio': | ||
1556 | + self.configsObject[1] = value; | ||
1557 | + break; | ||
1558 | + | ||
1559 | + case 'orientacao': | ||
1560 | + self.configsObject[2] = value; | ||
1561 | + break; | ||
1562 | + | ||
1563 | + case 'direcao': | ||
1564 | + self.configsObject[3] = value; | ||
1565 | + break; | ||
1566 | + } | ||
1567 | + | ||
1568 | + if ((self.globalConfig.getTipoMov() === 'pontual') || (self.globalConfig.getTipoMov() === 'retilineo')) | ||
1569 | + var indexArray = [0, 1, 2]; | ||
1570 | + | ||
1571 | + if (self.globalConfig.getTipoMov() === 'circular') | ||
1572 | + var indexArray = [3, 4, 5]; | ||
1573 | + | ||
1574 | + if (self.globalConfig.getTipoMov() === 'semicircular') | ||
1575 | + var indexArray = [4, 5, 6]; | ||
1576 | + | ||
1577 | + switch(category) { | ||
1578 | + case 'dedos': | ||
1579 | + self.configsObject[indexArray[0]] = value; | ||
1580 | + break; | ||
1581 | + | ||
1582 | + case 'palma_mao': | ||
1583 | + self.configsObject[indexArray[1]] = value; | ||
1584 | + break; | ||
1585 | + | ||
1586 | + // case 'localizacao': | ||
1587 | + // self.configsObject[indexArray[2]] = value; | ||
1588 | + // break; | ||
1589 | + | ||
1590 | + case 'sublocalizacao': | ||
1591 | + self.configsObject[indexArray[2]] = value; | ||
1592 | + break; | ||
1593 | + } | ||
1594 | + }; | ||
1595 | + | ||
1596 | + function _checkConfigsObject() { | ||
1597 | + var length = self.configsObject.length; | ||
1598 | + | ||
1599 | + for (var i = 0; i < length; i++) { | ||
1600 | + if (self.configsObject[i] === '') | ||
1601 | + return false; | ||
1602 | + } | ||
1603 | + | ||
1604 | + if (self.globalConfig.getCurrentConfig() === 'expression') { | ||
1605 | + self.globalConfig.expressionSet(true); | ||
1606 | + self.globalConfig.setSignalObject('facialExp', self.configsObject[0]); | ||
1607 | + } | ||
1608 | + else if (self.globalConfig.getCurrentConfig() === 'rightHand') { | ||
1609 | + self.globalConfig.rightHandSet(true); | ||
1610 | + self.globalConfig.setSignalObject('rightHand', self.configsObject); | ||
1611 | + } | ||
1612 | + else if (self.globalConfig.getCurrentConfig() === 'leftHand') { | ||
1613 | + self.globalConfig.leftHandSet(true); | ||
1614 | + self.globalConfig.setSignalObject('leftHand', self.configsObject); | ||
1615 | + } | ||
1616 | + | ||
1617 | + // Imprime as configurações escolhidas a cada passo | ||
1618 | + //console.log(self.configsObject); | ||
1619 | + _showCheckPoint(); | ||
1620 | + }; | ||
1621 | + | ||
1622 | + function _showCheckPoint() { | ||
1623 | + var checkpoint = self.mainContainer.find('.checkpoint'); | ||
1624 | + | ||
1625 | + if ((self.globalConfig.isExpressionSet()) && (self.globalConfig.isRightHandSet()) && (self.globalConfig.isLeftHandSet())) { | ||
1626 | + checkpoint.find('.continuar').addClass('desactive'); | ||
1627 | + checkpoint.find('.gerar').removeClass('desactive'); | ||
1628 | + } | ||
1629 | + | ||
1630 | + if (checkpoint.hasClass('desactive')) { | ||
1631 | + checkpoint.removeClass('desactive'); | ||
1632 | + } | ||
1633 | + }; | ||
1634 | + | ||
1635 | + function _bindCheckPointEvents() { | ||
1636 | + var checkpoint = self.mainContainer.find('.checkpoint'); | ||
1637 | + | ||
1638 | + checkpoint.find('.voltar').click(function(e) { | ||
1639 | + if (!checkpoint.hasClass('desactive')) { | ||
1640 | + checkpoint.addClass('desactive'); | ||
1641 | + } | ||
1642 | + }); | ||
1643 | + }; | ||
1644 | + | ||
1645 | + function _triggerTab(category) { | ||
1646 | + var tabs = self.tabsContainer.find('.tabs').children(); | ||
1647 | + | ||
1648 | + if (category === 'inicial') | ||
1649 | + tabs.eq(1).trigger('click'); | ||
1650 | + | ||
1651 | + if (category === 'dedos') { | ||
1652 | + if ((self.globalConfig.getTipoMov() === 'pontual') || (self.globalConfig.getTipoMov() === 'retilineo')) | ||
1653 | + tabs.eq(1).trigger('click'); | ||
1654 | + | ||
1655 | + if (self.globalConfig.getTipoMov() === 'circular') | ||
1656 | + tabs.eq(2).trigger('click'); | ||
1657 | + | ||
1658 | + if (self.globalConfig.getTipoMov() === 'semicircular') | ||
1659 | + tabs.eq(2).trigger('click'); | ||
1660 | + } | ||
1661 | + | ||
1662 | + if (category === 'palma_mao') { | ||
1663 | + if ((self.globalConfig.getTipoMov() === 'pontual') || (self.globalConfig.getTipoMov() === 'retilineo')) | ||
1664 | + tabs.eq(2).trigger('click'); | ||
1665 | + | ||
1666 | + if (self.globalConfig.getTipoMov() === 'circular') | ||
1667 | + tabs.eq(3).trigger('click'); | ||
1668 | + | ||
1669 | + if (self.globalConfig.getTipoMov() === 'semicircular') | ||
1670 | + tabs.eq(3).trigger('click'); | ||
1671 | + } | ||
1672 | + }; | ||
1673 | + | ||
1674 | + return { | ||
1675 | + run: function() { | ||
1676 | + _init(); | ||
1677 | + | ||
1678 | + _getResourcesPath(function() { | ||
1679 | + // Creating DOM | ||
1680 | + _createTabsDOM(); | ||
1681 | + _createPanelsDOM(); | ||
1682 | + | ||
1683 | + // Setting Texts and Avatar | ||
1684 | + _setSignalName(); | ||
1685 | + _setAvatarImage(); | ||
1686 | + | ||
1687 | + // Loading Images and Videos | ||
1688 | + _loadingImagesAndVideos(); | ||
1689 | + | ||
1690 | + // Bind Events | ||
1691 | + _bindScrollEvents(); | ||
1692 | + _bindEventsOfTabsAndPanels(); | ||
1693 | + _bindConfigChoicesEvents(); | ||
1694 | + _bindInitialVideosEvents(); | ||
1695 | + _bindLocalizationPanelEvents(); | ||
1696 | + _bindTimelineBlocksEvents(); | ||
1697 | + _bindCheckPointEvents(); | ||
1698 | + }); | ||
1699 | + } | ||
1700 | + } | ||
1701 | +}; | ||
1702 | + | ||
1703 | +module.exports.mainFrame = mainFrame; | ||
1704 | +}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
1705 | +},{}],5:[function(require,module,exports){ | ||
1706 | +var registerFrame = function() { | ||
1707 | + | ||
1708 | + /* Function Scope */ | ||
1709 | + var self = this; | ||
1710 | + | ||
1711 | + /* Main Variables */ | ||
1712 | + var params, | ||
1713 | + registerContainer, | ||
1714 | + isConfigSet; | ||
1715 | + | ||
1716 | + function _init() { | ||
1717 | + self.params = { name: '', quantMaos: '', tipoMov: '', repeticao: '' }; | ||
1718 | + self.registerContainer = $('#registerContainer'); | ||
1719 | + self.isConfigSet = [false, false, false, false]; | ||
1720 | + }; | ||
1721 | + | ||
1722 | + function _bindFieldsEvents() { | ||
1723 | + var demoFields = self.registerContainer.find('.demoField'); | ||
1724 | + | ||
1725 | + self.registerContainer.find('.nomeDoSinal').on('blur', 'input', function(e) { | ||
1726 | + if ($(this).val() !== '') { | ||
1727 | + self.params['name'] = $(this).val().toLowerCase(); | ||
1728 | + self.isConfigSet[0] = true; | ||
1729 | + _setColor(1, true); | ||
1730 | + } else { | ||
1731 | + self.isConfigSet[0] = false; | ||
1732 | + _setColor(1, false); | ||
1733 | + } | ||
1734 | + _validateFields(); | ||
1735 | + }); | ||
1736 | + | ||
1737 | + self.registerContainer.find('.quantMaos').on('click', 'button', function(e) { | ||
1738 | + self.params['quantMaos'] = $(this).val(); | ||
1739 | + demoFields.eq(0).find('div').text($(this).text()); | ||
1740 | + _setColor(2, true); | ||
1741 | + self.isConfigSet[1] = true; | ||
1742 | + _validateFields(); | ||
1743 | + }); | ||
1744 | + | ||
1745 | + self.registerContainer.find('.tipoMov').on('click', 'button', function(e) { | ||
1746 | + self.params['tipoMov'] = $(this).val(); | ||
1747 | + demoFields.eq(1).find('div').text($(this).text()); | ||
1748 | + _setColor(3, true); | ||
1749 | + self.isConfigSet[2] = true; | ||
1750 | + _validateFields(); | ||
1751 | + }); | ||
1752 | + | ||
1753 | + self.registerContainer.find('.repeticao').on('click', 'button', function(e) { | ||
1754 | + self.params['repeticao'] = $(this).val(); | ||
1755 | + demoFields.eq(2).find('div').text($(this).text()); | ||
1756 | + _setColor(4, true); | ||
1757 | + self.isConfigSet[3] = true; | ||
1758 | + _validateFields(); | ||
1759 | + }); | ||
1760 | + }; | ||
1761 | + | ||
1762 | + function _validateFields() { | ||
1763 | + var confSinalButton = self.registerContainer.find('.configurarSinal').find('button'); | ||
1764 | + | ||
1765 | + var all = false, | ||
1766 | + aux = 0; | ||
1767 | + | ||
1768 | + for (var i = 0; i < self.isConfigSet.length; i++) { | ||
1769 | + if (self.isConfigSet[i]) | ||
1770 | + aux++; | ||
1771 | + } | ||
1772 | + | ||
1773 | + all = (aux === 4) ? true : false; | ||
1774 | + | ||
1775 | + if (all) { | ||
1776 | + confSinalButton.removeClass('disabled'); | ||
1777 | + } | ||
1778 | + else { | ||
1779 | + if (!confSinalButton.hasClass('disabled')) | ||
1780 | + confSinalButton.addClass('disabled'); | ||
1781 | + } | ||
1782 | + }; | ||
1783 | + | ||
1784 | + function _setColor(index, isSet) { | ||
1785 | + var spanFields = self.registerContainer.find('.registroContent'); | ||
1786 | + | ||
1787 | + if (isSet) | ||
1788 | + spanFields.find('> div:nth-of-type('+ index +')').find('span').css('color', '#50C53A'); | ||
1789 | + else | ||
1790 | + spanFields.find('> div:nth-of-type('+ index +')').find('span').css('color', '#C93030'); | ||
1791 | + }; | ||
1792 | + | ||
1793 | + function _setValuesButtons() { | ||
1794 | + var buttons = self.registerContainer.find('button'); | ||
1795 | + var values = ['uma', 'duas', 'retilineo', 'pontual', 'circular', 'semicircular', 'sem-repeticao', 'com-repeticao']; | ||
1796 | + | ||
1797 | + for (var i = 0; i < (buttons.length - 1); i++) { | ||
1798 | + buttons.eq(i).attr('value', values[i]); | ||
1799 | + } | ||
1800 | + }; | ||
1801 | + | ||
1802 | + function _getParams() { | ||
1803 | + return self.params; | ||
1804 | + }; | ||
1805 | + | ||
1806 | + function _bindUnityCommunication() { | ||
1807 | + return null; | ||
1808 | + | ||
1809 | + var u = new UnityObject2({ width: 250, height: 280, params: { enableDebugging: "0" }}); | ||
1810 | + u.initPlugin($('.unity'), "/system/wikilibras/unity/avatar.unity3d"); | ||
1811 | + | ||
1812 | + $('.tipoMov > button:nth-of-type(1)').click(function() { | ||
1813 | + u.getUnity().SendMessage("hozana", "playRetilineo", ""); | ||
1814 | + }); | ||
1815 | + | ||
1816 | + $('.tipoMov > button:nth-of-type(2)').click(function() { | ||
1817 | + u.getUnity().SendMessage("hozana", "playPontual", ""); | ||
1818 | + }); | ||
1819 | + | ||
1820 | + $('.tipoMov > button:nth-of-type(3)').click(function() { | ||
1821 | + u.getUnity().SendMessage("hozana", "playCircular", ""); | ||
1822 | + }); | ||
1823 | + | ||
1824 | + $('.tipoMov > button:nth-of-type(4)').click(function() { | ||
1825 | + u.getUnity().SendMessage("hozana", "playSemiCircular", ""); | ||
1826 | + }); | ||
1827 | + }; | ||
1828 | + | ||
1829 | + return { | ||
1830 | + run: function() { | ||
1831 | + _init(); | ||
1832 | + _setValuesButtons(); | ||
1833 | + _bindFieldsEvents(); | ||
1834 | + _bindUnityCommunication(); | ||
1835 | + }, | ||
1836 | + | ||
1837 | + getParams: function() { | ||
1838 | + return _getParams(); | ||
1839 | + } | ||
1840 | + } | ||
1841 | +} | ||
1842 | + | ||
1843 | +module.exports.registerFrame = registerFrame; | ||
1844 | +},{}],6:[function(require,module,exports){ | ||
1845 | +(function() { | ||
1846 | + var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; | ||
1847 | +templates['wlChoiceTpl'] = template(function (Handlebars,depth0,helpers,partials,data) { | ||
1848 | + this.compilerInfo = [4,'>= 1.0.0']; | ||
1849 | +helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; | ||
1850 | + | ||
1851 | + | ||
1852 | + | ||
1853 | + return "<div id=\"choiceContainer\">\n <div class=\"wrapper\">\n <div class=\"texts\">\n <div class=\"description\">\n <p>Escolha a parte do corpo<br>que deseja configurar:</p>\n </div>\n <div class=\"preview\">\n <p></p>\n </div>\n </div>\n <div class=\"choices\">\n <div>\n <svg width=\"230\" height=\"310\" viewPort=\"0 0 230 310\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n <polygon class=\"done\" points=\"70,51,70,69,72,79,75,86,78,92,84,99,90,105,98,110,103,112,108,113,111,114,119,114,125,112,131,110,137,106,141,103,145,98,150,92,153,86,156,78,158,71,158,62,158,51,157,43,154,37,149,27,145,22,141,17,134,12,126,8,119,7,108,7,100,9,94,12,88,16,83,21,79,27,75,33,72,42,71,46\"/>\n \n <polygon points=\"3,123,3,129,3,141,6,153,11,162,14,167,17,170,22,174,27,177,32,179,36,179,43,179,46,178,49,177,53,175,57,173,61,170,63,166,67,161,69,157,71,152,73,146,74,141,74,133,74,121,73,118,72,113,69,107,66,101,63,98,60,93,55,90,50,87,45,85,42,84,35,84,32,85,26,87,23,89,18,93,14,97,11,101,8,107,6,112,5,115\"/>\n\n <polygon points=\"155,123,155,130,155,140,155,144,157,150,159,156,162,161,165,167,169,170,173,174,177,177,183,179,188,180,195,180,198,179,204,177,208,174,213,169,218,163,222,155,225,146,226,139,227,131,226,124,225,118,221,107,217,100,211,93,205,89,199,86,194,84,187,84,184,85,182,85,177,87,172,91,168,94,164,99,161,104,159,110,157,116\"/>\n </svg>\n </div>\n </div>\n </div>\n</div>"; | ||
1854 | + }); | ||
1855 | +})(); | ||
1856 | +},{}],7:[function(require,module,exports){ | ||
1857 | +(function() { | ||
1858 | + var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; | ||
1859 | +templates['wlMainTpl'] = template(function (Handlebars,depth0,helpers,partials,data) { | ||
1860 | + this.compilerInfo = [4,'>= 1.0.0']; | ||
1861 | +helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; | ||
1862 | + | ||
1863 | + | ||
1864 | + | ||
1865 | + return "<div id=\"mainContainer\">\n <div class=\"checkpoint desactive\">\n <div class=\"voltar\">\n <p>Voltar</p>\n </div>\n <div class=\"continuar\">\n <p>Continuar</p>\n </div>\n <div class=\"gerar desactive\">\n <p>Gerar Sinal</p>\n </div>\n </div>\n <div id=\"textsContainer\">\n <div class=\"panelLabel\">\n <span class=\"pLWrapper\"></span>\n </div>\n <div class=\"signalName\">\n <span class=\"sNWrapper\"></span>\n </div>\n </div>\n <div id=\"tabsContainer\">\n <ul class=\"tabs\"></ul>\n </div>\n <div id=\"panelsContainer\">\n </div>\n <div id=\"avatarContainer\">\n <span class=\"wrapper\"></span>\n </div>\n <div class=\"clearfix\"></div>\n <div id=\"timelineContainer\">\n <div class=\"wrapper\"></div>\n </div>\n</div>"; | ||
1866 | + }); | ||
1867 | +})(); | ||
1868 | +},{}],8:[function(require,module,exports){ | ||
1869 | +(function() { | ||
1870 | + var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; | ||
1871 | +templates['wlRegisterTpl'] = template(function (Handlebars,depth0,helpers,partials,data) { | ||
1872 | + this.compilerInfo = [4,'>= 1.0.0']; | ||
1873 | +helpers = this.merge(helpers, Handlebars.helpers); data = data || {}; | ||
1874 | + | ||
1875 | + | ||
1876 | + | ||
1877 | + return "<div id=\"registerContainer\">\n <div id=\"title\">\n <div class=\"registroTitle\"><p>Registro do Sinal</p></div>\n <div class=\"demoTitle\"><p>Demo</p></div>\n </div>\n <div id=\"content\">\n <div class=\"registroContent\">\n <div class=\"nomeDoSinal\">\n <span class=\"label\">Nome do Sinal</span>\n <div class=\"clearfix\"></div>\n <input type=\"text\">\n </div>\n <div class=\"quantMaos\">\n <span class=\"label\">Quantidade de Mãos</span>\n <div class=\"clearfix\"></div>\n <button class=\"btn btn-large btn-sample\">Uma Mão</button>\n <button class=\"btn btn-large btn-sample\">Duas Mãos</button>\n </div>\n <div class=\"tipoMov\">\n <span class=\"label\">Tipo do Movimento</span>\n <div class=\"clearfix\"></div>\n <button class=\"btn btn-large btn-sample\">Retilíneo</button>\n <button class=\"btn btn-large btn-sample\">Pontual</button>\n <button class=\"btn btn-large btn-sample\">Circular</button>\n <button class=\"btn btn-large btn-sample\">SemiCircular</button>\n </div>\n <div class=\"repeticao\">\n <span class=\"label\">Repetição</span>\n <div class=\"clearfix\"></div>\n <button value=\"sem-repeticao\" class=\"btn btn-large btn-sample\">Sem Repetição</button>\n <button value=\"com-repeticao\" class=\"btn btn-large btn-sample\">Com Repetição</button>\n </div>\n <div class=\"configurarSinal\">\n <button class=\"btn btn-large btn-success disabled\">Configurar Sinal</button>\n </div>\n </div>\n <div class=\"demoContent\">\n <div class=\"demoField\">\n <div></div>\n </div>\n <div class=\"demoField\">\n <div></div>\n </div>\n <div class=\"demoField\">\n <div></div>\n </div>\n <div class=\"unity\"></div>\n </div>\n </div>\n</div>"; | ||
1878 | + }); | ||
1879 | +})(); | ||
1880 | +},{}]},{},[1]) | ||
0 | \ No newline at end of file | 1881 | \ No newline at end of file |
@@ -0,0 +1,940 @@ | @@ -0,0 +1,940 @@ | ||
1 | +@font-face { | ||
2 | + font-family: 'trajan_pro'; | ||
3 | + src: url('/system/wikilibras/fonts/trajan_pro.woff') format('woff'); | ||
4 | +} | ||
5 | +.btn { | ||
6 | + display: inline-block; | ||
7 | + *display: inline; | ||
8 | + padding: 4px 12px; | ||
9 | + margin-bottom: 0; | ||
10 | + *margin-left: .3em; | ||
11 | + font-size: 14px; | ||
12 | + line-height: 20px; | ||
13 | + color: #333333; | ||
14 | + text-align: center; | ||
15 | + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); | ||
16 | + vertical-align: middle; | ||
17 | + cursor: pointer; | ||
18 | + background-color: #f5f5f5; | ||
19 | + *background-color: #e6e6e6; | ||
20 | + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); | ||
21 | + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); | ||
22 | + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); | ||
23 | + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); | ||
24 | + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); | ||
25 | + background-repeat: repeat-x; | ||
26 | + border: 1px solid #cccccc; | ||
27 | + *border: 0; | ||
28 | + border-color: #e6e6e6 #e6e6e6 #bfbfbf; | ||
29 | + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); | ||
30 | + border-bottom-color: #b3b3b3; | ||
31 | + -webkit-border-radius: 4px; | ||
32 | + -moz-border-radius: 4px; | ||
33 | + border-radius: 4px; | ||
34 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); | ||
35 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); | ||
36 | + *zoom: 1; | ||
37 | + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
38 | + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
39 | + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
40 | +} | ||
41 | +.btn:active, | ||
42 | +.btn.active { | ||
43 | + background-color: #cccccc \9; | ||
44 | +} | ||
45 | +.btn:first-child { | ||
46 | + *margin-left: 0; | ||
47 | +} | ||
48 | +.btn:hover, | ||
49 | +.btn:focus { | ||
50 | + color: #333333; | ||
51 | + text-decoration: none; | ||
52 | + background-position: 0 -15px; | ||
53 | + -webkit-transition: background-position 0.1s linear; | ||
54 | + -moz-transition: background-position 0.1s linear; | ||
55 | + -o-transition: background-position 0.1s linear; | ||
56 | + transition: background-position 0.1s linear; | ||
57 | +} | ||
58 | +.btn:focus { | ||
59 | + outline: thin dotted #333; | ||
60 | + outline: 5px auto -webkit-focus-ring-color; | ||
61 | + outline-offset: -2px; | ||
62 | +} | ||
63 | +.btn.active, | ||
64 | +.btn:active { | ||
65 | + background-image: none; | ||
66 | + outline: 0; | ||
67 | + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
68 | + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
69 | + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
70 | +} | ||
71 | +.btn-large { | ||
72 | + padding: 11px 19px; | ||
73 | + font-size: 17.5px; | ||
74 | + -webkit-border-radius: 6px; | ||
75 | + -moz-border-radius: 6px; | ||
76 | + border-radius: 6px; | ||
77 | + padding: 9px 13px 6px 13px !important; | ||
78 | + font-size: 14px; | ||
79 | + font-family: 'trajan_pro'; | ||
80 | +} | ||
81 | +.btn-success { | ||
82 | + color: #ffffff; | ||
83 | + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | ||
84 | + background-color: #5bb75b; | ||
85 | + *background-color: #51a351; | ||
86 | + background-image: -moz-linear-gradient(top, #62c462, #51a351); | ||
87 | + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); | ||
88 | + background-image: -webkit-linear-gradient(top, #62c462, #51a351); | ||
89 | + background-image: -o-linear-gradient(top, #62c462, #51a351); | ||
90 | + background-image: linear-gradient(to bottom, #62c462, #51a351); | ||
91 | + background-repeat: repeat-x; | ||
92 | + border-color: #51a351 #51a351 #387038; | ||
93 | + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); | ||
94 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); | ||
95 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); | ||
96 | +} | ||
97 | +.btn-success:hover, | ||
98 | +.btn-success:focus, | ||
99 | +.btn-success:active, | ||
100 | +.btn-success.active, | ||
101 | +.btn-success.disabled, | ||
102 | +.btn-success[disabled] { | ||
103 | + color: #ffffff; | ||
104 | + background-color: #51a351; | ||
105 | + *background-color: #499249; | ||
106 | +} | ||
107 | +.btn-success:active, | ||
108 | +.btn-success.active { | ||
109 | + background-color: #408140 \9; | ||
110 | +} | ||
111 | +.btn-sample { | ||
112 | + color: #545454; | ||
113 | + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | ||
114 | + background-color: #A1A1A1; | ||
115 | + *background-color: #A1A1A1; | ||
116 | + background-image: -moz-linear-gradient(top, #d9d9d9, #a1a1a1); | ||
117 | + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d9d9d9), to(#a1a1a1)); | ||
118 | + background-image: -webkit-linear-gradient(top, #d9d9d9, #a1a1a1); | ||
119 | + background-image: -o-linear-gradient(top, #d9d9d9, #a1a1a1); | ||
120 | + background-image: linear-gradient(to bottom, #d9d9d9, #a1a1a1); | ||
121 | + background-repeat: repeat-x; | ||
122 | + border-color: #aeaeae; | ||
123 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#D9D9D9', endColorstr='#A1A1A1', GradientType=0); | ||
124 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); | ||
125 | + font-family: 'trajan_pro'; | ||
126 | +} | ||
127 | +.btn-sample:hover, | ||
128 | +.btn-sample:focus, | ||
129 | +.btn-sample:active, | ||
130 | +.btn-sample.active { | ||
131 | + color: #545454; | ||
132 | + background-color: #A1A1A1; | ||
133 | + *background-color: #003bb3; | ||
134 | +} | ||
135 | +#registerContainer { | ||
136 | + font-family: 'trajan_pro'; | ||
137 | + width: 940px; | ||
138 | + height: 550px; | ||
139 | + background-color: #ebebeb; | ||
140 | + border: 3px solid #cccccc; | ||
141 | + margin: 0 auto; | ||
142 | +} | ||
143 | +#registerContainer #title { | ||
144 | + width: 100%; | ||
145 | + height: 50px; | ||
146 | +} | ||
147 | +#registerContainer #title > div { | ||
148 | + position: relative; | ||
149 | + height: 50px; | ||
150 | + border-bottom: 3px solid #cccccc; | ||
151 | +} | ||
152 | +#registerContainer #title > div > p { | ||
153 | + margin: 0; | ||
154 | + font-size: 28px; | ||
155 | + margin-top: 10px; | ||
156 | +} | ||
157 | +#registerContainer #title .registroTitle { | ||
158 | + width: 607px; | ||
159 | + float: left; | ||
160 | +} | ||
161 | +#registerContainer #title .registroTitle > p { | ||
162 | + margin-left: 164px; | ||
163 | +} | ||
164 | +#registerContainer #title .demoTitle { | ||
165 | + width: 330px; | ||
166 | + float: right; | ||
167 | + border-left: 3px solid #cccccc; | ||
168 | +} | ||
169 | +#registerContainer #title .demoTitle > p { | ||
170 | + margin-left: 123px; | ||
171 | +} | ||
172 | +#registerContainer #content > div { | ||
173 | + position: relative; | ||
174 | + height: 500px; | ||
175 | +} | ||
176 | +#registerContainer #content .registroContent { | ||
177 | + width: 607px; | ||
178 | + float: left; | ||
179 | +} | ||
180 | +#registerContainer #content .registroContent > div { | ||
181 | + width: 325px; | ||
182 | + margin: 0 auto; | ||
183 | + border: 1px solid gray; | ||
184 | + position: relative; | ||
185 | +} | ||
186 | +#registerContainer #content .registroContent > div > span { | ||
187 | + background-color: #ebebeb; | ||
188 | + position: relative; | ||
189 | + font-size: 14px; | ||
190 | + top: -9px; | ||
191 | + left: 4px; | ||
192 | + padding: 2px; | ||
193 | + color: #C93030; | ||
194 | +} | ||
195 | +#registerContainer #content .registroContent > div > button { | ||
196 | + display: block; | ||
197 | + position: relative; | ||
198 | + float: left; | ||
199 | + color: #4a4a4a; | ||
200 | +} | ||
201 | +#registerContainer #content .registroContent > div .disabled { | ||
202 | + pointer-events: none; | ||
203 | + opacity: 0.5; | ||
204 | +} | ||
205 | +#registerContainer #content .registroContent .nomeDoSinal { | ||
206 | + height: 60px; | ||
207 | + top: 20px; | ||
208 | +} | ||
209 | +#registerContainer #content .registroContent .nomeDoSinal > input { | ||
210 | + font-size: 20px; | ||
211 | + padding-top: 5px; | ||
212 | + font-family: 'trajan_pro'; | ||
213 | + width: 305px; | ||
214 | + height: 25px; | ||
215 | + position: relative; | ||
216 | + left: 7px; | ||
217 | + bottom: 1px; | ||
218 | +} | ||
219 | +#registerContainer #content .registroContent .quantMaos { | ||
220 | + height: 60px; | ||
221 | + top: 40px; | ||
222 | +} | ||
223 | +#registerContainer #content .registroContent .quantMaos > button { | ||
224 | + margin-left: 36px; | ||
225 | + top: -5px; | ||
226 | +} | ||
227 | +#registerContainer #content .registroContent .tipoMov { | ||
228 | + height: 120px; | ||
229 | + top: 60px; | ||
230 | +} | ||
231 | +#registerContainer #content .registroContent .tipoMov > button { | ||
232 | + margin-left: 28px; | ||
233 | + margin-top: 15px; | ||
234 | + top: -14px; | ||
235 | +} | ||
236 | +#registerContainer #content .registroContent .tipoMov > button:nth-of-type(1) { | ||
237 | + left: 8px; | ||
238 | +} | ||
239 | +#registerContainer #content .registroContent .tipoMov > button:nth-of-type(2) { | ||
240 | + left: 20px; | ||
241 | +} | ||
242 | +#registerContainer #content .registroContent .tipoMov > button:nth-of-type(n+3) { | ||
243 | + left: 10px; | ||
244 | +} | ||
245 | +#registerContainer #content .registroContent .repeticao { | ||
246 | + height: 65px; | ||
247 | + top: 80px; | ||
248 | +} | ||
249 | +#registerContainer #content .registroContent .repeticao > button { | ||
250 | + margin-left: 11px; | ||
251 | + top: -3px; | ||
252 | +} | ||
253 | +#registerContainer #content .registroContent .configurarSinal { | ||
254 | + height: 75px; | ||
255 | + top: 94px; | ||
256 | + border: 0; | ||
257 | +} | ||
258 | +#registerContainer #content .registroContent .configurarSinal > button { | ||
259 | + top: 8px; | ||
260 | + left: 39px; | ||
261 | + color: white; | ||
262 | +} | ||
263 | +#registerContainer #content .registroContent .configurarSinal > .btn-large { | ||
264 | + padding: 18px 26px 15px 22px !important; | ||
265 | + font-size: 19px; | ||
266 | +} | ||
267 | +#registerContainer #content .demoContent { | ||
268 | + width: 330px; | ||
269 | + float: right; | ||
270 | + border-left: 3px solid #cccccc; | ||
271 | +} | ||
272 | +#registerContainer #content .demoContent .demoField { | ||
273 | + width: 290px; | ||
274 | + height: 40px; | ||
275 | + position: relative; | ||
276 | + left: 40px; | ||
277 | + background: url('/system/wikilibras/images/demo_bg.png') no-repeat; | ||
278 | + background-size: 250px 40px; | ||
279 | +} | ||
280 | +#registerContainer #content .demoContent .demoField:nth-of-type(1) { | ||
281 | + top: 20px; | ||
282 | +} | ||
283 | +#registerContainer #content .demoContent .demoField:nth-of-type(2) { | ||
284 | + top: 40px; | ||
285 | +} | ||
286 | +#registerContainer #content .demoContent .demoField:nth-of-type(3) { | ||
287 | + top: 60px; | ||
288 | +} | ||
289 | +#registerContainer #content .demoContent .demoField > div { | ||
290 | + width: 86%; | ||
291 | + height: 100%; | ||
292 | + font-size: 25px; | ||
293 | + text-align: center; | ||
294 | + position: relative; | ||
295 | + top: 9px; | ||
296 | +} | ||
297 | +#registerContainer #content .demoContent .unity { | ||
298 | + border: 1px solid black; | ||
299 | + width: 250px; | ||
300 | + height: 280px; | ||
301 | + position: relative; | ||
302 | + left: 40px; | ||
303 | + top: 80px; | ||
304 | +} | ||
305 | +#choiceContainer { | ||
306 | + width: 940px; | ||
307 | + height: 550px; | ||
308 | + background-color: #ebebeb; | ||
309 | + border: 3px solid #cccccc; | ||
310 | + margin: 0 auto; | ||
311 | +} | ||
312 | +#choiceContainer .wrapper { | ||
313 | + width: 750px; | ||
314 | + height: 350px; | ||
315 | + margin: 0 auto; | ||
316 | + margin-top: 100px; | ||
317 | +} | ||
318 | +#choiceContainer .wrapper div { | ||
319 | + position: relative; | ||
320 | +} | ||
321 | +#choiceContainer .wrapper .texts { | ||
322 | + float: left; | ||
323 | + width: 450px; | ||
324 | + height: 350px; | ||
325 | +} | ||
326 | +#choiceContainer .wrapper .texts > div { | ||
327 | + margin: 0 auto; | ||
328 | +} | ||
329 | +#choiceContainer .wrapper .texts > div > p { | ||
330 | + font-family: 'trajan_pro'; | ||
331 | + position: relative; | ||
332 | + margin: 0; | ||
333 | + color: #798088; | ||
334 | +} | ||
335 | +#choiceContainer .wrapper .texts .description { | ||
336 | + background: url('/system/wikilibras/images/choice/big_desc.png') no-repeat; | ||
337 | + background-size: 350px 170px; | ||
338 | + width: 350px; | ||
339 | + height: 170px; | ||
340 | + top: 40px; | ||
341 | +} | ||
342 | +#choiceContainer .wrapper .texts .description p { | ||
343 | + width: 330px; | ||
344 | + font-size: 19px; | ||
345 | + top: 65px; | ||
346 | + left: 23px; | ||
347 | +} | ||
348 | +#choiceContainer .wrapper .texts .preview { | ||
349 | + background: url('/system/wikilibras/images/choice/small_desc.png') no-repeat; | ||
350 | + background-size: 340px 80px; | ||
351 | + width: 350px; | ||
352 | + height: 80px; | ||
353 | + top: 60px; | ||
354 | +} | ||
355 | +#choiceContainer .wrapper .texts .preview p { | ||
356 | + width: 320px; | ||
357 | + font-size: 25px; | ||
358 | + text-align: center; | ||
359 | + top: 27px; | ||
360 | +} | ||
361 | +#choiceContainer .wrapper .choices { | ||
362 | + float: right; | ||
363 | + width: 300px; | ||
364 | + height: 100%; | ||
365 | +} | ||
366 | +#choiceContainer .wrapper .choices > div { | ||
367 | + background: url('/system/wikilibras/images/choice/avatar.png') no-repeat; | ||
368 | + border: 2px solid black; | ||
369 | + width: 230px; | ||
370 | + height: 310px; | ||
371 | + top: 20px; | ||
372 | + left: 10px; | ||
373 | +} | ||
374 | +#choiceContainer .wrapper .choices > div svg .active { | ||
375 | + stroke: red; | ||
376 | + stroke-width: 3; | ||
377 | + fill-opacity: 0; | ||
378 | +} | ||
379 | +#choiceContainer .wrapper .choices > div svg .active:hover { | ||
380 | + fill: red; | ||
381 | + fill-opacity: .2; | ||
382 | + cursor: pointer; | ||
383 | +} | ||
384 | +#choiceContainer .wrapper .choices > div svg .done { | ||
385 | + stroke: #07FF00; | ||
386 | + stroke-width: 3; | ||
387 | + fill: #07FF00; | ||
388 | + fill-opacity: 0.5; | ||
389 | +} | ||
390 | +#choiceContainer .wrapper .choices > div svg .disabled { | ||
391 | + stroke-opacity: 0; | ||
392 | + fill-opacity: 0; | ||
393 | +} | ||
394 | +#mainContainer { | ||
395 | + width: 940px; | ||
396 | + height: 550px; | ||
397 | + background-color: #ebebeb; | ||
398 | + border: 3px solid #cccccc; | ||
399 | + margin: 0 auto; | ||
400 | +} | ||
401 | +#mainContainer .checkpoint { | ||
402 | + width: 940px; | ||
403 | + height: 550px; | ||
404 | + position: absolute; | ||
405 | + background-color: black; | ||
406 | + z-index: 10; | ||
407 | + opacity: 0.9; | ||
408 | +} | ||
409 | +#mainContainer .checkpoint.desactive { | ||
410 | + display: none; | ||
411 | +} | ||
412 | +#mainContainer .checkpoint .voltar { | ||
413 | + width: 200px; | ||
414 | + height: 150px; | ||
415 | + position: relative; | ||
416 | + background: url('/system/wikilibras/images/voltar.png') no-repeat; | ||
417 | + background-position: center top; | ||
418 | + top: 180px; | ||
419 | + margin-left: 190px; | ||
420 | + float: left; | ||
421 | + cursor: pointer; | ||
422 | +} | ||
423 | +#mainContainer .checkpoint .voltar > p { | ||
424 | + font-family: 'trajan_pro'; | ||
425 | + color: white; | ||
426 | + margin: 0; | ||
427 | + position: relative; | ||
428 | + font-size: 34px; | ||
429 | + top: 110px; | ||
430 | + left: 35px; | ||
431 | +} | ||
432 | +#mainContainer .checkpoint .voltar:hover > p { | ||
433 | + color: #fe4b4b; | ||
434 | +} | ||
435 | +#mainContainer .checkpoint .continuar { | ||
436 | + width: 220px; | ||
437 | + height: 180px; | ||
438 | + position: relative; | ||
439 | + background: url('/system/wikilibras/images/continuar.png') no-repeat; | ||
440 | + background-size: 100px; | ||
441 | + background-position: 71px 2px; | ||
442 | + top: 172px; | ||
443 | + left: 120px; | ||
444 | + float: left; | ||
445 | + cursor: pointer; | ||
446 | +} | ||
447 | +#mainContainer .checkpoint .continuar > p { | ||
448 | + font-family: 'trajan_pro'; | ||
449 | + color: white; | ||
450 | + margin: 0; | ||
451 | + position: relative; | ||
452 | + font-size: 34px; | ||
453 | + top: 120px; | ||
454 | +} | ||
455 | +#mainContainer .checkpoint .continuar:hover > p { | ||
456 | + color: #2ee7f0; | ||
457 | +} | ||
458 | +#mainContainer .checkpoint .continuar.desactive { | ||
459 | + display: none; | ||
460 | +} | ||
461 | +#mainContainer .checkpoint .gerar { | ||
462 | + width: 230px; | ||
463 | + height: 153px; | ||
464 | + position: relative; | ||
465 | + background: url('/system/wikilibras/images/gerar.png') no-repeat; | ||
466 | + background-position: 60px top; | ||
467 | + top: 170px; | ||
468 | + left: 120px; | ||
469 | + float: left; | ||
470 | + cursor: pointer; | ||
471 | +} | ||
472 | +#mainContainer .checkpoint .gerar > p { | ||
473 | + font-family: 'trajan_pro'; | ||
474 | + color: white; | ||
475 | + margin: 0; | ||
476 | + position: relative; | ||
477 | + font-size: 34px; | ||
478 | + top: 120px; | ||
479 | +} | ||
480 | +#mainContainer .checkpoint .gerar:hover > p { | ||
481 | + color: #80ff70; | ||
482 | +} | ||
483 | +#mainContainer .checkpoint .gerar.desactive { | ||
484 | + display: none; | ||
485 | +} | ||
486 | +#mainContainer #textsContainer { | ||
487 | + position: relative; | ||
488 | + width: 920px; | ||
489 | + height: 50px; | ||
490 | + top: 10px; | ||
491 | + left: 10px; | ||
492 | + font-family: 'trajan_pro'; | ||
493 | +} | ||
494 | +#mainContainer #textsContainer .panelLabel { | ||
495 | + width: 300px; | ||
496 | + height: 100%; | ||
497 | + position: relative; | ||
498 | + float: left; | ||
499 | +} | ||
500 | +#mainContainer #textsContainer .panelLabel .pLWrapper { | ||
501 | + font-size: 1em; | ||
502 | + position: relative; | ||
503 | + top: 18px; | ||
504 | +} | ||
505 | +#mainContainer #textsContainer .signalName { | ||
506 | + width: 350px; | ||
507 | + height: 100%; | ||
508 | + position: relative; | ||
509 | + float: right; | ||
510 | + right: 140px; | ||
511 | +} | ||
512 | +#mainContainer #textsContainer .signalName .sNWrapper { | ||
513 | + font-size: 1em; | ||
514 | + position: relative; | ||
515 | + top: 18px; | ||
516 | + float: right; | ||
517 | +} | ||
518 | +#mainContainer #tabsContainer { | ||
519 | + position: relative; | ||
520 | + width: 160px; | ||
521 | + top: 20px; | ||
522 | + left: 10px; | ||
523 | + float: left; | ||
524 | + font-family: 'trajan_pro'; | ||
525 | +} | ||
526 | +#mainContainer #tabsContainer a { | ||
527 | + text-decoration: none; | ||
528 | +} | ||
529 | +#mainContainer #tabsContainer .tabs { | ||
530 | + width: 100%; | ||
531 | + height: 100%; | ||
532 | + margin: 0; | ||
533 | + padding: 0; | ||
534 | + list-style-type: none; | ||
535 | +} | ||
536 | +#mainContainer #tabsContainer .tabs li { | ||
537 | + width: 100%; | ||
538 | + height: 55px; | ||
539 | + margin-bottom: 5px; | ||
540 | + color: white; | ||
541 | + background: linear-gradient(to bottom, #5c79bf, #3c5898); | ||
542 | +} | ||
543 | +#mainContainer #tabsContainer .tabs li p { | ||
544 | + position: relative; | ||
545 | + top: 20px; | ||
546 | + left: 10px; | ||
547 | + margin: 0; | ||
548 | +} | ||
549 | +#mainContainer #tabsContainer .tabs li:nth-of-type(1) .arrow { | ||
550 | + top: 0; | ||
551 | +} | ||
552 | +#mainContainer #tabsContainer .tabs li:nth-of-type(2) .arrow { | ||
553 | + top: 60px; | ||
554 | +} | ||
555 | +#mainContainer #tabsContainer .tabs li:nth-of-type(3) .arrow { | ||
556 | + top: 120px; | ||
557 | +} | ||
558 | +#mainContainer #tabsContainer .tabs li:nth-of-type(4) .arrow { | ||
559 | + top: 180px; | ||
560 | +} | ||
561 | +#mainContainer #tabsContainer .tabs li:hover { | ||
562 | + cursor: pointer; | ||
563 | + border-left: 2px solid #0a0b6e; | ||
564 | +} | ||
565 | +#mainContainer #tabsContainer .tabs li:hover p { | ||
566 | + left: 8px; | ||
567 | +} | ||
568 | +#mainContainer #tabsContainer .tabs li .arrow { | ||
569 | + position: absolute; | ||
570 | + float: left; | ||
571 | + left: 160px; | ||
572 | + width: 0; | ||
573 | + height: 0; | ||
574 | + border-top: 27.5px solid transparent; | ||
575 | + border-bottom: 27.5px solid transparent; | ||
576 | + border-left: 12px solid #4d69ac; | ||
577 | +} | ||
578 | +#mainContainer #tabsContainer .tabs li .arrow.active { | ||
579 | + z-index: 3; | ||
580 | +} | ||
581 | +#mainContainer #panelsContainer { | ||
582 | + position: relative; | ||
583 | + width: 620px; | ||
584 | + height: 350px; | ||
585 | + top: 20px; | ||
586 | + left: 10px; | ||
587 | + float: left; | ||
588 | + /* | ||
589 | + * BEGIN - Panels Principais | ||
590 | + */ | ||
591 | + | ||
592 | + /* | ||
593 | + * END - Panels Principais | ||
594 | + */ | ||
595 | + | ||
596 | +} | ||
597 | +#mainContainer #panelsContainer > div { | ||
598 | + position: absolute; | ||
599 | + width: 100%; | ||
600 | + height: 100%; | ||
601 | + z-index: 1; | ||
602 | + background-color: #cccccc; | ||
603 | +} | ||
604 | +#mainContainer #panelsContainer > .active { | ||
605 | + z-index: 2; | ||
606 | +} | ||
607 | +#mainContainer #panelsContainer .scrollUp { | ||
608 | + width: 590px; | ||
609 | + height: 30px; | ||
610 | + background-color: white; | ||
611 | + position: relative; | ||
612 | + top: 10px; | ||
613 | + left: 15px; | ||
614 | + background: #808080 url('/system/wikilibras/images/up.png') no-repeat center; | ||
615 | + background-size: 30px 30px; | ||
616 | + opacity: 0.5; | ||
617 | + -webkit-transition: all 0.5s ease; | ||
618 | + transition: all 0.5s ease; | ||
619 | +} | ||
620 | +#mainContainer #panelsContainer .scrollUp:hover { | ||
621 | + opacity: 1; | ||
622 | +} | ||
623 | +#mainContainer #panelsContainer .scrollDown { | ||
624 | + width: 590px; | ||
625 | + height: 30px; | ||
626 | + background-color: white; | ||
627 | + position: relative; | ||
628 | + top: 20px; | ||
629 | + left: 15px; | ||
630 | + background: #808080 url('/system/wikilibras/images/down.png') no-repeat center; | ||
631 | + background-size: 30px 30px; | ||
632 | + opacity: 0.5; | ||
633 | + -webkit-transition: all 0.5s ease; | ||
634 | + transition: all 0.5s ease; | ||
635 | +} | ||
636 | +#mainContainer #panelsContainer .scrollDown:hover { | ||
637 | + opacity: 1; | ||
638 | +} | ||
639 | +#mainContainer #panelsContainer .mainContent { | ||
640 | + width: 590px; | ||
641 | + height: 260px; | ||
642 | + position: relative; | ||
643 | + top: 15px; | ||
644 | + left: 15px; | ||
645 | + overflow: hidden; | ||
646 | +} | ||
647 | +#mainContainer #panelsContainer .mainContent .wrapper { | ||
648 | + width: 100%; | ||
649 | + height: 100%; | ||
650 | + overflow: auto; | ||
651 | +} | ||
652 | +#mainContainer #panelsContainer .mainContent ::-webkit-scrollbar { | ||
653 | + display: none; | ||
654 | +} | ||
655 | +#mainContainer #panelsContainer > div.expression .mainContent .wrapper > span { | ||
656 | + width: 110px; | ||
657 | + height: 110px; | ||
658 | + background-color: black; | ||
659 | + position: relative; | ||
660 | + margin-right: 10px; | ||
661 | + margin-bottom: 10px; | ||
662 | + float: left; | ||
663 | + /* | ||
664 | + * Hack para reencaixar os span's dentro do .wrapper no Firefox (-5px) | ||
665 | + */ | ||
666 | + | ||
667 | + cursor: pointer; | ||
668 | +} | ||
669 | +@-moz-document url-prefix() { | ||
670 | + #panelsContainer > div.expression .mainContent .wrapper > span { | ||
671 | + margin-right: 5px !important; | ||
672 | + } | ||
673 | +} | ||
674 | +#mainContainer #panelsContainer > div.expression .mainContent .wrapper > span:nth-of-type(-n+5) { | ||
675 | + margin-top: 4px; | ||
676 | +} | ||
677 | +#mainContainer #panelsContainer > div.expression .mainContent .wrapper > span:nth-of-type(5n+5) { | ||
678 | + margin-right: 0; | ||
679 | +} | ||
680 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper { | ||
681 | + /* | ||
682 | + * Hack para reencaixar os span's dentro do .wrapper no Firefox (-11px) | ||
683 | + */ | ||
684 | + | ||
685 | +} | ||
686 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div { | ||
687 | + position: relative; | ||
688 | + float: left; | ||
689 | + border: 1px solid black; | ||
690 | + margin-bottom: 20px; | ||
691 | + width: 224px; | ||
692 | + height: 198px; | ||
693 | +} | ||
694 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div > span { | ||
695 | + width: 100px; | ||
696 | + height: 150px; | ||
697 | + margin-top: 10px; | ||
698 | + position: relative; | ||
699 | + float: left; | ||
700 | + cursor: pointer; | ||
701 | +} | ||
702 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div > span:nth-of-type(1) { | ||
703 | + margin-left: 7px; | ||
704 | +} | ||
705 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div > span:nth-of-type(3) { | ||
706 | + margin-left: 7px; | ||
707 | +} | ||
708 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div > span:nth-of-type(2) { | ||
709 | + margin-left: 10px; | ||
710 | +} | ||
711 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div > span:nth-of-type(4) { | ||
712 | + margin-left: 10px; | ||
713 | +} | ||
714 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div .label { | ||
715 | + font-family: 'trajan_pro'; | ||
716 | + font-size: 12px; | ||
717 | + text-align: center; | ||
718 | + padding-top: 6px; | ||
719 | + position: relative; | ||
720 | + float: left; | ||
721 | + width: 100px; | ||
722 | + height: 19px; | ||
723 | + margin-top: 7px; | ||
724 | + margin-left: 7px; | ||
725 | +} | ||
726 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div .label:nth-of-type(2) { | ||
727 | + margin-left: 10px; | ||
728 | +} | ||
729 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div:not( :nth-of-type(2)) .label:last-of-type { | ||
730 | + margin-left: 10px; | ||
731 | +} | ||
732 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div:nth-of-type(3) { | ||
733 | + margin-left: 59px; | ||
734 | +} | ||
735 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div:nth-of-type(4) { | ||
736 | + margin-left: 20px; | ||
737 | +} | ||
738 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div:nth-of-type(4) > span:nth-of-type(-n+4) { | ||
739 | + display: none; | ||
740 | +} | ||
741 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div:nth-of-type(4) .label:nth-of-type(-n+4) { | ||
742 | + display: none; | ||
743 | +} | ||
744 | +@-moz-document url-prefix() { | ||
745 | + #panelsContainer > div.initial .mainContent .wrapper > div:nth-of-type(2) { | ||
746 | + margin-left: 5px !important; | ||
747 | + } | ||
748 | +} | ||
749 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div:nth-of-type(2) { | ||
750 | + width: 342px; | ||
751 | + height: 198px; | ||
752 | + margin-left: 20px; | ||
753 | +} | ||
754 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div:nth-of-type(2) > span:nth-of-type(n+2) { | ||
755 | + margin-left: 14px; | ||
756 | +} | ||
757 | +#mainContainer #panelsContainer > div.initial .mainContent .wrapper > div:nth-of-type(2) .label:nth-of-type(n+2) { | ||
758 | + margin-left: 14px; | ||
759 | +} | ||
760 | +#mainContainer #panelsContainer > div.dedos .mainContent .wrapper > span { | ||
761 | + width: 87px; | ||
762 | + height: 110px; | ||
763 | + background-color: black; | ||
764 | + position: relative; | ||
765 | + margin-right: 13.6px; | ||
766 | + margin-bottom: 13.6px; | ||
767 | + float: left; | ||
768 | + /* | ||
769 | + * Hack para reencaixar os span's dentro do .wrapper no Firefox (-5px) | ||
770 | + */ | ||
771 | + | ||
772 | + cursor: pointer; | ||
773 | +} | ||
774 | +@-moz-document url-prefix() { | ||
775 | + #panelsContainer > div.dedos .mainContent .wrapper > span { | ||
776 | + margin-right: 8.6px !important; | ||
777 | + } | ||
778 | +} | ||
779 | +#mainContainer #panelsContainer > div.dedos .mainContent .wrapper > span:nth-of-type(-n+6) { | ||
780 | + margin-top: 8.6px; | ||
781 | +} | ||
782 | +#mainContainer #panelsContainer > div.dedos .mainContent .wrapper > span:nth-of-type(6n+6) { | ||
783 | + margin-right: 0; | ||
784 | +} | ||
785 | +#mainContainer #panelsContainer > div.orientation .mainContent .wrapper > span { | ||
786 | + width: 125px; | ||
787 | + height: 175px; | ||
788 | + background-color: black; | ||
789 | + position: relative; | ||
790 | + margin-right: 30px; | ||
791 | + margin-bottom: 30px; | ||
792 | + float: left; | ||
793 | + /* | ||
794 | + * Hack para reencaixar os span's dentro do .wrapper no Firefox (-11px) | ||
795 | + */ | ||
796 | + | ||
797 | + cursor: pointer; | ||
798 | +} | ||
799 | +@-moz-document url-prefix() { | ||
800 | + #panelsContainer > div.orientation .mainContent .wrapper > span { | ||
801 | + margin-right: 18px !important; | ||
802 | + } | ||
803 | +} | ||
804 | +#mainContainer #panelsContainer > div.orientation .mainContent .wrapper > span:nth-of-type(-n+4) { | ||
805 | + margin-top: 10px; | ||
806 | +} | ||
807 | +#mainContainer #panelsContainer > div.orientation .mainContent .wrapper > span:nth-of-type(4n+4) { | ||
808 | + margin-right: 0px; | ||
809 | +} | ||
810 | +#mainContainer #panelsContainer > div.localizations .mainContent { | ||
811 | + height: 320px; | ||
812 | +} | ||
813 | +#mainContainer #panelsContainer > div.localizations .mainContent .wrapper > span { | ||
814 | + width: 134px; | ||
815 | + height: 185px; | ||
816 | + background-color: black; | ||
817 | + position: relative; | ||
818 | + margin-right: 18px; | ||
819 | + margin-top: 67.5px; | ||
820 | + float: left; | ||
821 | + cursor: pointer; | ||
822 | +} | ||
823 | +#mainContainer #panelsContainer > div.localizations .mainContent .wrapper > span:nth-of-type(4) { | ||
824 | + margin-right: 0; | ||
825 | +} | ||
826 | +#mainContainer #panelsContainer > div.localizations .mainContent .floatWrapper { | ||
827 | + width: 100%; | ||
828 | + height: 320px; | ||
829 | + top: -320px; | ||
830 | + position: absolute; | ||
831 | + -webkit-transition: all 0.3s linear; | ||
832 | + transition: all 0.3s linear; | ||
833 | + overflow: hidden; | ||
834 | +} | ||
835 | +#mainContainer #panelsContainer > div.localizations .mainContent .floatWrapper > div { | ||
836 | + position: absolute; | ||
837 | + width: 100%; | ||
838 | + height: 320px; | ||
839 | + z-index: 1; | ||
840 | + background-color: #cccccc; | ||
841 | +} | ||
842 | +#mainContainer #panelsContainer > div.localizations .mainContent .floatWrapper > div .scrollUp { | ||
843 | + top: 0; | ||
844 | + left: 0; | ||
845 | + width: 550px; | ||
846 | +} | ||
847 | +#mainContainer #panelsContainer > div.localizations .mainContent .floatWrapper > div .scrollDown { | ||
848 | + top: -23px; | ||
849 | + left: 0; | ||
850 | +} | ||
851 | +#mainContainer #panelsContainer > div.localizations .mainContent .floatWrapper > div .innerWrapper { | ||
852 | + width: 590px; | ||
853 | + height: 255px; | ||
854 | + position: relative; | ||
855 | + overflow: auto; | ||
856 | + top: -28px; | ||
857 | +} | ||
858 | +#mainContainer #panelsContainer > div.localizations .mainContent .floatWrapper > div .innerWrapper > span { | ||
859 | + width: 134px; | ||
860 | + height: 185px; | ||
861 | + background-color: black; | ||
862 | + position: relative; | ||
863 | + margin-right: 18px; | ||
864 | + margin-bottom: 20px; | ||
865 | + float: left; | ||
866 | + /* | ||
867 | + * Hack para reencaixar os span's dentro do .wrapper no Firefox (-11px) | ||
868 | + */ | ||
869 | + | ||
870 | + cursor: pointer; | ||
871 | +} | ||
872 | +@-moz-document url-prefix() { | ||
873 | + #panelsContainer > div.localizations .mainContent .floatWrapper .innerWrapper > span { | ||
874 | + margin-right: 9px !important; | ||
875 | + } | ||
876 | +} | ||
877 | +#mainContainer #panelsContainer > div.localizations .mainContent .floatWrapper > div .innerWrapper > span:nth-of-type(-n+4) { | ||
878 | + margin-top: 10px; | ||
879 | +} | ||
880 | +#mainContainer #panelsContainer > div.localizations .mainContent .floatWrapper > div .innerWrapper > span:nth-of-type(4n+4) { | ||
881 | + margin-right: 0px; | ||
882 | +} | ||
883 | +#mainContainer #panelsContainer > div.localizations .mainContent .floatWrapper > div .close { | ||
884 | + width: 28px; | ||
885 | + height: 28px; | ||
886 | + position: relative; | ||
887 | + float: right; | ||
888 | + cursor: pointer; | ||
889 | + top: -30px; | ||
890 | +} | ||
891 | +#mainContainer #panelsContainer > div.localizations .mainContent .floatWrapper .active { | ||
892 | + z-index: 2 !important; | ||
893 | +} | ||
894 | +#mainContainer #avatarContainer { | ||
895 | + position: relative; | ||
896 | + width: 130px; | ||
897 | + height: 177px; | ||
898 | + top: 100px; | ||
899 | + left: 19px; | ||
900 | + float: left; | ||
901 | + border: 2px solid gray; | ||
902 | +} | ||
903 | +#mainContainer #avatarContainer > .wrapper { | ||
904 | + width: 120px; | ||
905 | + height: 167px; | ||
906 | + position: absolute; | ||
907 | + left: 5px; | ||
908 | + top: 5px; | ||
909 | +} | ||
910 | +#mainContainer #timelineContainer { | ||
911 | + position: relative; | ||
912 | + width: 940px; | ||
913 | + height: 110px; | ||
914 | + top: 30px; | ||
915 | +} | ||
916 | +#mainContainer #timelineContainer .wrapper { | ||
917 | + position: relative; | ||
918 | + width: 940px; | ||
919 | + height: 110px; | ||
920 | + text-align: center; | ||
921 | +} | ||
922 | +#mainContainer #timelineContainer .wrapper > span { | ||
923 | + position: relative; | ||
924 | + display: inline-block; | ||
925 | + width: 90px; | ||
926 | + height: 90px; | ||
927 | + top: 10px; | ||
928 | + margin-left: 21px; | ||
929 | + background-color: gray; | ||
930 | + z-index: 1; | ||
931 | +} | ||
932 | +#mainContainer #timelineContainer .wrapper > span:first-of-type { | ||
933 | + margin-left: 0px; | ||
934 | +} | ||
935 | +#mainContainer #timelineContainer .wrapper > span.active { | ||
936 | + outline: 5px solid #324787; | ||
937 | +} | ||
938 | +#mainContainer .clearfix { | ||
939 | + clear: both; | ||
940 | +} |