PageSourceSearch

https://www.jingguang.com.cn/public/js/productMechanies/KeyShotVR.js

js jingguang.com.cn collected 2026-10-08 12:16:43 UTC 30,832 bytes, 1,046 lines download raw bytes

1var q = !0
2  , s = null
3  , A = !1;
4window.keyshotVR = function(R, u, S, T, ia, C, ja, ka, la, ma, na, H, I, oa, pa, qa, U, ra, sa, ta, V, ua, va,imgsrcArr) {
5    function M(a, e, b) {
6        a.removeEventListener ? a.removeEventListener(e, b, A) : a.detachEvent && (a.detachEvent("on" + e, a["e" + e + b]),
7        a["e" + e + b] = s)
8    }
9    function m(a, e, b) {
10        a.addEventListener ? a.addEventListener(e, b, A) : a.attachEvent && (a["e" + e + b] = b,
11        a.attachEvent("on" + e, function() {
12            a["e" + e + b]()
13        }))
14    }
15    function W() {
16        var a = A;
17        -1 != navigator.platform.toString().indexOf("Win") && -1 != navigator.appVersion.indexOf("MSIE") && (a = q);
18        return a
19    }
20    function wa() {
21        var a = document.getElementById(R)
22          , b = a.requestFullScreen || a.webkitRequestFullScreen || a.mozRequestFullScreen || a.msRequestFullScreen;
23        "undefined" != typeof b && b && b.call(a)
24    }
25    function xa(h) {
26        a.ja = A;
27        h.pointerId in a.F && delete a.F[h.pointerId];
28        X(h)
29    }
30    function ya(h) {
31        a.ja && (a.F[h.pointerId] = [h.pageX, h.pageY],
32        Y(h))
33    }
34    function za(h) {
35        a.ja = q;
36        a.F[h.pointerId] = [h.pageX, h.pageY];
37        Z(h)
38    }
39    function $() {
40        a.o ? (setTimeout(function() {
41            a.t(A)
42        }, 20),
43        setTimeout(function() {
44            a.t(q)
45        }, 120)) : (setTimeout(function() {
46            a.t(q)
47        }, 20),
48        setTimeout(function() {
49            a.t(A)
50        }, 120))
51    }
52    function F() {
53        var a = {
54            x: 0,
55            y: 0
56        }
57          , b = r;
58        if (b.offsetParent) {
59            do
60                a.x += b.offsetLeft,
61                a.y += b.offsetTop;
62            while (b = b.offsetParent)
63        }
64        return a
65    }
66    function aa() {
67        var h = c.g;
68        c.g = Math.min(v.width / w.width, v.height / w.height);
69        h != c.g && a.Q(a.v() * h / c.g);
70        a.o ? (p.setAttribute("height", ""),
71        //p.style[J] = "translate(" + -w.width / 2 + "px," + -w.height / 2 + "px) scale(" + c.g + ") translate(" + 0.5 * v.width / c.g + "px," + 0.5 * v.height / c.g + "px) translate(" + c.i + "px," + c.j + "px) scale(" + c.m + ")",
72        p.style["max-width"] = "",
73        p.style.width = "",
74        p.style.height = "",
75        r.style["background-color"] = a.backgroundColor) : (p.removeAttribute("height"),
76        p.style[J] = "scale(" + c.m + ")",
77        p.style.width = "100%",
78        p.style.height = "auto",
79        r.style["background-color"] = "")
80    }
81    function K() {
82        a.Oa(a.k.offsetWidth, a.k.offsetHeight)
83    }
84    function ba(a, b) {
85        l.start.x = a;
86        l.start.y = b;
87        l.a.x = a;
88        l.a.y = b;
89        i.a.x = a;
90        i.a.y = b
91    }
92    function ca(a, b) {
93        l.b.x = a - l.a.x;
94        l.b.y = b - l.a.y;
95        l.m.x = a;
96        l.m.y = b;
97        l.a.x = a;
98        l.a.y = b
99    }
100    function E(h) {
101        h || (h = window.event);
102        var b = 0;
103        h.keyCode ? b = h.keyCode : h.which && (b = h.which);
104        1 == b ? j.d |= 1 : 1 < b && (j.d |= 2);
105        a.ta(h);
106        h.preventDefault ? h.preventDefault() : h.returnValue = A
107    }
108    function G(h) {
109        h || (h = window.event);
110        var b = F();
111        a.cursor.x = h.pageX - b.x + k.left;
112        a.cursor.y = h.pageY - b.y + k.top;
113        h.preventDefault ? h.preventDefault() : h.returnValue = A;
114        0 < j.d && (1 == j.d ? ca(h.pageX, h.pageY) : 2 == j.d ? (h = a.cursor.y - D.start.y,
115        b = a.v(),
116        a.Q(c.s * Math.exp(h / 200)),
117        h = a.v(),
118        c.i += parseFloat(a.e * b - a.e * h),
119        c.j += parseFloat(a.f * b - a.f * h)) : 3 == j.d && (b = a.cursor.x - D.start.x,
120        h = a.cursor.y - D.start.y,
121        c.i += parseFloat((b - c.l.x) / c.g),
122        c.j += parseFloat((h - c.l.y) / c.g),
123        c.l.x = b,
124        c.l.y = h))
125    }
126    function L(h) {
127        h || (h = window.event);
128        var b = 0;
129        h.keyCode ? b = h.keyCode : h.which && (b = h.which);
130        1 == b ? j.d &= -2 : 1 < b && (j.d &= -3);
131        a.ta(h);
132        h.preventDefault ? h.preventDefault() : h.returnValue = A
133    }
134    function N(b) {
135        b || (b = window.event);
136        a.Da(0 < (b.detail ? -1 * b.detail : b.wheelDelta / 40) ? 1 : -1);
137        b.preventDefault ? b.preventDefault() : b.returnValue = A
138    }
139    function Z(b) {
140        b || (b = window.event);
141        var e = da()
142          , d = F();
143        a.cursor.x = e[0].pageX - d.x + k.left;
144        a.cursor.y = e[0].pageY - d.y + k.top;
145        if (1 == e.length && e[0])
146            if (j.start.x = e[0].pageX,
147            j.start.y = e[0].pageY,
148            j.a.x = e[0].pageX,
149            j.a.y = e[0].pageY,
150            a.na = e[0].target,
151            a.na == a.K)
152                j.d = 1,
153                ba(e[0].pageX, e[0].pageY);
154            else
155                for (var f = a.na; f && f != a.K; ) {
156                    if (f.onclick)
157                        f.onclick();
158                    f = f.parentNode
159                }
160        if (2 == e.length && e[0] && e[1]) {
161            j.d = 3;
162            j.$.x = e[0].pageX - d.x + k.left;
163            j.$.y = e[0].pageY - d.y + k.top;
164            j.aa.x = e[1].pageX - d.x + k.left;
165            j.aa.y = e[1].pageY - d.y + k.top;
166            var f = e[0].pageX - e[1].pageX
167              , g = e[0].pageY - e[1].pageY
168              , i = (e[0].pageX - d.x + k.left + (e[1].pageX - d.x + k.left)) / 2
169              , e = (e[0].pageY - d.y + k.top + (e[1].pageY - d.y + k.top)) / 2;
170            c.ma = A;
171            c.Pa = Math.sqrt(f * f + g * g);
172            c.s = a.v();
173            a.e = parseFloat(i - 0.5 * v.width);
174            a.f = parseFloat(e - 0.5 * v.height);
175            a.e *= parseFloat(a.O);
176            a.f *= parseFloat(a.O);
177            a.e -= parseFloat(c.i);
178            a.f -= parseFloat(c.j);
179            a.e /= parseFloat(c.s);
180            a.f /= parseFloat(c.s)
181        }
182        b.preventDefault()
183    }
184    function Y(b) {
185        b || (b = window.event);
186        var e = da()
187          , d = F();
188        a.cursor.x = e[0].pageX - d.x + k.left;
189        a.cursor.y = e[0].pageY - d.y + k.top;
190        1 == e.length && e[0] && (j.a.x = e[0].pageX,
191        j.a.y = e[0].pageY,
192        0 <= j.d && ca(j.a.x, j.a.y));
193        if (2 == e.length && e[0] && e[1]) {
194            var f = a.v()
195              , g = e[0].pageX - e[1].pageX
196              , i = e[0].pageY - e[1].pageY;
197            a.Q(c.s / c.Pa * Math.sqrt(g * g + i * i));
198            g = a.v();
199            i = a.f * f - a.f * g;
200            c.i += a.e * f - a.e * g;
201            c.j += i;
202            f = (a.cursor.x + e[1].pageX - d.x + k.left) / 2 - (j.$.x + j.aa.x) / 2;
203            e = (a.cursor.y + e[1].pageY - d.y + k.top) / 2 - (j.$.y + j.aa.y) / 2;
204            c.ma == A && (c.l.x = f,
205            c.l.y = e,
206            c.ma = q);
207            c.i += (f - c.l.x) / c.g;
208            c.j += (e - c.l.y) / c.g;
209            c.l.x = f;
210            c.l.y = e
211        }
212        b.preventDefault()
213    }
214    function da() {
215        if (!W())
216            return window.event.touches;
217        var b = [];
218        for (id in a.F) {
219            var e = a.F[id]
220              , d = {};
221            d.pageX = e[0];
222            d.pageY = e[1];
223            d.target = a.K;
224            d.preventDefault = function() {}
225            ;
226            b.push(d)
227        }
228        return b
229    }
230    function X(b) {
231        b.preventDefault();
232        a.na = s;
233        j.d = 0;
234        var e = (new Date).getTime()
235          , d = e - (O || e + 1);
236        clearTimeout(P);
237        500 > d && 0 < d || (O = e,
238        P = setTimeout(function() {
239            clearTimeout(P)
240        }, 500, [b]));
241        O = e
242    }
243    function Aa(a) {
244        a.preventDefault();
245        j.d = 0
246    }
247    function Q() {
248        Ba(Q);
249        a.U == a.X && (1 == j.d ? 0.01 < i.J ? (i.b.x = 0.4 * (l.a.x - i.a.x),
250        i.b.y = 0.4 * (l.a.y - i.a.y),
251        i.a.x += i.b.x,
252        i.a.y += i.b.y,
253        a.ia(i.b.x, i.b.y)) : (a.ia(l.b.x, l.b.y),
254        l.b.x = 0,
255        l.b.y = 0) : 0.01 < i.J && (i.b.x *= i.J,
256        i.b.y *= i.J,
257        0.055 > i.b.x * i.b.x + i.b.y * i.b.y && (i.b.x = 0,
258        i.b.y = 0,
259        l.b.x = 0,
260        l.b.y = 0,
261        l.a.x = i.a.x,
262        l.a.y = i.a.y),
263        (0 != i.b.x || 0 != i.b.y) && a.ia(i.b.x, i.b.y)));
264        a.ya();
265        var b = 0;
266        if (-1 == a.ea) {
267            for (var e = 1, e = 0; e < a.r.length; e++) {
268                var c = a.B[e];
269                if (0 == a.w[c] && a.r[e].complete && a.r[e].width == w.width && a.r[e].height == w.height) {
270                    a.D[c] = a.w[c];
271                    a.w[c] = -1;
272                    if (a.U == a.X) {
273                        var f = a.r.length + a.wa;
274                        f > d.q && (f = d.q);
275                        if (f -= b)
276                            for (var g = 0; g < f; g++)
277                                a.da()
278                    }
279                    d.I = q;
280                    0 == e && a.ya()
281                }
282                -1 != a.D[c] && b++
283            }
284            e = parseFloat(b / d.q);
285            a.Na(e);
286            b == d.q && (a.ea = 0,
287            a.Ma())
288        }
289    }
290    function ea(a) {
291        a = a ? a : window.event;
292        13 == a.keyCode && ($(),
293        a.preventDefault ? a.preventDefault() : a.returnValue = A)
294    }
295    var B = "/"
296      , fa = window.location.href,
297      _ga=fa.indexOf("//"),
298      _htp=fa.substr(0, _ga + 2),
299      _fa=fa.substr(_ga+2),
300      _va=_fa.indexOf("/");
301    0 <= _va && (B = _htp+_fa.substr(0, _va + 1));
302    this.ja = A;
303    this.F = [];
304    this.ya = function() {
305        if (d.I) {
306            d.I = A;
307            var b = parseInt(d.S * d.c + d.R);
308            -1 == a.D[b] || ha.setAttribute("src", a.C[b])
309        }
310        if (c.m != c.a || c.i != c.ua || c.j != c.va)
311            c.a = c.m,
312            c.ua = c.i,
313            c.va = c.j,
314            aa()
315    }
316    ;
317    this.Xa = function(b) {
318        for (var e = -1E3, c = b, f = parseFloat(parseInt(b % d.c)), g = parseFloat(parseInt(b / d.c)), f = f / d.c, f = f * 2 * Math.PI, g = g / d.h, g = g * Math.PI, b = Math.sin(f), f = Math.cos(f), g = Math.cos(g), i = Math.sqrt(b * b + f * f + g * g), b = b / i, f = f / i, g = g / i, i = 0; i < a.r.length; i++) {
319            var j = a.B[i];
320            if (-1 != a.D[j]) {
321                var k = a.Aa[j].Ta
322                  , k = b * k.x + f * k.y + g * k.Ua;
323                e < k && (e = k,
324                c = j)
325            }
326        }
327        return c
328    }
329    ;
330    this.da = function() {
331        if (a.la < d.q) {
332            var b = new Image
333              , e = a.B[a.la];
334            a.w[e] = 0;
335            b.src = a.C[e];
336            a.r.push(b);
337            var c = parseInt(e % d.c)
338              , f = parseInt(e / d.c)
339              , c = c / d.c
340              , c = c * 2 * Math.PI
341              , f = f / d.h
342              , f = f * Math.PI
343              , b = Math.sin(c)
344              , c = Math.cos(c)
345              , f = Math.cos(f)
346              , g = Math.sqrt(b * b + c * c + f * f);
347            a.Aa[e] = {
348                Ta: {
349                    x: b / g,
350                    y: c / g,
351                    Ua: f / g
352                }
353            };
354            a.la++
355        }
356    }
357    ;
358    this.Ca = function() {
359        for (var b = d.oa, e = d.pa, c = 2, f = parseFloat(d.c / c), g = parseFloat(d.h / c), i = d.q, j = 0, k = 0, m = 0, n = 0, l = 0; a.M < i; ) {
360            var p = parseInt(b % d.c)
361              , r = parseInt(e % d.h)
362              , l = parseInt(r * d.c + p);
363            a.C[l] || (a.B[a.M] = l,
364            a.M++,
365            a.C[l] = a.sa(p, r));
366            0 == j && (b += f,
367            k++);
368            1 == j && (e += g,
369            m++);
370            n++;
371            if (n >= c)
372                if (n = 0,
373                0 == j)
374                    j = 1,
375                    k = 0;
376                else if (1 == j && (b += f,
377                k++,
378                k >= c / 2)) {
379                    c *= 2;
380                    b = d.oa;
381                    e = d.pa;
382                    f = parseFloat(d.c / c);
383                    g = parseFloat(d.h / c);
384                    if (1 > f && 1 > g) {
385                        for (b = 0; b < i; b++)
386                            e = parseInt(b % d.c),
387                            c = parseInt(b / d.c),
388                            l = parseInt(c * d.c + e),
389                            a.C[l] || (a.B[a.M] = l,
390                            a.M++,
391                            a.C[l] = a.sa(e, c));
392                        break
393                    }
394                    j = m = k = 0
395                }
396        }
397    }
398    ;
399    this.sa = function(b, e) {
400        /*var arr = {
401            0:"qktojcb4Qwa2QNvQARBdPw",
402            1:"hk-gaVtWTx-89LLFquh1vQ",
403            2:"oTEJZwfaT2qgQrLeaXu9VQ",
404            3:"6Fj3JIBbQmelR6N7Ckoclg",
405            4:"7e3ZhGoYQ7COJ42zyjAMJg",
406            5:"YHmZfQN6RBO3wwT064jfvg",
407            6:"CfYWAAm6RlWgrEMD_9GJ8g",
408            7:"YXgJvbsMTxiPtehkGYbB8Q",
409            8:"OO6p51f3Sr-xhR1uutB8KA",
410            9:"vXUa43PmQQeELS_NqKBRvA",
411            10:"PLkFmpJDTRGycanM7liy8w",
412            11:"8GdguWXHS9C_kkdGrsDzcA",
413            12:"aA2gu-IQR-OD5t6QzAn1xg",
414            13:"auq1KJpBQk2R6QUFwG9-2g",
415            14:"FUgdBEccTQ6TcsRu-DRLyw",
416            15:"CfYWAAm6RlWgrEMD_9GJ8g"
417        }*/
418        var arr=imgsrcArr;
419        var cc =  arr[b];
420        if(!cc){
421            cc=b;
422        } 
423        //return B + a.u + "/" + cc + "." + ta
424        return "/" + a.u + "/" + cc + "." + ta
425        //return B + a.u + "/" + parseInt(e) + "_" + parseInt(b) + "." + ta
426    }
427    ;
428    this.ia = function(b, e) {
429        var b = b * (1 < d.c ? a.Ra : 0)
430          , e = e * (1 < d.h ? a.Sa : 0)
431          , c = Math.sqrt(b * b + e * e);
432        if (1E-4 < c && (d.ba += b,
433        d.ca += e,
434        d.z += c,
435        1 < d.z)) {
436            var c = parseInt(d.z)
437              , f = Math.atan2(d.ba, d.ca);
438            d.z -= c;
439            d.ba = 0;
440            d.ca = 0;
441            0 > f && (f += 2 * Math.PI);
442            f += Math.PI / 8;
443            f = parseInt(f / (Math.PI / 4));
444            0 > f && (f += 8);
445            f %= 8;
446            if (0 != x[f]) {
447                var g = d.R
448                  , g = g + c * x[f];
449                if (d.za) {
450                    for (; 0 > g; )
451                        g += d.c;
452                    for (; g >= d.c; )
453                        g -= d.c
454                } else
455                    g >= d.c && (g = d.c - 1),
456                    0 > g && (g = 0);
457                d.R != g && (d.R = g,
458                d.I = q)
459            }
460            if (0 != y[f]) {
461                g = d.S;
462                g += c * y[f];
463                if (d.Ba) {
464                    for (; 0 > g; )
465                        g += d.h;
466                    for (; g >= d.h; )
467                        g -= d.h
468                } else
469                    g >= d.h && (g = d.h - 1),
470                    0 > g && (g = 0);
471                d.S != g && (d.S = g,
472                d.I = q)
473            }
474        }
475    }
476    ;
477    this.Qa = function() {
478        a.t(!a.o);
479        a.o ? a.H.setAttribute("src", B + a.u + "/files/GoFixedSizeIcon.png") : a.H.setAttribute("src", B + a.u + "/files/GoFullScreenIcon.png")
480    }
481    ;
482    this.t = function(b) {
483        a.o = b;
484        a.o ? (t.style.position = "absolute",
485        b = F(),
486        t.style.left = window.pageXOffset - b.x + k.left + "px",
487        t.style.top = window.pageYOffset - b.y + k.top + "px") : (t.style.position = "relative",
488        t.style.left = "0px",
489        t.style.top = "0px",
490        document.body.style.overflow = "");
491        K()
492    }
493    ;
494    this.Fa = function() {
495        var b = new Image;
496        b.src = a.L.src;
497        a.r[a.W] = b;
498        b = a.B[a.W];
499        a.D[b] = a.w[b];
500        a.w[b] = -1;
501        a.W++;
502        d.I = q;
503        a.W == d.q && (a.ea = 0,
504        a.Ga())
505    }
506    ;
507    var P, O = s;
508    this.ta = function(b) {
509        var e = F();
510        a.cursor.x = b.pageX - e.x + k.left;
511        a.cursor.y = b.pageY - e.y + k.top;
512        1 == j.d ? ba(b.pageX, b.pageY) : 2 == j.d ? (D.start.x = a.cursor.x,
513        D.start.y = a.cursor.y,
514        c.s = a.v(),
515        a.e = a.cursor.x - 0.5 * v.width,
516        a.f = a.cursor.y - 0.5 * v.height,
517        a.e *= a.O,
518        a.f *= a.O,
519        a.e -= c.i,
520        a.f -= c.j,
521        a.e /= c.s,
522        a.f /= c.s) : 3 == j.d && (D.start.x = a.cursor.x,
523        D.start.y = a.cursor.y,
524        c.l.x = 0,
525        c.l.y = 0)
526    }
527    ;
528    this.Da = function(b) {
529        a.Q(c.m * Math.exp(-b / 50))
530    }
531    ;
532    this.v = function() {
533        return c.m
534    }
535    ;
536    this.Q = function(a) {
537        a > c.ga / c.g && (a = c.ga / c.g);
538        a < c.ha / c.g && (a = c.ha / c.g);
539        c.m = a
540    }
541    ;
542    this.Wa = function(a, b, c, d) {
543        k.left = a;
544        k.top = b;
545        k.right = c;
546        k.bottom = d;
547        K()
548    }
549    ;
550    this.Oa = function(b, c) {
551        a.o && (b = window.innerWidth,
552        c = window.innerHeight);
553        var d = b - k.left - k.right
554          , f = c - k.top - k.bottom;
555        v.width = d;
556        v.height = f;
557        r.style.width = d + "px";
558        r.style.height = f + "px";
559        r.style.left = k.left + "px";
560        r.style.top = k.top + "px";
561        aa();
562        n.style.width = b + "px";
563        n.style.height = c + "px";
564        n.xa && n.xa(b, c)
565    }
566    ;
567    this.T = function(a) {
568        m(a, "mousedown", E);
569        m(a, "mousemove", G);
570        m(a, "mouseup", L)
571    }
572    ;
573    this.Z = function(a) {
574        M(a, "mousedown", E);
575        M(a, "mousemove", G);
576        M(a, "mouseup", L)
577    }
578    ;
579    this.Ma = function() {
580        a.p && (a.p.style.visibility = "hidden",
581        a.Z(a.p),
582        a.Z(a.N),
583        a.Z(a.n))
584    }
585    ;
586    this.Ga = function() {
587        a.A.style.visibility = "hidden";
588        a.Z(a.A)
589    }
590    ;
591    var Ba = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(a) {
592        window.setTimeout(a, 10)
593    }
594    ;
595    this.ra = function() {
596        a.p = document.createElement("div");
597        a.T(a.p);
598        a.p.V = function() {
599            this.parentNode && (this.style.left = "16px",
600            this.style.top = "16px")
601        }
602        ;
603        b = "position:absolute;";
604        b += "left: 0px;";
605        b += "top:  0px;";
606        b += "width: 80px;";
607        b += "height: 80px;";
608        b += z + "transform-origin: 50% 50%;";
609        b += "visibility: inherit;";
610        a.p.setAttribute("style", b);
611        a.N = document.createElement("div");
612        a.T(a.N);
613        b = "position:absolute;";
614        b += "left: 0px;";
615        b += "top:  29px;";
616        b += "width: 80px;";
617        b += "height: 80px;";
618        b += z + "transform-origin: 50% 50%;";
619        b += "opacity: 1.0;";
620        b += "visibility: inherit;";
621        b += "border: 0px solid #000000;";
622        b += "color: #ffffff;";
623        b += "text-align: left;";
624        b += "white-space: nowrap;";
625        b += "padding: 0px 0px 0px 0px;";
626        b += "overflow: hidden;";
627        a.N.setAttribute("style", b);
628        a.n = document.createElement("div");
629        a.T(a.n);
630        a.n.Y = {
631            Ia: 0,
632            Ja: 0,
633            fa: 0,
634            Ka: 1,
635            La: 1,
636            Za: 1
637        };
638        b = "position:absolute;";
639        b += "left: 0px;";
640        b += "top:  0px;";
641        b += "width: 80px;";
642        b += "height: 80px;";
643        b += z + "transform-origin: 50% 50%;";
644        b += "opacity: 1.0;";
645        b += "visibility: inherit;";
646        b += "border: 0px solid #000000;";
647        b += "color: #ffffff;";
648        b += "text-align: left;";
649        b += "white-space: nowrap;";
650        b += "padding: 0px 0px 0px 0px;";
651        b += "overflow: hidden;";
652        var c = ua;
653        "" == c && (c = "ks_logo.png");
654        a.n.setAttribute("style", b);
655        // a.n.innerHTML = '<img src="' + B + a.u + "/" + c + '"></img>';
656        a.p.appendChild(a.n);
657        a.p.appendChild(a.N);
658        n.appendChild(a.p);
659        a.t(a.o);
660        setTimeout(function() {
661            a.t(a.o)
662        }, 10)
663    }
664    ;
665    this.Na = function(b) {
666        if (a.p) {
667            a.N.innerHTML = "<center>" + parseInt(100 * b) + "</center>";
668            a.n.Y.fa += 2.1;
669            b = "";
670            if (a.n.Y)
671                var c = a.n.Y
672                  , b = b + ("translate(" + c.Ia + "px," + c.Ja + "px) rotate(" + c.fa + "deg) scale(" + c.Ka + "," + c.La + ") ");
673            a.n.style[J] = b + "scale(1.0,1.0)"
674        }
675    }
676    ;
677    this.qa = function() {
678        m(window, "resize", K);
679        va && m(n, "dblclick", wa);
680        if (W())
681            if (m(window, "mousewheel", N),
682            m(window, "keydown", ea),
683            /Tablet PC/i.test(navigator.userAgent) && window.Va) {
684                var b = new MSGesture;
685                b.target = a.k;
686                a.k.Ea = b;
687                a.k.Ea.pointerType = s;
688                a.k.$a = [];
689                m(a.k, "MSPointerDown", za);
690                m(a.k, "MSPointerMove", ya);
691                m(a.k, "MSPointerUp", xa)
692            } else
693                m(n, "mousedown", E),
694                m(p, "mousedown", E),
695                m(n, "mousemove", G),
696                m(p, "mousemove", G),
697                m(document, "mouseup", L);
698        else
699            n.addEventListener && (m(document, "mouseup", L),
700            m(n, "mousewheel", N),
701            m(document, "keydown", ea),
702            m(n, "mousedown", E),
703            m(p, "mousedown", E),
704            m(n, "mousemove", G),
705            m(n, "touchstart", Z),
706            m(n, "touchmove", Y),
707            m(n, "touchcancel", Aa),
708            m(n, "touchend", X),
709            m(n, "DOMMouseScroll", N),
710            m(window, "orientationchange", $));
711        Q()
712    }
713    ;
714    if (document.createElement("canvas").getContext) {
715        var a = this
716          , t = a.k = s
717          , r = s
718          , ha = s
719          , n = s
720          , p = s;
721        a.o = U;
722        a.u = u;
723        a.Ya = A;
724        a.X = A;
725        a.U = sa;
726        a.ab = 0;
727        a.M = 0;
728        a.Ra = parseFloat(ma);
729        a.Sa = parseFloat(na);
730        a.wa = 1;
731        a.W = 0;
732        a.ea = -1;
733        var k = {
734            left: 0,
735            top: 0,
736            right: 0,
737            bottom: 0
738        }
739          , d = {
740            R: 0,
741            S: 0,
742            c: 1,
743            h: 1,
744            oa: 0,
745            pa: 0,
746            z: 0,
747            ba: 0,
748            ca: 0,
749            I: A,
750            q: 0,
751            za: q,
752            Ba: A
753        };
754        H || (H = 0);
755        I || (I = 0);
756        d.oa = H;
757        d.pa = I;
758        d.R = H;
759        d.S = I;
760        d.c = C;
761        d.h = ja;
762        d.za = ka;
763        d.Ba = la;
764        d.q = d.c * d.h;
765        var w = {
766            width: 0,
767            height: 0
768        };
769        w.width = S;
770        w.height = T;
771        var z = ""
772          , J = "transform"
773          , v = {
774            x: 640,
775            y: 480
776        }
777          , c = {
778            m: 1,
779            s: 1,
780            a: -1,
781            i: 0,
782            j: 0,
783            ua: -1,
784            va: -1,
785            g: 1,
786            ha: 1,
787            ga: 1,
788            l: {
789                x: 0,
790                y: 0
791            },
792            ma: A
793        };
794        c.ha = parseFloat(oa);
795        c.ga = parseFloat(pa);
796        var l = {
797            start: {
798                x: 0,
799                y: 0
800            },
801            a: {
802                x: 0,
803                y: 0
804            },
805            Ha: {
806                x: 0,
807                y: 0
808            },
809            m: {
810                x: 0,
811                y: 0
812            },
813            b: {
814                x: 0,
815                y: 0
816            }
817        }
818          , D = {
819            start: {
820                x: 0,
821                y: 0
822            }
823        }
824          , j = {
825            d: 0,
826            start: {
827                x: 0,
828                y: 0
829            },
830            a: {
831                x: 0,
832                y: 0
833            },
834            Ha: {
835                x: 0,
836                y: 0
837            },
838            m: {
839                x: 0,
840                y: 0
841            },
842            b: {
843                x: 0,
844                y: 0
845            },
846            $: {
847                x: 0,
848                y: 0
849            },
850            aa: {
851                x: 0,
852                y: 0
853            }
854        }
855          , i = {
856            a: {
857                x: 0,
858                y: 0
859            },
860            b: {
861                x: 0,
862                y: 0
863            },
864            J: 0.96
865        };
866        i.J = qa;
867        a.cursor = {
868            x: 0,
869            y: 0
870        };
871        var x = []
872          , y = [];
873        x[0] = 0;
874        y[0] = 1;
875        x[1] = 1;
876        y[1] = 1;
877        x[2] = 1;
878        y[2] = 0;
879        x[3] = 1;
880        y[3] = -1;
881        x[4] = 0;
882        y[4] = -1;
883        x[5] = -1;
884        y[5] = -1;
885        x[6] = -1;
886        y[6] = 0;
887        x[7] = -1;
888        y[7] = 1;
889        a.e = 0;
890        a.f = 0;
891        a.la = 0;
892        a.r = [];
893        a.B = [];
894        a.w = [];
895        a.D = [];
896        a.Aa = [];
897        for (u = 0; u < d.q; u++)
898            a.w[u] = -1,
899            a.D[u] = -1;
900        a.C = [];
901        u = ["Webkit", "Moz", "0", "ms", "Ms"];
902        for (C = 0; C < u.length; C++)
903            "undefined" != typeof document.documentElement.style[u[C] + "Transform"] && (z = "-" + u[C].toLowerCase() + "-",
904            J = u[C] + "Transform");
905        var b = "";
906        a.k = document.getElementById(R);
907        b = "width: " + S + "px;";
908        b += "height: " + T + "px;";
909        b += "max-width: 100%;";
910        a.k.setAttribute("style", b);
911        t = document.createElement("div");
912        t.setAttribute("id", "viewwindow");
913        b = "top:  0px;";
914        b += "left: 0px;";
915        b += "position: relative;";
916        t.setAttribute("style", b);
917        a.k.appendChild(t);
918        r = document.createElement("div");
919        r.setAttribute("id", "turntable");
920        b = "top:  0px;";
921        b += "left: 0px;";
922        b += "overflow: hidden;";
923        b += "position:absolute;";
924        b += z + "user-select: none;";
925        r.setAttribute("style", b);
926        t.appendChild(r);
927        p = document.createElement("img");
928        p.setAttribute("id", "backbuffer");
929        b = "top:  0px;";
930        b += "left: 0px;";
931        b += "position:absolute;";
932        b += z + "user-select: none;";
933        p.setAttribute("style", b);
934        r.appendChild(p);
935        ha = p;
936        n = document.createElement("div");
937        a.K = n;
938        b = "top:  0px;";
939        b += "left: 0px;";
940        b += "width:  100px;";
941        b += "height: 100px;";
942        b += "overflow: hidden;";
943        b += "position:absolute;";
944        b += "z-index: 522;";
945        b += z + "user-select: none;";
946        n.setAttribute("style", b);
947        t.appendChild(n);
948        n.xa = function(a, b) {
949            var c = [];
950            for (c.push(this); 0 < c.length; ) {
951                var d = c.pop();
952                d.V && d.V(a, b);
953                if (d.hasChildNodes())
954                    for (var g = 0; g < d.childNodes.length; g++)
955                        c.push(d.childNodes[g])
956            }
957        }
958        ;
959        this.A = document.createElement("div");
960        b = "position:absolute;";
961        b += "left: 0px;";
962        b += "top:  0px;";
963        b += "width: 256px;";
964        b += "height: 256px;";
965        b += "opacity: 0.0;";
966        b += z + "transform-origin: 50% 50%;";
967        b += "visibility: inherit;";
968        this.A.setAttribute("style", b);
969        this.L = document.createElement("img");
970        this.L.setAttribute("width", 256);
971        this.L.setAttribute("height", 256);
972        this.L.onload = function() {
973            a.Fa()
974        }
975        ;
976        a.T(this.A);
977        this.A.appendChild(this.L);
978        n.appendChild(this.A);
979        this.backgroundColor = r.style.backgroundColor = ia;
980        ra && (a.P = document.createElement("div"),
981        b = "position:absolute;",
982        b += "width: 38px;",
983        b += "height: 32px;",
984        b += z + "transform-origin: 50% 50%;",
985        b += "visibility: inherit;",
986        b += "cursor: pointer;",
987        a.P.setAttribute("style", b),
988        a.H = document.createElement("img"),
989        a.o ? a.H.setAttribute("src", B + a.u + "/files/GoFixedSizeIcon.png") : a.H.setAttribute("src", B + a.u + "/files/GoFullScreenIcon.png"),
990        a.H.setAttribute("style", "position: absolute;top: 0px;left: 0px;width: 38px;height: 32px;"),
991        a.P.appendChild(a.H),
992        a.P.V = function(a, b) {
993            this.style.left = a - 38 + "px";
994            this.style.top = b - 32 + "px"
995        }
996        ,
997        a.P.onclick = function() {
998            a.Qa()
999        }
1000        ,
1001        a.K.appendChild(a.P));
1002        a.U ? (a.G = document.createElement("div"),
1003        b = "position:absolute;",
1004        b += "width: 92px;",
1005        b += "height: 92px;",
1006        b += z + "transform-origin: 50% 50%;",
1007        b += "visibility: inherit;",
1008        b += "cursor: pointer;",
1009        a.G.setAttribute("style", b),
1010        a.ka = document.createElement("img"),
1011        a.ka.setAttribute("src", B + a.u + "/files/play_arrow.png"),
1012        a.ka.setAttribute("style", "position: absolute;top: 0px;left: 0px;width: 92px;height: 92px;"),
1013        a.G.appendChild(a.ka),
1014        a.G.V = function(a, b) {
1015            this.style.left = 0.5 * a - 46 + "px";
1016            this.style.top = 0.5 * b - 46 + "px"
1017        }
1018        ,
1019        a.G.onclick = function() {
1020            a.G.style.visibility = "hidden";
1021            V && a.ra();
1022            a.X = q;
1023            for (var b = 0; b < a.wa; b++)
1024                a.da();
1025            a.qa()
1026        }
1027        ,
1028        a.K.appendChild(a.G)) : (a.U = q,
1029        a.X = q,
1030        V && a.ra(),
1031        a.qa());
1032        a.t(U);
1033        a.O = 1 / c.g;
1034        a.Q(a.O);
1035        this.Ca();
1036        a.da();
1037        setTimeout(function() {
1038            Q()
1039        }, 10);
1040        setTimeout(function() {
1041            K()
1042        }, 15)
1043    } else
1044        alert("Your browser must support HTML5 to show KeyShotVR")
1045}
1046;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.