\n');
}
//-->
// JavaScript Document
var NS4 = (document.layers) ? 1 : 0;
var IE4 = (document.all) ? 1 : 0;
function animation(id) {
this.element = (NS4) ? document[id] : document.all[id].style;
this.active = 0;
this.timer = null;
this.path = null;
this.num = null;
this.name = id + "Var";
eval(this.name + " = this");
this.animate = animate;
this.step = step;
this.show = show;
this.hide = hide;
this.left = left;
this.top = top;
this.moveTo = moveTo;
this.slideBy = slideBy;
this.slideTo = slideTo;
this.circle = circle;
}
function pos(x, y) {
this.x = Math.round(x);
this.y = Math.round(y);
}
function show() {
this.element.visibility = (NS4) ? "show" : "visible";
}
function hide() {
this.element.visibility = (NS4) ? "hide" : "hidden";
}
function left() {
return parseInt(this.element.left);
}
function top() {
return parseInt(this.element.top);
}
function moveTo(x, y) {
//alert('moveTo');
this.element.left = x;
this.element.top = y;
}
function step() {
this.moveTo(this.path[this.num].x, this.path[this.num].y);
if (this.num >= this.path.length - 1) {
clearInterval(this.timer);
this.active = 0;
if (this.statement)
eval(this.statement);
} else {
this.num++;
}
}
function animate(interval) {
if (this.active) return;
this.num = 0;
this.active = 1;
this.timer = setInterval(this.name + ".step()", interval);
}
function slideBy(dx, dy, steps, interval, statement) {
var fx = this.left();
var fy = this.top();
var tx = fx + dx;
var ty = fy + dy;
this.slideTo(tx, ty, steps, interval, statement);
}
function slideTo(tx, ty, steps, interval, statement) {
var fx = this.left();
var fy = this.top();
var dx = tx - fx;
var dy = ty - fy;
var sx = dx / steps;
var sy = dy / steps;
var ar = new Array();
for (var i = 0; i < steps; i++) {
fx += sx;
fy += sy;
ar[i] = new pos(fx, fy);
}
this.path = ar;
this.statement = (statement) ? statement : null;
this.animate(interval);
}
function circle(radius, angle0, angle1, steps, interval, statement) {
var dangle = angle1 - angle0;
var sangle = dangle / steps;
var x = this.left();
var y = this.top();
var cx = x - radius * Math.cos(angle0 * Math.PI / 180);
var cy = y + radius * Math.sin(angle0 * Math.PI / 180);
var ar = new Array();
for (var i = 0; i < steps; i++) {
angle0 += sangle;
x = cx + radius * Math.cos(angle0 * Math.PI / 180);
y = cy - radius * Math.sin(angle0 * Math.PI / 180);
ar[i] = new pos(x, y);
}
this.path = ar;
this.statement = (statement) ? statement : null;
this.animate(interval);
}
function resetAll() {
//alert('fffo');
anim1 = new animation("pusher");
if (!anim1.element) return;
// if (!anim2.element) return;
//alert(anim1);
anim1.moveTo(0, 10);
//anim2.slideBy(-20, 0, 10, 10, null);
}
function start() {
anim1 = new animation("pusher");
//anim2 = new animation("thing");
//alert(anim1.element)
if (!anim1.element) return;
// if (!anim2.element) return;
//alert(anim1);
anim1.slideBy(-20, 0, 10, 10, null);
//anim2.slideBy(-20, 0, 10, 10, null);
}
20th Century Fox - Stir Of Echoes
Stir Of Echoes
You might also enjoy these titles:
Tom Witzky (Kevin Bacon) is a blue-collar, the most ordinary guy in the world... who is about to be plunged into a shattering encounter with another world. It doesn’t matter that Tom doesn’t believe in the supernatural, because something supernatural has started to believe in Tom. After he is hypnotised at a neighborhood party, Tom changes. He sees things he can’t explain and hears voices he can’t ignore. As the horrific visions intensify, Tom realises they are pieces of a puzzle, echoes of a crime calling to be solved. But when his otherworldly nightmares begin coming true, Tom wants out. He desperately tries to rid himself of his eerie unwanted powers - only to be seized by an irresistible compulsion to dig deeper and deeper into the mystery that is consuming his life. When at last he unearths the truth, it will draw him into the long-buried secret of a ghastly crime, a vengeful spirit... and the lethal price of laying that spirit to rest.
- Kevin Bacon
- TV Spots (1. Wife Revisited 2. Listen Revised 3. Countdown Revised) - MOIST Music Video ? “Breathe” - Behind The Scenes Footage - Audio Commentary - Sci-Fi Legends Trailer
™ and © Twentieth Century Fox Film Corporation. All rights reserved. Property of Fox. Use of this website (including any and all parts and components) constitutes your acceptance of these
terms and conditions and
privacy policy . The materials on this website are not to be sold, traded or given away. Any copying, manipulation, publishing, or other transfer of these materials, except as specifically provided in the terms and conditions of use, is strictly prohibited.