Created
August 7, 2012 14:14
-
-
Save andymason/3285675 to your computer and use it in GitHub Desktop.
Google Doodle hurdle game
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// https://www.google.com/doodles/hurdles-2012 | |
(function () { | |
var h = void 0, | |
i = !0, | |
j = null, | |
l = !1, | |
m, n = this, | |
aa = function (a, b) { | |
var c = a.split("."), | |
d = n; | |
!(c[0] in d) && d.execScript && d.execScript("var " + c[0]); | |
for (var e; c.length && (e = c.shift());)!c.length && b !== h ? d[e] = b : d = d[e] ? d[e] : d[e] = {} | |
}, ba = function (a) { | |
var b = typeof a; | |
if ("object" == b) if (a) { | |
if (a instanceof Array) return "array"; | |
if (a instanceof Object) return b; | |
var c = Object.prototype.toString.call(a); | |
if ("[object Window]" == c) return "object"; | |
if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) return "array"; | |
if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) return "function" | |
} else return "null"; | |
else if ("function" == b && "undefined" == typeof a.call) return "object"; | |
return b | |
}, ca = "closure_uid_" + Math.floor(2147483648 * Math.random()).toString(36), | |
da = 0, | |
ea = function (a, b, c) { | |
return a.call.apply(a.bind, arguments) | |
}, fa = function (a, b, c) { | |
if (!a) throw Error(); | |
if (2 < arguments.length) { | |
var d = Array.prototype.slice.call(arguments, 2); | |
return function () { | |
var c = Array.prototype.slice.call(arguments); | |
Array.prototype.unshift.apply(c, d); | |
return a.apply(b, c) | |
} | |
} | |
return function () { | |
return a.apply(b, arguments) | |
} | |
}, p = function (a, b, c) { | |
p = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? ea : fa; | |
return p.apply(j, arguments) | |
}, ga = function (a, b) { | |
function c() {} | |
c.prototype = b.prototype; | |
a.Y = b.prototype; | |
a.prototype = new c | |
}; | |
Function.prototype.bind = Function.prototype.bind || function (a, b) { | |
if (1 < arguments.length) { | |
var c = Array.prototype.slice.call(arguments, 1); | |
c.unshift(this, a); | |
return p.apply(j, c) | |
} | |
return p(this, a) | |
}; | |
var ha, ia = 0 <= navigator.userAgent.indexOf("MSIE"), | |
ka = function (a) { | |
for (var b = ja, c = 0, d; d = b[c++];) if (a == d) return i; | |
return l | |
}, r = function (a, b, c) { | |
a = document.createElement(a); | |
b && (a.id = b); | |
c && (a.className = c); | |
return a | |
}, u = function () { | |
return (new Date).getTime() | |
}, v = function (a, b, c) { | |
return b + Math.min(1, Math.max(0, a)) * (c - b) | |
}, la = function (a, b) { | |
return eval(a + String.fromCharCode(37) + b) | |
}; | |
var w = function () { | |
this.C = this.A = this.a = 0; | |
this.K = [] | |
}; | |
w.prototype.play = function () { | |
ha || (this.stop(), this.A = 0, this.C = u(), this.a = window.setInterval(p(this.W, this), 16), this.W()) | |
}; | |
var x = function (a, b, c) { | |
a.K.push({ | |
duration: c || 0, | |
L: b | |
}) | |
}; | |
w.prototype.stop = function () { | |
if (this.a) { | |
for (var a; a = this.K[this.A++];) a.L(1); | |
window.clearInterval(this.a); | |
this.a = 0 | |
} | |
}; | |
var ma = function (a, b) { | |
x(a, function () {}, b) | |
}; | |
w.prototype.W = function () { | |
var a = u(); | |
if (!ha) for (var b; b = this.K[this.A]; this.A++) { | |
var c = a - this.C; | |
if (c < b.duration) { | |
b.L(c / b.duration); | |
return | |
} | |
b.L(1); | |
0 < b.duration && (this.C += b.duration) | |
} | |
this.stop() | |
}; | |
var y = function (a, b, c, d, e, f, g, k) { | |
this.reset = function () { | |
this.g = this.frame = this.M = this.o = 0; | |
this.offsetX = g || 0; | |
this.offsetY = k || 0; | |
this.O = this.p = this.opacity = 1; | |
this.Z = c || 0; | |
this.$ = d || 0; | |
this.y = this.x = 0; | |
this.N = a; | |
this.i = a.getContext("2d"); | |
this.v = j; | |
this.H = f; | |
this.G = b; | |
this.I = e | |
}; | |
this.reset() | |
}, na = function (a, b, c) { | |
for (var d = new w, c = c / b, e = function (a, b) { | |
return function () { | |
a.frame = b | |
} | |
}, f = 0; f < b; f++) x(d, e(a, f), c); | |
return d | |
}, z = function (a) { | |
if (a.opacity) { | |
var b = a.getWidth(), | |
c = a.getHeight(), | |
d = b / 2, | |
e = c / 2, | |
f = Math.abs(a.offsetX), | |
g = Math.abs(a.offsetY); | |
if (0 < a.x + b + d + f && 0 < a.y + c + e + g && a.x - f < a.N.width && a.y - g < a.N.height) { | |
a.i.save(); | |
a.i.globalAlpha = a.opacity; | |
f = a.x + d; | |
g = a.y + e; | |
a.g && (f += a.g * (Math.random() - 0.5), g += a.g * (Math.random() - 0.5)); | |
a.i.translate(f, g); | |
f = a.o; | |
a.M && (f += a.M * (Math.random() - 0.5)); | |
f && a.i.rotate(f); | |
(1 != a.p || 1 != a.O) && a.i.scale(a.p, a.O); | |
try { | |
a.i.drawImage(a.G, a.Z + a.frame * b, a.$, b, c, a.offsetX - d, a.offsetY - e, b, c) | |
} catch (k) {} | |
a.i.restore() | |
} | |
} | |
}, oa = function (a, b, c) { | |
var d; | |
d == h && (d = a.opacity); | |
a.v && a.v.stop(); | |
a.v = new w; | |
var e = a.v, | |
f = d; | |
d = p(function (a) { | |
this.opacity = v(a, f, c) | |
}, a); | |
x(e, d, b); | |
a.v.play() | |
}; | |
y.prototype.getHeight = function () { | |
this.H || (this.H = this.G.height); | |
return this.H | |
}; | |
y.prototype.getWidth = function () { | |
this.I || (this.I = this.G.width); | |
return this.I | |
}; | |
var pa = {}, qa = { | |
pa: 0, | |
ra: 1, | |
ua: 2, | |
oa: 3, | |
qa: 4, | |
ta: 5, | |
ma: 6 | |
}; | |
pa.F = j; | |
var ra = [], | |
A = {}, sa = 0, | |
ta = j, | |
ua = j, | |
va = l, | |
B = function (a, b) { | |
return a.buttons[b] && 0.5 < a.buttons[b] | |
}, C = function (a, b, c) { | |
return "undefined" == typeof a.axes[b] ? l : c ? -0.75 > a.axes[b] : 0.75 < a.axes[b] | |
}, xa = function (a) { | |
pa.F = a.gamepad; | |
va || (va = i, wa()) | |
}, ya = function () { | |
delete pa.F; | |
va = l | |
}, wa = function () { | |
var a; | |
if (pa.F) a = pa.F; | |
else { | |
var b = navigator.webkitGetGamepads && navigator.webkitGetGamepads() || navigator.webkitGamepads; | |
a = b && (b[3] || b[2] || b[1] || b[0]) || j | |
} | |
if (a && !(a.timestamp && a.timestamp == sa)) { | |
sa = a.timestamp; | |
b = []; | |
b[0] = B(a, 14) || C(a, 0, | |
i) || C(a, 2, i); | |
b[1] = B(a, 15) || C(a, 0, l) || C(a, 2, l); | |
b[2] = B(a, 12) || C(a, 1, i) || C(a, 3, i); | |
b[3] = B(a, 13) || C(a, 1, l) || C(a, 3, l); | |
b[4] = B(a, 0) || B(a, 4) || B(a, 6) || B(a, 8) || B(a, 9) || B(a, 10); | |
b[5] = B(a, 1) || B(a, 5) || B(a, 7) || B(a, 11); | |
b[6] = B(a, 2) || B(a, 3); | |
if (ra.length) for (var c in qa) { | |
a = qa[c]; | |
var d = b[a]; | |
if ("undefined" != typeof d && d != ra[a] && A[a]) { | |
ua && ua(); | |
var e = document.createEvent("Event"); | |
e.initEvent(d ? "keydown" : "keyup", i, i); | |
e.keyCode = A[a]; | |
ta.dispatchEvent(e) | |
} | |
} | |
ra = b | |
} | |
va && (window.requestAnimationFrame ? window.requestAnimationFrame(wa) : window.oRequestAnimationFrame ? window.oRequestAnimationFrame(wa) : window.mozRequestAnimationFrame ? window.mozRequestAnimationFrame(wa) : window.msRequestAnimationFrame ? window.msRequestAnimationFrame(wa) : window.webkitRequestAnimationFrame && window.webkitRequestAnimationFrame(wa)) | |
}; | |
var za = function (a) { | |
Error.captureStackTrace ? Error.captureStackTrace(this, za) : this.stack = Error().stack || ""; | |
a && (this.message = String(a)) | |
}; | |
ga(za, Error); | |
var Aa = function (a, b) { | |
for (var c = 1; c < arguments.length; c++) var d = String(arguments[c]).replace(/\$/g, "$$$$"), | |
a = a.replace(/\%s/, d); | |
return a | |
}; | |
var Ba = function (a, b) { | |
b.unshift(a); | |
za.call(this, Aa.apply(j, b)); | |
b.shift() | |
}; | |
ga(Ba, za); | |
var Ca = function (a, b, c) { | |
if (!a) { | |
var d = Array.prototype.slice.call(arguments, 2), | |
e = "Assertion failed"; | |
if (b) var e = e + (": " + b), | |
f = d; | |
throw new Ba("" + e, f || []); | |
} | |
}; | |
var Da = Array.prototype, | |
Ea = Da.indexOf ? function (a, b, c) { | |
Ca(a.length != j); | |
return Da.indexOf.call(a, b, c) | |
} : function (a, b, c) { | |
c = c == j ? 0 : 0 > c ? Math.max(0, a.length + c) : c; | |
if ("string" == typeof a) return "string" != typeof b || 1 != b.length ? -1 : a.indexOf(b, c); | |
for (; c < a.length; c++) if (c in a && a[c] === b) return c; | |
return -1 | |
}; | |
var Fa = function () {}; | |
var Ga, Ha, Ia, Ja, Ka = function () { | |
return n.navigator ? n.navigator.userAgent : j | |
}; | |
Ja = Ia = Ha = Ga = l; | |
var La; | |
if (La = Ka()) { | |
var Ma = n.navigator; | |
Ga = 0 == La.indexOf("Opera"); | |
Ha = !Ga && -1 != La.indexOf("MSIE"); | |
Ia = !Ga && -1 != La.indexOf("WebKit"); | |
Ja = !Ga && !Ia && "Gecko" == Ma.product | |
} | |
var Na = Ga, | |
D = Ha, | |
Oa = Ja, | |
Pa = Ia, | |
Qa; | |
a: { | |
var Sa = "", | |
Ta; | |
if (Na && n.opera) var Ua = n.opera.version, | |
Sa = "function" == typeof Ua ? Ua() : Ua; | |
else if (Oa ? Ta = /rv\:([^\);]+)(\)|;)/ : D ? Ta = /MSIE\s+([^\);]+)(\)|;)/ : Pa && (Ta = /WebKit\/(\S+)/), Ta) var Va = Ta.exec(Ka()), | |
Sa = Va ? Va[1] : ""; | |
if (D) { | |
var Wa, Xa = n.document; | |
Wa = Xa ? Xa.documentMode : h; | |
if (Wa > parseFloat(Sa)) { | |
Qa = String(Wa); | |
break a | |
} | |
} | |
Qa = Sa | |
} | |
var Ya = Qa, | |
Za = {}, E = function (a) { | |
var b; | |
if (!(b = Za[a])) { | |
b = 0; | |
for (var c = String(Ya).replace(/^[\s\xa0]+|[\s\xa0]+$/g, "").split("."), d = String(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g, "").split("."), e = Math.max(c.length, d.length), f = 0; 0 == b && f < e; f++) { | |
var g = c[f] || "", | |
k = d[f] || "", | |
o = RegExp("(\\d*)(\\D*)", "g"), | |
s = RegExp("(\\d*)(\\D*)", "g"); | |
do { | |
var t = o.exec(g) || ["", "", ""], | |
q = s.exec(k) || ["", "", ""]; | |
if (0 == t[0].length && 0 == q[0].length) break; | |
b = ((0 == t[1].length ? 0 : parseInt(t[1], 10)) < (0 == q[1].length ? 0 : parseInt(q[1], 10)) ? -1 : (0 == t[1].length ? 0 : parseInt(t[1], 10)) > (0 == q[1].length ? 0 : parseInt(q[1], 10)) ? 1 : 0) || ((0 == t[2].length) < (0 == q[2].length) ? -1 : (0 == t[2].length) > (0 == q[2].length) ? 1 : 0) || (t[2] < q[2] ? -1 : t[2] > q[2] ? 1 : 0) | |
} while (0 == b) | |
} | |
b = Za[a] = 0 <= b | |
} | |
return b | |
}, $a = {}, ab = function () { | |
return $a[9] || ($a[9] = D && !! document.documentMode && 9 <= document.documentMode) | |
}; | |
var bb = function (a) { | |
bb[" "](a); | |
return a | |
}; | |
bb[" "] = function () {}; | |
!D || ab(); | |
var cb = !D || ab(), | |
db = D && !E("8"); | |
!Pa || E("528"); | |
Oa && E("1.9b") || D && E("8") || Na && E("9.5") || Pa && E("528"); | |
Oa && !E("8") || D && E("9"); | |
var eb = function (a, b) { | |
this.type = a; | |
this.currentTarget = this.target = b | |
}; | |
eb.prototype.D = l; | |
eb.prototype.defaultPrevented = l; | |
eb.prototype.stopPropagation = function () { | |
this.D = i | |
}; | |
eb.prototype.preventDefault = function () { | |
this.defaultPrevented = i | |
}; | |
var fb = function (a, b) { | |
a && this.init(a, b) | |
}; | |
ga(fb, eb); | |
m = fb.prototype; | |
m.target = j; | |
m.relatedTarget = j; | |
m.offsetX = 0; | |
m.offsetY = 0; | |
m.clientX = 0; | |
m.clientY = 0; | |
m.screenX = 0; | |
m.screenY = 0; | |
m.button = 0; | |
m.keyCode = 0; | |
m.charCode = 0; | |
m.ctrlKey = l; | |
m.altKey = l; | |
m.shiftKey = l; | |
m.metaKey = l; | |
m.w = j; | |
m.init = function (a, b) { | |
var c = this.type = a.type; | |
eb.call(this, c); | |
this.target = a.target || a.srcElement; | |
this.currentTarget = b; | |
var d = a.relatedTarget; | |
if (d) { | |
if (Oa) { | |
var e; | |
a: { | |
try { | |
bb(d.nodeName); | |
e = i; | |
break a | |
} catch (f) {} | |
e = l | |
} | |
e || (d = j) | |
} | |
} else "mouseover" == c ? d = a.fromElement : "mouseout" == c && (d = a.toElement); | |
this.relatedTarget = d; | |
this.offsetX = Pa || a.offsetX !== h ? a.offsetX : a.layerX; | |
this.offsetY = Pa || a.offsetY !== h ? a.offsetY : a.layerY; | |
this.clientX = a.clientX !== h ? a.clientX : a.pageX; | |
this.clientY = a.clientY !== h ? a.clientY : a.pageY; | |
this.screenX = a.screenX || 0; | |
this.screenY = a.screenY || 0; | |
this.button = a.button; | |
this.keyCode = a.keyCode || 0; | |
this.charCode = a.charCode || ("keypress" == c ? a.keyCode : 0); | |
this.ctrlKey = a.ctrlKey; | |
this.altKey = a.altKey; | |
this.shiftKey = a.shiftKey; | |
this.metaKey = a.metaKey; | |
this.state = a.state; | |
this.w = a; | |
a.defaultPrevented && this.preventDefault(); | |
delete this.D | |
}; | |
m.stopPropagation = function () { | |
fb.Y.stopPropagation.call(this); | |
this.w.stopPropagation ? this.w.stopPropagation() : this.w.cancelBubble = i | |
}; | |
m.preventDefault = function () { | |
fb.Y.preventDefault.call(this); | |
var a = this.w; | |
if (a.preventDefault) a.preventDefault(); | |
else if (a.returnValue = l, db) try { | |
if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode) a.keyCode = -1 | |
} catch (b) {} | |
}; | |
var gb = function () {}, hb = 0; | |
m = gb.prototype; | |
m.key = 0; | |
m.s = l; | |
m.S = l; | |
m.init = function (a, b, c, d, e, f) { | |
if ("function" == ba(a)) this.T = i; | |
else if (a && a.handleEvent && "function" == ba(a.handleEvent)) this.T = l; | |
else throw Error("Invalid listener argument"); | |
this.z = a; | |
this.P = b; | |
this.src = c; | |
this.type = d; | |
this.capture = !! e; | |
this.Q = f; | |
this.S = l; | |
this.key = ++hb; | |
this.s = l | |
}; | |
m.handleEvent = function (a) { | |
return this.T ? this.z.call(this.Q || this.src, a) : this.z.handleEvent.call(this.z, a) | |
}; | |
var ib = {}, F = {}, jb = {}, kb = {}, lb = function (a, b, c, d, e) { | |
if (b) { | |
if ("array" == ba(b)) { | |
for (var f = 0; f < b.length; f++) lb(a, b[f], c, d, e); | |
return j | |
} | |
var d = !! d, | |
g = F; | |
b in g || (g[b] = { | |
d: 0, | |
k: 0 | |
}); | |
g = g[b]; | |
d in g || (g[d] = { | |
d: 0, | |
k: 0 | |
}, g.d++); | |
var g = g[d], | |
k = a[ca] || (a[ca] = ++da), | |
o; | |
g.k++; | |
if (g[k]) { | |
o = g[k]; | |
for (f = 0; f < o.length; f++) if (g = o[f], g.z == c && g.Q == e) { | |
if (g.s) break; | |
return o[f].key | |
} | |
} else o = g[k] = [], g.d++; | |
var s = mb, | |
t = cb ? function (a) { | |
return s.call(t.src, t.key, a) | |
} : function (a) { | |
a = s.call(t.src, t.key, a); | |
if (!a) return a | |
}, f = t; | |
f.src = a; | |
g = new gb; | |
g.init(c, f, | |
a, b, d, e); | |
c = g.key; | |
f.key = c; | |
o.push(g); | |
ib[c] = g; | |
jb[k] || (jb[k] = []); | |
jb[k].push(g); | |
a.addEventListener ? (a == n || !a.aa) && a.addEventListener(b, f, d) : a.attachEvent(b in kb ? kb[b] : kb[b] = "on" + b, f); | |
return c | |
} | |
throw Error("Invalid event type"); | |
}, nb = function (a, b, c, d) { | |
if (!d.B && d.R) { | |
for (var e = 0, f = 0; e < d.length; e++) d[e].s ? d[e].P.src = j : (e != f && (d[f] = d[e]), f++); | |
d.length = f; | |
d.R = l; | |
0 == f && (delete F[a][b][c], F[a][b].d--, 0 == F[a][b].d && (delete F[a][b], F[a].d--), 0 == F[a].d && delete F[a]) | |
} | |
}, pb = function (a, b, c, d, e) { | |
var f = 1, | |
b = b[ca] || (b[ca] = ++da); | |
if (a[b]) { | |
a.k--; | |
a = a[b]; | |
a.B ? a.B++ : a.B = 1; | |
try { | |
for (var g = a.length, k = 0; k < g; k++) { | |
var o = a[k]; | |
o && !o.s && (f &= ob(o, e) !== l) | |
} | |
} finally { | |
a.B--, nb(c, d, b, a) | |
} | |
} | |
return Boolean(f) | |
}, ob = function (a, b) { | |
if (a.S) { | |
var c = a.key; | |
if (ib[c]) { | |
var d = ib[c]; | |
if (!d.s) { | |
var e = d.src, | |
f = d.type, | |
g = d.P, | |
k = d.capture; | |
e.removeEventListener ? (e == n || !e.aa) && e.removeEventListener(f, g, k) : e.detachEvent && e.detachEvent(f in kb ? kb[f] : kb[f] = "on" + f, g); | |
e = e[ca] || (e[ca] = ++da); | |
if (jb[e]) { | |
var g = jb[e], | |
o = Ea(g, d); | |
0 <= o && (Ca(g.length != j), Da.splice.call(g, o, 1)); | |
0 == g.length && delete jb[e] | |
} | |
d.s = i; | |
if (d = F[f][k][e]) d.R = i, nb(f, k, e, d); | |
delete ib[c] | |
} | |
} | |
} | |
return a.handleEvent(b) | |
}, mb = function (a, b) { | |
if (!ib[a]) return i; | |
var c = ib[a], | |
d = c.type, | |
e = F; | |
if (!(d in e)) return i; | |
var e = e[d], | |
f, g; | |
if (!cb) { | |
var k; | |
if (!(k = b)) a: { | |
k = ["window", "event"]; | |
for (var o = n; f = k.shift();) if (o[f] != j) o = o[f]; | |
else { | |
k = j; | |
break a | |
} | |
k = o | |
} | |
f = k; | |
k = i in e; | |
o = l in e; | |
if (k) { | |
if (0 > f.keyCode || f.returnValue != h) return i; | |
a: { | |
var s = l; | |
if (0 == f.keyCode) try { | |
f.keyCode = -1; | |
break a | |
} catch (t) { | |
s = i | |
} | |
if (s || f.returnValue == h) f.returnValue = i | |
} | |
} | |
s = new fb; | |
s.init(f, this); | |
f = i; | |
try { | |
if (k) { | |
for (var q = [], Ra = s.currentTarget; Ra; Ra = Ra.parentNode) q.push(Ra); | |
g = e[i]; | |
g.k = g.d; | |
for (var O = q.length - 1; !s.D && 0 <= O && g.k; O--) s.currentTarget = q[O], f &= pb(g, q[O], d, i, s); | |
if (o) { | |
g = e[l]; | |
g.k = g.d; | |
for (O = 0; !s.D && O < q.length && g.k; O++) s.currentTarget = q[O], f &= pb(g, q[O], d, l, s) | |
} | |
} else f = ob(c, s) | |
} finally { | |
q && (q.length = 0) | |
} | |
return f | |
} | |
d = new fb(b, this); | |
return f = ob(c, d) | |
}; | |
var qb = function (a) { | |
this.ka = a; | |
this.la = [] | |
}; | |
ga(qb, Fa); | |
var rb = []; | |
qb.prototype.listen = function (a, b, c, d, e) { | |
"array" != ba(b) && (rb[0] = b, b = rb); | |
for (var f = 0; f < b.length; f++) { | |
var g = lb(a, b[f], c || this, d || l, e || this.ka || this); | |
this.la.push(g) | |
} | |
return this | |
}; | |
qb.prototype.handleEvent = function () { | |
throw Error("EventHandler.handleEvent not implemented"); | |
}; | |
var sb = function (a, b, c, d, e) { | |
qb.call(this); | |
this.ea = a; | |
this.ba = b; | |
this.V = c; | |
this.U = d; | |
this.ha = e; | |
this.listen(this.ha, "click", this.ia) | |
}; | |
ga(sb, qb); | |
sb.prototype.ia = function () { | |
window.gapi && window.gbar && window.gbar.asmc ? window.gapi.load("share", p(this.X, this)) : window.open("about:blank").location = "https://plus.google.com" | |
}; | |
sb.prototype.X = function () { | |
if (window.gapi && window.gapi.share) { | |
var a = { | |
items: [{ | |
type: "http://schema.org/WebPage", | |
id: location.protocol + "//" + location.host, | |
properties: { | |
description: [this.V], | |
url: this.ea, | |
name: [this.ba], | |
image: [this.U] | |
} | |
}] | |
}, b = window.location.toString().match(/[?&]authuser=(\d+)/); | |
window.gapi.share.lightbox(a, { | |
isLoggedInForGooglePlus: !(!window.gbar || !window.gbar.asmc) || !! window.google.doodle.sf, | |
onLoginPopupBlocked: function () { | |
window.google.log && window.google.log("DOODLE", "popupblocked") | |
}, | |
sessionIndex: b && b[1] || "", | |
sourceForLogging: "doodle", | |
onLoginStateChanged: p(function () { | |
aa("google.doodle.sf", i); | |
this.X() | |
}, this) | |
}) | |
} | |
}; | |
var tb, ub, G, vb, wb, xb, H, yb, zb, Ab, Bb, Cb, Db, Eb, Fb, Gb, I, J, K, Hb, Ib, L, Jb, M, ja = [32, 13], | |
Kb = [], | |
Lb = 0, | |
Mb = l, | |
Nb = 0, | |
Ob = [], | |
Pb = i, | |
Rb = function (a, b, c) { | |
for (var d = new w, e = 0; 2 >= e; e++) x(d, Qb(a, b + e)), ma(d, 16); | |
if (c) { | |
ma(d, 64); | |
for (e = 2; 0 <= e; e--) x(d, Qb(a, b + e)), ma(d, 16); | |
x(d, Qb(a, a.className)) | |
} | |
return d | |
}, Ub = function (a) { | |
var b = r("img"); | |
b.src = "/logos/2012/" + a; | |
Db && (!b.complete && "complete" != b.readyState ? (b.onload = Sb, Lb++) : Eb || (Eb = window.setTimeout(Tb, 10))); | |
return b | |
}, N = function () { | |
var a = u(), | |
b = a - zb; | |
Kb.push(b); | |
30 < Kb.length && Kb.shift(); | |
b = Math.min(40, b); | |
K || Ab && 18E4 < a - Ab ? Mb = l : !Pb && vb(a, b) ? (window.requestAnimationFrame ? window.requestAnimationFrame(N, G) : window.oRequestAnimationFrame ? window.oRequestAnimationFrame(N) : window.mozRequestAnimationFrame ? window.mozRequestAnimationFrame(N) : window.msRequestAnimationFrame ? window.msRequestAnimationFrame(N) : window.webkitRequestAnimationFrame ? window.webkitRequestAnimationFrame(N, G) : window.setTimeout(N, 16), zb = a, Mb = i) : Mb = l | |
}, Vb = function (a, b, c) { | |
window.google && window.google.log && window.google.log("doodle-hurdles", "p:" + a + ",s:" + ("undefined" != typeof b ? b : "_") + ",nc:" + ("undefined" != typeof c ? c : "_") + ",d:" + Nb + ",") | |
}, Qb = function (a, b) { | |
return function () { | |
a.className = b | |
} | |
}, Wb = function () { | |
Ab = u(); | |
!Pb && (!Mb && !K) && N() | |
}, Xb = function (a) { | |
Wb(); | |
(37 == a.keyCode || 39 == a.keyCode || 38 == a.keyCode || 40 == a.keyCode || ka(a.keyCode)) && a.preventDefault(); | |
K && (ka(a.keyCode) && !J.a) && J.play(); | |
Cb && Cb(a) | |
}, Yb = function (a) { | |
ka(a.keyCode) && a.preventDefault() | |
}, Sb = function () { | |
--Lb || Db() | |
}, Tb = function () { | |
Lb || Db(); | |
Eb = j | |
}, Zb = function (a) { | |
Wb(); | |
document.activeElement == G && !K && a.preventDefault(); | |
Fb && Fb(a) | |
}, $b = function (a) { | |
Wb(); | |
Gb && Gb(a) | |
}, ac = function () { | |
window.getSelection().selectAllChildren(Bb) | |
}, bc = function (a, b, c) { | |
a.style.margin = c + "px 0 0 " + b + "px" | |
}; | |
var cc = { | |
ALL: ["Play again", "Search", "Share on Google+"], | |
af: ["Speel weer", "Soek", "Deel op Google+"], | |
"am_ET(Amharic/ALL)": ["\u12a5\u1295\u12f0\u1308\u1293 \u12a0\u132b\u12cd\u1275", "\u1348\u120d\u130d", "Google+ \u120b\u12ed \u12a0\u130b\u122b"], | |
ar: ["\u0627\u0644\u0644\u0639\u0628 \u0645\u0631\u0629 \u062b\u0627\u0646\u064a\u0629", "\u0628\u062d\u062b", "\u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0639\u0644\u0649 +Google"], | |
az: ["Yen\u0259 oyna", "Axtar", "Google+'da b\u00f6l\u00fc\u015f"], | |
be: ["\u042f\u0448\u0447\u044d \u0440\u0430\u0437", "\u0428\u0443\u043a\u0430\u0446\u044c", "\u041f\u0430\u0434\u0437\u044f\u043b\u0456\u0446\u0446\u0430 \u043d\u0430 Google+"], | |
bg: ["\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u0443\u0441\u043a\u0430\u043d\u0435", "\u0422\u044a\u0440\u0441\u0435\u043d\u0435", "\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u0432 Google+"], | |
bn: ["\u0986\u09ac\u09be\u09b0 \u09aa\u09cd\u09b2\u09c7 \u0995\u09b0\u09c1\u09a8", "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u0995\u09b0\u09c1\u09a8", "Google+ \u098f \u09ad\u09be\u0997 \u0995\u09b0\u09c1\u09a8"], | |
bs: ["Igraj ponovno", "Tra\u017ei", "Podijeli na Google+"], | |
ca: ["Juga una altra vegada", "Cerca ", "Comparteix a Google+"], | |
cs: ["Hr\u00e1t znovu", "Hledat", "Sd\u00edlet na Google+"], | |
da: ["Spil igen", "S\u00f8g", "Del p\u00e5 Google+"], | |
de: ["Nochmal ansehen", "Suchen", "Auf Google+ teilen"], | |
el: ["\u03a0\u03b1\u03af\u03be\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac", "\u0391\u03bd\u03b1\u03b6\u03b7\u03c4\u03ae\u03c3\u03c4\u03b5", "\u039c\u03bf\u03b9\u03c1\u03b1\u03c3\u03c4\u03b5\u03af\u03c4\u03b5 \u03c3\u03c4\u03bf Google+"], | |
en_us: ["Play again", "Search", "Share on Google+"], | |
"en-GB": ["Play again", "Search", "Share on Google+"], | |
es: ["Jugar de nuevo", "Buscar", "Compartir en Google+"], | |
"es-419": ["Jugar de nuevo", "Buscar", "Compartir en Google+"], | |
et: ["M\u00e4ngi uuesti", "Otsi", "Jaga teenuses Google+"], | |
eu: ["Jolastu berriro", "Bilatu", "Partekatu Google+en"], | |
fi: ["Toista uudelleen", "Hae", "Jaa Google+ -palvelussa"], | |
fr: ["Revoir", "Rechercher", "Partager sur Google+"], | |
ga: ["Seinn ar\u00eds \u00e9", "Cuardaigh", "Roinn ar Google+"], | |
gl: ["Xogar de novo", "Buscar", "Compartir en Google+"], | |
hr: ["Ponovi", "Pretra\u017ei", "Dijeli na Google+"], | |
hu: ["Lej\u00e1tsz\u00e1s ism\u00e9t", "Keres\u00e9s", "Megoszt\u00e1s a Google+-on"], | |
id: ["Main lagi", "Telusuri", "Bagikan di Google+"], | |
is: ["Spila aftur", "Leita", "Deila \u00e1 Google+"], | |
it: ["Gioca di nuovo", "Cerca", "Condividi su Google+"], | |
iw: ["\u05d4\u05e4\u05e2\u05dc \u05e9\u05d5\u05d1", "\u05d7\u05e4\u05e9", "\u05e9\u05ea\u05e3 \u05d1-Google+"], | |
ja: ["\u3082\u3046\u4e00\u5ea6\u898b\u308b", "\u691c\u7d22", "Google+ \u3067\u5171\u6709"], | |
ko: ["\ub2e4\uc2dc\ud558\uae30", "\uac80\uc0c9", "Google+\uc5d0\uc11c \uacf5\uc720"], | |
lt: ["Rodyti dar kart\u0105", "Ie\u0161koti", "Dalytis \u201eGoogle+\u201c"], | |
lv: ["Atska\u0146ot v\u0113lreiz", "Mekl\u0113t", "Kop\u012bgot Google+"], | |
mk: ["\u0418\u0433\u0440\u0430\u0458 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e", "\u041f\u0440\u0435\u0431\u0430\u0440\u0430\u0458", "\u0421\u043f\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 Google+"], | |
mr: ["\u092a\u0941\u0928\u094d\u0939\u093e \u092a\u094d\u0932\u0947 \u0915\u0930\u093e", "\u0936\u094b\u0927\u093e", "Google+ \u0935\u0930 \u0938\u093e\u092e\u093e\u092f\u093f\u0915 \u0915\u0930\u093e"], | |
ms_my: ["Main semula", "Cari", "Kongsi di Google+"], | |
nl: ["Opnieuw afspelen", "Zoeken", "Delen op Google+"], | |
no: ["Spill av p\u00e5 nytt", "S\u00f8k", "Del p\u00e5 Google+"], | |
pl: ["Odtw\u00f3rz ponownie", "Szukaj", "Udost\u0119pnij w Google+"], | |
"pt-BR": ["Jogar novamente", "Pesquisar", "Compartilhar no Google+"], | |
"pt-PT": ["Jogar novamente", "Pesquisar", "Partilhar no Google+"], | |
ro: ["Reda\u0163i din nou", "C\u0103uta\u0163i", "Distribui\u0163i \u00een Google+"], | |
ru: ["\u0418\u0433\u0440\u0430\u0442\u044c \u0435\u0449\u0451 \u0440\u0430\u0437", "\u0418\u0441\u043a\u0430\u0442\u044c", "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432 Google+"], | |
sk: ["Hra\u0165 znova", "H\u013eada\u0165", "Zdie\u013ea\u0165 v Google+"], | |
sl: ["Ponovno predvajaj", "I\u0161\u010di", "Deli v storitvi Google+"], | |
sr: ["\u0418\u0433\u0440\u0430\u0458 \u043e\u043f\u0435\u0442", "\u041f\u0440\u0435\u0442\u0440\u0430\u0436\u0438", "\u0414\u0435\u043b\u0438 \u043d\u0430 Google+"], | |
sv: ["Spela igen", "S\u00f6k", "Dela p\u00e5 Google+"], | |
sw: ["Cheza tena", "Tafuta", "Shiriki kwenye Google+"], | |
th_All: ["\u0e40\u0e25\u0e48\u0e19\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07 ", "\u0e04\u0e49\u0e19\u0e2b\u0e32", "\u0e41\u0e1a\u0e48\u0e07\u0e1b\u0e31\u0e19\u0e1a\u0e19 Google+"], | |
tr: ["Tekrar oyna", "Ara", "Google+'da payla\u015f"], | |
uk: ["\u0413\u0440\u0430\u0442\u0438 \u0449\u0435 \u0440\u0430\u0437", "\u0428\u0443\u043a\u0430\u0442\u0438", "\u041f\u043e\u0434\u0456\u043b\u0438\u0442\u0438\u0441\u044c \u0443 Google+"], | |
vi: ["Ph\u00e1t l\u1ea1i", "T\u00ecm ki\u1ebfm", "Chia s\u1ebb tr\u00ean Google+"], | |
"zh-CN": ["\u518d\u73a9\u4e00\u6b21", "\u641c\u7d22", "\u901a\u8fc7 Google+ \u5206\u4eab"], | |
"zh-TW_HK": ["\u518d\u64ad\u4e00\u6b21", "\u641c\u5c0b", "\u900f\u904e Google+ \u5206\u4eab"], | |
"zh-TW_tw": ["\u518d\u770b\u4e00\u6b21", "\u641c\u5c0b", "\u900f\u904e Google+ \u5206\u4eab"], | |
zu: ["Dlala futhi", "Sesha ", "Yabelana ku-Google+"], | |
hi: ["\u092b\u093c\u093f\u0930 \u0916\u0947\u0932\u0947\u0902", "\u0916\u094b\u091c\u0947\u0902", "Google+ \u092a\u0930 \u0938\u093e\u091d\u093e \u0915\u0930\u0947\u0902"], | |
fil: ["I-play muli", "Maghanap", "Ibahagi sa Google+"], | |
fa: ["\u0628\u0627\u0632\u067e\u062e\u0634", "\u062c\u0633\u062a\u062c\u0648", "\u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u0631 +Google"] | |
}, dc = function (a) { | |
return google.kHL in cc && cc[google.kHL][a] || cc.ALL[a] | |
}; | |
var ec, fc, P, Q, R, gc, hc, ic, jc, kc, S, lc, mc, nc, T, U, oc, pc, qc, rc, sc, tc, uc, vc, wc, V, xc, yc, zc, Ac, Bc, Cc, W, X, Dc, Ec, Y, Fc, Gc, Hc, Ic = { | |
ALL: ["Score", "Hurdles", "I jumped hurdles #GoogleDoodle"], | |
af: ["Hoogste telling", "Hekkies", "Ek het hekkies gehardloop #GoogleDoodle"], | |
"am_ET(Amharic/ALL)": ["\u12a8\u134d\u1270\u129b \u12cd\u1324\u1275", "\u12e8\u1218\u1230\u1293\u12ad\u120d \u1229\u132b", "\u12e8\u1218\u1230\u1293\u12ad\u120d \u1229\u132b \u1270\u132b\u12cd\u127b\u1208\u1201! #GoogleDoodle"], | |
ar: ["\u0627\u0644\u0646\u062a\u064a\u062c\u0629", "\u0633\u0628\u0627\u0642 \u0627\u0644\u062d\u0648\u0627\u062c\u0632", "\u0645\u0627\u0631\u0633\u062a \u0644\u0639\u0628\u0629 \u0633\u0628\u0627\u0642 \u0627\u0644\u062d\u0648\u0627\u062c\u0632 GoogleDoodle#"], | |
az: ["\u018fn y\u00fcks\u0259k bal", "Mane\u0259l\u0259r il\u0259 qa\u00e7\u0131\u015f", "M\u0259n mane\u0259l\u0259r il\u0259 qa\u00e7\u0131\u015fda i\u015ftirak etdim #GoogleDoodle"], | |
be: ["\u041d\u0430\u0439\u043b\u0435\u043f\u0448\u044b \u0432\u044b\u043d\u0456\u043a", "\u0411\u0435\u0433 \u0437 \u0431\u0430\u0440'\u0435\u0440\u0430\u043c\u0456", "\u042f \u045e\u0434\u0437\u0435\u043b\u044c\u043d\u0456\u0447\u0430\u045e \u0443 \u0431\u0435\u0433\u0443 \u0437 \u0431\u0430\u0440'\u0435\u0440\u0430\u043c\u0456 #GoogleDoodle"], | |
bg: ["\u041d\u0430\u0439-\u0434\u043e\u0431\u044a\u0440 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442", "\u0411\u044f\u0433\u0430\u043d\u0435 \u0441 \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u044f", "\u0418\u0433\u0440\u0430\u0445 \u0431\u044f\u0433\u0430\u043d\u0435 \u0441 \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u044f #GoogleDoodle"], | |
bn: ["\u09b8\u09cd\u0995\u09cb\u09b0", "\u09b9\u09be\u09b0\u09cd\u09a1\u09b2\u09b0\u09c7\u09b8", "\u0986\u09ae\u09bf \u09b9\u09be\u09b0\u09cd\u09a1\u09b2\u09b0\u09c7\u09b8\u09c7 \u09a6\u09cc\u09dc\u09c7\u099b\u09bf #\u0997\u09c1\u0997\u09b2\u09a1\u09c1\u09a1\u09b2"], | |
bs: ["Najbolji rezultat", "Tr\u010danje s preponama", "Igrao sam tr\u010danje s preponama #GoogleDoodle"], | |
ca: ["R\u00e8cord", "Cursa de tanques", "He competit en una cursa de tanques #GoogleDoodle"], | |
cs: ["Nejvy\u0161\u0161\u00ed sk\u00f3re", "P\u0159ek\u00e1\u017ekov\u00fd b\u011bh", "Zab\u011bhejte si p\u0159es p\u0159ek\u00e1\u017eky #GoogleDoodle"], | |
da: ["Top score", "H\u00e6kkel\u00f8b", "Jeg hoppede h\u00e6k #GoogleDoodle"], | |
de: ["Rekord", "H\u00fcrdenlauf", "Ich bin \u00fcber die H\u00fcrden gesprungen #GoogleDoodle"], | |
el: ["\u03a5\u03c8\u03b7\u03bb\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u0392\u03b1\u03b8\u03bc\u03bf\u03bb\u03bf\u03b3\u03af\u03b5\u03c2", "\u0395\u03bc\u03c0\u03cc\u03b4\u03b9\u03b1", "\u03a0\u03ae\u03b4\u03b7\u03be\u03b1 \u03b5\u03bc\u03c0\u03cc\u03b4\u03b9\u03b1 #GoogleDoodle"], | |
en_us: ["Score", "Hurdles", "I jumped hurdles #GoogleDoodle"], | |
"en-GB": ["Score", "Hurdles", "I jumped hurdles #GoogleDoodle"], | |
es: ["R\u00e9cord", "Carrera de vallas", "He hecho una carrera de vallas #GoogleDoodle"], | |
"es-419": ["Resultado", "Carrera de vallas", "Particip\u00e9 en una carrera de vallas #GoogleDoodle"], | |
et: ["Rekordtulemus", "T\u00f5kkejooks", "Jooksin t\u00f5kkeid #GoogleDoodle"], | |
eu: ["Errekorra", "Hesi-lasterketa", "Hesi-lasterketan aritu naiz #GoogleDoodle"], | |
fi: ["K\u00e4rkitulos", "Aitajuoksu", "Juoksin aitajuoksun #GoogleDoodle"], | |
fr: ["Meilleur r\u00e9sultat", "Course de haies", "J'ai fait une course de haies #GoogleDoodle"], | |
ga: ["Sc\u00f3r is fearr", "Cliathr\u00e1s", "Rith m\u00e9 cliathr\u00e1s #GoogleDoodle"], | |
gl: ["Record", "Carreira de obst\u00e1culos", "Saltei os valos #GoogleDoodle"], | |
hr: ["Najbolji rezultat", "Tr\u010danje s preponama", "Igrao sam tr\u010danje s preponama #GoogleDoodle"], | |
is: ["Flest stig", "Grindahlaup", "\u00c9g f\u00f3r \u00ed grindahlaup #GoogleDoodle"], | |
it: ["Miglior punteggio", "Corsa a ostacoli", "Ho giocato alla corsa a ostacoli #GoogleDoodle"], | |
iw: ["\u05e0\u05d9\u05e7\u05d5\u05d3", "\u05de\u05e9\u05d5\u05db\u05d5\u05ea", "\u05e8\u05e6\u05ea\u05d9 \u05e8\u05d9\u05e6\u05ea \u05de\u05e9\u05d5\u05db\u05d5\u05ea #GoogleDoodle "], | |
hu: ["Legjobb eredm\u00e9ny", "G\u00e1tfut\u00e1s", "G\u00e1tfutottam #GoogleDoodle"], | |
ja: ["\u30b9\u30b3\u30a2", "\u30cf\u30fc\u30c9\u30eb", "\u300c\u30cf\u30fc\u30c9\u30eb\u300d\u3092\u98db\u3093\u3060! #GoogleDoodle"], | |
ko: ["\uae30\ub85d", "\ud5c8\ub4e4", "\ud5c8\ub4e4\uc744 \ud588\uc5b4\uc694! #GoogleDoodle "], | |
lv: ["Lab\u0101kais rezult\u0101ts", "Barjerskrie\u0161ana", "Es piedal\u012bjos barjerskrie\u0161an\u0101 #GoogleDoodle"], | |
mk: ["\u041d\u0430\u0434\u043e\u0431\u0430\u0440 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442", "\u0422\u0440\u0447\u0430\u045a\u0435 \u0441\u043e \u043f\u0440\u0435\u043f\u0440\u0435\u043a\u0438", "\u0422\u0440\u0447\u0430\u0432 \u043f\u0440\u0435\u043a\u0443 \u043f\u0440\u0435\u043f\u0440\u0435\u043a\u0438 #GoogleDoodle"], | |
mo: ["Scor de top", "Atletism garduri", "Am concurat la atletism garduri #GoogleDoodle"], | |
mr: ["\u0938\u0930\u094d\u0935\u093e\u0927\u093f\u0915 \u0917\u0941\u0923", "\u0905\u0921\u0925\u0933\u0947", "\u092e\u0940 \u0905\u0921\u0925\u0933\u094d\u092f\u093e\u0902\u091a\u0940 \u0936\u0930\u094d\u092f\u0924 \u0916\u0947\u0933\u0932\u094b #GoogleDoodle"], | |
ms_my: ["Skor tertinggi", "Lompat Pagar", "Saya melompat pagar #GoogleDoodle"], | |
nl: ["Topscore", "Hordelopen", "Ik heb horden gelopen #GoogleDoodle"], | |
pl: ["Najlepszy wynik", "Bieg przez p\u0142otki", "\u0106wicz\u0119 bieg przez p\u0142otki #GoogleDoodle"], | |
"pt-BR": ["Pontua\u00e7\u00e3o", "Corrida com Obst\u00e1culos", "Eu competi Corrida com Obst\u00e1culos #GoogleDoodle"], | |
"pt-PT": ["Pontua\u00e7\u00e3o", "Barreiras", "Eu saltei Barreiras #GoogleDoodle"], | |
ro: ["Scor de top", "Atletism garduri", "Am concurat la atletism garduri #GoogleDoodle"], | |
ru: ["\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442", "\u0411\u0435\u0433 \u0441 \u0431\u0430\u0440\u044c\u0435\u0440\u0430\u043c\u0438", "\u0411\u0435\u0433 \u0441 \u0431\u0430\u0440\u044c\u0435\u0440\u0430\u043c\u0438 #GoogleDoodle"], | |
sk: ["Najlep\u0161ie sk\u00f3re", "Beh cez prek\u00e1\u017eky", "Zabehajte si cez prek\u00e1\u017eky #GoogleDoodle"], | |
sl: ["Najbolj\u0161i rezultat", "Tek \u010dez ovire", "Tekel sem \u010dez ovire #GoogleDoodle"], | |
sr: ["\u041d\u0430\u0458\u0431\u043e\u0459\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442", "\u0422\u0440\u0447\u0430\u045a\u0435 \u043f\u0440\u0435\u043a\u043e \u043f\u0440\u0435\u043f\u043e\u043d\u0430", "\u0418\u0433\u0440\u0430\u043c \u0442\u0440\u0447\u0430\u045a\u0435 \u043f\u0440\u0435\u043a\u043e \u043f\u0440\u0435\u043f\u043e\u043d\u0430 #GoogleDoodle"], | |
sv: ["Resultat", "H\u00e4ckl\u00f6pning", "Jag hoppade h\u00e4ck #GoogleDoodle"], | |
sw: ["Alama za Juu", "Mbio za Kuruka Viunzi", "Niliruka Viunzi #GoogleDoodle"], | |
th_All: ["\u0e04\u0e30\u0e41\u0e19\u0e19\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14", "\u0e27\u0e34\u0e48\u0e07\u0e02\u0e49\u0e32\u0e21\u0e23\u0e31\u0e49\u0e27 ", "\u0e09\u0e31\u0e19\u0e27\u0e34\u0e48\u0e07\u0e02\u0e49\u0e32\u0e21\u0e23\u0e31\u0e49\u0e27\u0e1a\u0e19 Google Doodle!"], | |
tr: ["En y\u00fcksek puan", "Engelli Ko\u015fu", "Engelli atlad\u0131m! #GoogleDoodle"], | |
uk: ["\u041d\u0430\u0439\u043a\u0440\u0430\u0449\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442", "\u0411\u0456\u0433 \u0456\u0437 \u043f\u0435\u0440\u0435\u0448\u043a\u043e\u0434\u0430\u043c\u0438", "\u0411\u0456\u0433 \u0456\u0437 \u043f\u0435\u0440\u0435\u0448\u043a\u043e\u0434\u0430\u043c\u0438 #GoogleDoodle"], | |
"zh-CN": ["\u6700\u9ad8\u5f97\u5206", "\u8de8\u680f", "#Google\u6d82\u9e26#\u6211\u73a9\u4e86\u8de8\u680f"], | |
"zh-TW_HK": ["\u6700\u9ad8\u5f97\u5206", "\u8de8\u6b04", "\u6211\u8dd1\u4e86\u5834\u8de8\u6b04\uff01 #GoogleDoodle"], | |
"zh-TW_tw": ["\u6700\u9ad8\u5f97\u5206", "\u8de8\u6b04", "\u6211\u8dd1\u4e86\u5834\u8de8\u6b04\uff01 #GoogleDoodle"] | |
}, | |
Jc = function (a) { | |
return google.kHL in Ic && Ic[google.kHL][a] || Ic.ALL[a] | |
}; | |
var Kc = [0, 0.05, 0.1, 0.15, 0.5, 0.7, 0.7, 1, 1.1], | |
Lc = 530 / 482, | |
Z = [], | |
Mc = window.localStorage && window.localStorage.getItem("doodle-hurdles-tooltip") ? 4 : 0, | |
Nc = function (a, b, c) { | |
a -= R; | |
if (-38 <= a && 533 > a) { | |
var d = Math.cos(b), | |
e = Math.sin(b), | |
b = a + 24, | |
f = b + 35 * e, | |
g = 168 - 35 * d, | |
k = b - 10 * d, | |
o = 168 - 10 * e, | |
s = a * Lc, | |
t = s + 35 * e, | |
q = 193 - 35 * d, | |
d = s - 11 * d, | |
e = 193 - 11 * e; | |
P.lineCap = "round"; | |
c ? (P.lineWidth = 4, P.beginPath(), P.strokeStyle = "rgba(0,0,0,0.1)", P.moveTo(k, 170), P.lineTo(f, 170), P.lineTo(t, 195), P.lineTo(d, 195), P.stroke(), P.lineWidth = 6, P.beginPath(), P.strokeStyle = "#ccc", P.moveTo(k, o), P.lineTo(b, 168), P.lineTo(f, g), P.stroke(), P.beginPath(), P.fillStyle = "#999", P.arc(k, o, 3, 0, 2 * Math.PI, l)) : (P.lineWidth = 6, P.beginPath(), P.strokeStyle = "#ccc", P.moveTo(d, e), P.lineTo(s, 193), P.lineTo(t, q), P.stroke(), P.beginPath(), P.fillStyle = "#999", P.arc(d, e, 3, 0, 2 * Math.PI, l)); | |
P.fill(); | |
155 <= a != c && (P.beginPath(), P.strokeStyle = "#fafbf7", P.moveTo(f, g), P.lineTo(t, q), P.stroke()) | |
} | |
}, Oc = function (a) { | |
a -= R; | |
if (-3 <= a && 527 > a) { | |
var b = a + 24, | |
a = a * Lc; | |
P.beginPath(); | |
P.moveTo(b, 169); | |
P.lineTo(a, 194); | |
P.strokeStyle = "#f8eaf7"; | |
P.lineCap = "square"; | |
P.lineWidth = 6; | |
P.stroke() | |
} | |
}, Sc = function (a, b) { | |
if (1 == Y && !U.a && !zc.a) return l; | |
if (2 == Y && 5E3 < a - sc) Pc(); | |
else if (3 == Y || 4 == Y) { | |
3 == Y && (Fc && 150 <= a - Fc) && ($(4), kc -= 50); | |
var c, d = 0; | |
4 == Y ? (d = Qc(a), d || ($(3), jc = a), c = 0.998) : 3 == Y && (c = 0.995); | |
c = Math.max(0.1, X * c); | |
R += (X + c) * b / 2; | |
X = c; | |
for (c = 0; c < Z.length; c++) { | |
var e = Z[c]; | |
if (e.J) e.o = Math.min(Math.PI / 2, e.o + 0.03 * b); | |
else { | |
var f; | |
if (f = 15 > d) f = e.x - R - 110, f = !e.J && 0 <= f && 45 >= f; | |
f && (X = Math.max(0.1, 0.5 * X), V.g = 20, gc++, e.J = i) | |
} | |
} | |
5E3 <= a - mc ? Pc() : 300 < R && Rc(3); | |
4800 <= R && $(5) | |
} | |
for (d = 0; d < Kc.length; d++) c = ec[d], e = la(R * Kc[d], 530), c.x = -e, z(ec[d]), c.x = 530 - e - 1, z(ec[d]); | |
oc.x = -R; | |
z(oc); | |
U.a || (qc.x = -R, z(qc)); | |
fc.x = 0; | |
fc.p = 1; | |
z(fc); | |
fc.p = -1; | |
fc.x = 530 - fc.getWidth(); | |
z(fc); | |
Oc(185); | |
Oc(4910); | |
for (d = 0; d < Z.length; d++) Nc(Z[d].x, Z[d].o, i); | |
W && (V.frame = la(Math.floor((R + V.x + 530) / 7), 16), d = Qc(u()), c = "rgba(0,0,0," + 0.2 / (1 + 0.2 * d) + ")", e = P, f = W.x + 125, e.save(), e.beginPath(), e.translate(f, 175), e.scale(70, 15), e.arc(0.5, 0.5, 0.5, 0, 2 * Math.PI, i), e.fillStyle = c, e.fill(), e.restore(), W.y = -d, z(W)); | |
for (d = 0; d < Z.length; d++) Nc(Z[d].x, | |
Z[d].o, l); | |
T.frame = a / 150 & 1; | |
z(T); | |
Dc.frame = a / 500 & 1; | |
z(Dc); | |
W.g *= Math.max(0, 1 - 0.015 * b); | |
hc.x = 0; | |
hc.p = 1; | |
z(hc); | |
hc.p = -1; | |
hc.x = 530 - hc.getWidth(); | |
z(hc); | |
return i | |
}, Qc = function (a) { | |
if (!kc) return 0; | |
var b = a - kc, | |
c = b; | |
S && S <= a ? c = S - kc : 200 < c && (c = 200, S = kc + c); | |
return Math.max(0, 1 - 2E-4 * b * b + (3E-4 * c + 0.09) * b) | |
}, Tc = function (a) { | |
var b = u(), | |
c = 37 == a.keyCode ? -1 : 39 == a.keyCode ? 1 : j; | |
if (2 == Y && c) lc ? lc != c ? (mc = b, $(3)) : W.g = 3 : lc = c; | |
else if (3 == Y && (!Gc || 100 < b - Gc)) if (c) { | |
if (c == lc) { | |
W.g = 3; | |
return | |
} | |
X = Math.max(0.1, X + 0.02); | |
lc = c; | |
mc = b; | |
Rc(2) | |
} else(38 == a.keyCode || ka(a.keyCode)) && 50 < b - jc && $(4); | |
Hc = b | |
}, Uc = function (a) { | |
2 != Nb && (Nb = 0); | |
if (4 == Y && !S && (38 == a.keyCode || ka(a.keyCode))) S = Math.max(u(), kc + 100) | |
}, Xc = function () { | |
var a = Vc, | |
b = Wc; | |
b && (G.onmouseout = G.onmouseup = b); | |
Uc && (G.onkeyup = Uc); | |
Fb = a; | |
G.onmousedown = Zb; | |
Gb = j; | |
G.onmousemove = $b; | |
Cb = Tc; | |
G.onkeydown = Xb; | |
G.style.cursor = "pointer"; - 1 != navigator.userAgent.indexOf("Opera") && (G.onkeypress = Yb); | |
$(1); | |
N() | |
}, Vc = function () { | |
var a = u(); | |
2 == Y && $(3); | |
if (3 == Y && (Rc(4), !Fc && (!Hc || 100 < a - Hc))) mc = Fc = a; | |
Gc = a | |
}, Wc = function () { | |
2 != Nb && (Nb = 1); | |
3 == Y && Fc && 150 > u() - Fc ? X = Math.max(0.1, X + 0.03) : 4 == Y && !S && (S = u()); | |
Fc = j | |
}, Yc = function () { | |
U.stop(); | |
z(qc); | |
pc.style.display = "none"; | |
$(2); | |
Vb(0); | |
if (!window.WebFontConfig) { | |
aa("WebFontConfig.google.families", ["Fredoka+One::latin"]); | |
var a = document.createElement("script"); | |
a.src = ("https:" == document.location.protocol ? "https" : "http") + "://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"; | |
a.type = "text/javascript"; | |
a.async = "true"; | |
(document.getElementById("xjsc") || document.body).appendChild(a) | |
} | |
A[0] = 37; | |
A[1] = 39; | |
A[2] = ja[0]; | |
A[4] = 37; | |
A[5] = 39; | |
A[6] = ja[0]; | |
ta = G; | |
ua = function () { | |
2 != Nb && (Nb = 2) | |
} || j; | |
window.addEventListener("MozGamepadConnected", xa, l); | |
window.addEventListener("MozGamepadDisconnected", ya, l); | |
if ((navigator.webkitGamepads || navigator.webkitGetGamepads) && !va) va = i, wa(); | |
N() | |
}, Zc = function (a) { | |
a.stopPropagation() | |
}, Pc = function () { | |
4 == Mc && (Mc = 0, Vb(3), Rc(1)) | |
}, $ = function (a) { | |
var b = Y; | |
if (b != a) if (Y = a, 1 == a) jc = R = 0, U.play(); | |
else if (2 == a) { | |
sc = u(); | |
lc = j; | |
gc = 0; | |
Rc(1); | |
Z = []; | |
for (a = 0; 10 > a; a++) Z.push({ | |
x: 800 + 400 * a + 100 * Math.random(), | |
o: 0, | |
J: l | |
}) | |
} else 3 == a ? 2 == b ? (Ec = u(), | |
X = 0.1, W = yc, xc.play()) : W = V : 4 == a ? (Rc(4), kc = u(), S = j, W = wc, vc.play()) : 5 == a && (R = 4800, ic = u(), Rc(4), 10 == gc ? (W = uc, tc.play()) : (W = Cc, Bc.play())) | |
}, $c = function () { | |
var a = ic - Ec, | |
b = 0; | |
12E3 > a && !gc ? b = 3 : 18E3 > a ? b = 2 : 10 > gc && (b = 1); | |
Vb(1, a, b); | |
var a = a ? (a / 1E3).toFixed(1) + " s" : "", | |
c; | |
xb.V = Jb + a; | |
c || (c = wb); | |
xb.U = "https://www.google.com/logos/2012/" + c + "12-hp-share" + b + ".png"; | |
tb.textContent = a; | |
for (c = 0; 3 > c; c++) Ob[c].className = c < b ? "hplogo_smg" : "hplogo_smh"; | |
L.style.display = ""; | |
M.play() | |
}, Rc = function (a) { | |
for (; Mc < a;) switch (++Mc) { | |
case 1: | |
2 == Y ? (T.offsetX = 250, T.offsetY = 50) : (T.offsetX = 210, T.offsetY = 5); | |
oa(T, 200, 1); | |
nc.style.display = ""; | |
break; | |
case 2: | |
oa(T, 100, 0); | |
nc.style.display = "none"; | |
break; | |
case 3: | |
oa(Dc, 200, 1); | |
break; | |
case 4: | |
oa(Dc, 100, 0), window.localStorage && window.localStorage.setItem("doodle-hurdles-tooltip", i) | |
} | |
}, ad = function () { | |
$(0); | |
var a; | |
ha = l; | |
Pb = !Sc; | |
vb = Sc; | |
zb = u(); | |
Db = Xc; | |
(G = document.getElementById("hplogo")) ? (google.doodle && google.doodle.alt && G.setAttribute("aria-label", google.doodle.alt), G.innerHTML = "", a = i) : a = l; | |
if (a) { | |
if (a = r("canvas", h)) a.style.position = "absolute", | |
a.height = 207, a.width = 530, G.appendChild(a); | |
if ((Q = a) && Q.getContext) { | |
P = Q.getContext("2d"); | |
a = Jc(1); | |
var b = Jc(2) + " \u2014 " + Jc(0) + ": "; | |
wb = "hurdles"; | |
var c = window.location.protocol + "//www.google.com/doodles/hurdles-2012"; | |
Ub("olympics12-hp-sprite.png"); | |
L = r("div", "hplogo_sc"); | |
ub = r("div", "hplogo_sb"); | |
tb = r("span", "hplogo_sbt", "hplogo_sse"); | |
ub.appendChild(tb); | |
for (var d = 0; 3 > d; d++) Ob[d] = r("div", "hplogo_sm"), ub.appendChild(Ob[d]); | |
L.appendChild(ub); | |
d = function (a) { | |
a = r("div", a); | |
L.appendChild(a); | |
return a | |
}; | |
I = d("hplogo_sr"); | |
Hb = d("hplogo_ss"); | |
H = d("hplogo_sg"); | |
I.title = dc(0); | |
Hb.title = dc(1); | |
H.title = dc(2); | |
L.style.display = "none"; | |
Bb = r("div", "hplogo_sle"); | |
Bb.onmouseup = ac; | |
d = r("span", "", "hplogo_sse"); | |
d.textContent = c; | |
Bb.appendChild(d); | |
L.appendChild(Bb); | |
G.appendChild(L); | |
M = new w; | |
x(M, function () { | |
L.style.display = ""; | |
ub.style.opacity = 0; | |
I.style.opacity = 0; | |
Hb.style.opacity = 0; | |
H.style.opacity = 0; | |
Bb.style.opacity = 0; | |
I.className = ""; | |
Hb.className = ""; | |
H.className = ""; | |
ia || ac() | |
}); | |
x(M, function (a) { | |
L.style.opacity = a | |
}, 500); | |
ma(M, 200); | |
x(M, function (a) { | |
bc(ub, | |
55, v(a, 6, 30)); | |
ub.style.opacity = a | |
}, 200); | |
ma(M, 200); | |
x(M, function (a) { | |
var b = a = a * 2; | |
bc(I, 8, v(b, 12, 0)); | |
I.style.opacity = b; | |
b = a - 0.5; | |
bc(Hb, 8, v(b, 12, 0)); | |
Hb.style.opacity = b; | |
a = a - 1; | |
bc(H, 8, v(a, 12, 0)); | |
H.style.opacity = a | |
}, 500); | |
x(M, function (a) { | |
Bb.style.opacity = a | |
}, 500); | |
x(M, function () { | |
K = i | |
}); | |
J = Rb(I, "hplogo_srd"); | |
x(J, function () { | |
K = l; | |
!Pb && !Mb && N(); | |
W = V; | |
W.x = -250; | |
Vb(2); | |
rc.play() | |
}); | |
x(J, function (a) { | |
L.style.opacity = 1 - a | |
}, 200); | |
x(J, function () { | |
L.style.display = "none" | |
}); | |
I.onmousedown = function () { | |
K && !J.a && J.play() | |
}; | |
Ib = Rb(Hb, "hplogo_ssd"); | |
x(Ib, function () { | |
google.nav.go(google.doodle.url) | |
}); | |
Hb.onmousedown = function () { | |
Ib.play() | |
}; | |
yb = Rb(H, "hplogo_sgd", i); | |
H.onmousedown = function () { | |
Vb(4); | |
yb.play() | |
}; | |
xb = new sb(c, a, b, "", H); | |
Jb = b; | |
var e = r("div", "hplogo_pc"); | |
a = r("div", "hplogo_pr"); | |
var f = Rb(a, "hplogo_prd"); | |
x(f, Yc); | |
bc(a, 232, 65); | |
e.appendChild(a); | |
e.onmousedown = function () { | |
e.onmousedown = j; | |
f.play() | |
}; | |
e.style.display = "none"; | |
G.appendChild(e); | |
pc = e; | |
var g = Ub("hurdles12-hp-bg.png"); | |
a = function (a, b, c) { | |
return new y(Q, g, 0, b, 530, c, 0, a) | |
}; | |
ec = [a(0, 1, 125), a(6, 127, 85), a(83, | |
215, 59), a(83, 275, 60), a(96, 337, 56), a(124, 395, 84), a(95, 481, 45), a(164, 529, 35), a(192, 565, 9)]; | |
a = Ub("hurdles12-hp-sprite.png"); | |
hc = new y(Q, a, 3245, 0, 30, 207); | |
wc = new y(Q, a, 0, 298, 120, 152, 110, 32); | |
vc = na(wc, 11, 800); | |
V = new y(Q, a, 1323, 298, 120, 155, 110, 32); | |
fc = new y(Q, a, 0, 0, 63, 207); | |
oc = new y(Q, a, 66, 137, 388, 109, 99, 51); | |
W = V; | |
W.x = -250; | |
T = new y(Q, a, 2743, 0, 184, 134); | |
T.opacity = 0; | |
Dc = new y(Q, a, 66, 0, 184, 134, 210, 5); | |
Dc.opacity = 0; | |
b = r("div"); | |
b.style.position = "absolute"; | |
b.style.height = "130px"; | |
b.style.margin = "50px 0 0 300px"; | |
b.style.width = "130px"; | |
b.style.zIndex = 1; | |
b.onmousedown = Zc; | |
G.appendChild(b); | |
nc = b; | |
nc.style.display = "none"; | |
nc.style.cursor = "default"; | |
yc = new y(Q, a, 1300, 158, 136, 137, 110, 50); | |
xc = na(yc, 9, 300); | |
x(xc, function () { | |
W = V | |
}); | |
Ac = new y(Q, a, 457, 158, 119, 129, 110, 58); | |
zc = na(Ac, 7, 200); | |
uc = new y(Q, a, 1300, 0, 120, 155, 110, 32); | |
tc = na(uc, 12, 400); | |
ma(tc, 600); | |
x(tc, $c); | |
Cc = new y(Q, a, 457, 0, 120, 155, 110, 32); | |
Bc = na(Cc, 7, 300); | |
ma(Bc, 600); | |
x(Bc, $c); | |
a = Ub("olympics12-hp-sprite.png"); | |
qc = new y(Q, a, 316, 0, 67, 73, 232, 65); | |
U = new w; | |
x(U, function () { | |
W = V | |
}); | |
x(U, function (a) { | |
W.x = v(a, - 250, 0) | |
}, 2E3); | |
x(U, function () { | |
pc.style.display = ""; | |
W = Ac; | |
zc.play() | |
}); | |
x(U, function (a) { | |
pc.style.opacity = a | |
}, 600); | |
rc = new w; | |
x(rc, function (a) { | |
R = v(a, 4800, 0) | |
}, 1E3); | |
x(rc, function () { | |
W = V | |
}); | |
x(rc, function (a) { | |
W.x = v(a, - 250, 0) | |
}, 2E3); | |
x(rc, function () { | |
W = Ac; | |
zc.play(); | |
$(2) | |
}) | |
} | |
} | |
}, bd = function () { | |
return document.activeElement != G | |
}, cd = function () { | |
var a = window.google; | |
if (a) { | |
var b = a.msg, | |
c = function () { | |
var a = b && b.unlisten; | |
a && (a(67, c), bd && a(94, bd)); | |
Pb = ha = i; | |
G && (G.innerHTML = ""); | |
K = l; | |
return i | |
}; | |
if (!a.doodle || !a.doodle.jesr) aa("google.doodle.jesr", | |
i), a.rein && a.dstr && (a.rein.push(ad), a.dstr.push(c)); | |
var a = a.psy, | |
d = b && b.listen; | |
a && (a.q && d) && (d(67, c), bd && d(94, bd)) | |
} | |
ad() | |
}, dd = window.google; | |
dd && dd.x ? dd.x({ | |
id: "DOODLE" | |
}, cd) : cd(); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment