AJS.fx = { _shades: { 0: "ffffff", 1: "ffffee", 2: "ffffdd", 3: "ffffcc", 4: "ffffbb", 5: "ffffaa", 6: "ffff99"
	},
	highlight: function (_1, _2) {
		var _3 = new AJS.fx.Base();
		_3.elm = AJS.$(_1);
		_3.options.duration = 600;
		_3.setOptions(_2);
		AJS.update(_3, { increase: function () {
				if (this .now == 7) {
					_1.style.backgroundColor = "#fff";
				} else {
					_1.style.backgroundColor = "#" + AJS.fx._shades[Math.floor(this .now) ];
				}
			}
		});
		return _3.custom(6, 0);
	},
	fadeIn: function (_4, _5) {
		_5 = _5 || {
		};
		if (! _5.from) {
			_5.from = 0;
			AJS.setOpacity(_4, 0);
		}
		if (! _5.to) {
			_5.to = 1;
		}
		var s = new AJS.fx.Style(_4, "opacity", _5);
		return s.custom(_5.from, _5.to);
	},
	fadeOut: function (_7, _8) {
		_8 = _8 || {
		};
		if (! _8.from) {
			_8.from = 1;
		}
		if (! _8.to) {
			_8.to = 0;
		}
		_8.duration = 300;
		var s = new AJS.fx.Style(_7, "opacity", _8);
		return s.custom(_8.from, _8.to);
	},
	setWidth: function (_a, _b) {
		var s = new AJS.fx.Style(_a, "width", _b);
		return s.custom(_b.from, _b.to);
	},
	setHeight: function (_d, _e) {
		var s = new AJS.fx.Style(_d, "height", _e);
		return s.custom(_e.from, _e.to);
	}
};
AJS.fx.Base = new AJS.Class({ init: function (_10) {
		this .options = { onStart: function () {
			},
			onComplete: function () {
			},
			transition:AJS.fx.Transitions.sineInOut, duration:500, wait: true, fps:50
		};
		AJS.update(this .options, _10);
		AJS.bindMethods(this);
	},
	setOptions: function (_11) {
		AJS.update(this .options, _11);
	},
	step: function () {
		var _12 = new Date() .getTime();
		if (_12 < this .time + this .options.duration) {
			this .cTime = _12 - this .time;
			this .setNow();
		} else {
			setTimeout(AJS.$b(this .options.onComplete, this, [ this .elm]), 10);
			this .clearTimer();
			this .now = this .to;
		}
		this .increase();
	},
	setNow: function () {
		this .now = this .compute(this .from, this .to);
	},
	compute: function (_13, to) {
		var _15 = to - _13;
		return this .options.transition(this .cTime, _13, _15, this .options.duration);
	},
	clearTimer: function () {
		clearInterval(this .timer);
		this .timer = null;
		return this;
	},
	_start: function (_16, to) {
		if (! this .options.wait) {
			this .clearTimer();
		}
		if (this .timer) {
			return;
		}
		setTimeout(AJS.$p(this .options.onStart, this .elm), 10);
		this .from = _16;
		this .to = to;
		this .time = new Date() .getTime();
		this .timer = setInterval(this .step, Math.round(1000/ this .options.fps));
		return this;
	},
	custom: function (_18, to) {
		return this ._start(_18, to);
	},
	set: function (to) {
		this .now = to;
		this .increase();
		return this;
	},
	setStyle: function (elm, _1c, val) {
		if (this .property == "opacity") {
			AJS.setOpacity(elm, val);
		} else {
			AJS.setStyle(elm, _1c, val);
		}
	}
});
AJS.fx.Style = AJS.fx.Base.extend({ init: function (elm, _1f, _20) {
		this .parent();
		this .elm = elm;
		this .setOptions(_20);
		this .property = _1f;
	},
	increase: function () {
		this .setStyle(this .elm, this .property, this .now);
	}
});
AJS.fx.Styles = AJS.fx.Base.extend({ init: function (elm, _22) {
		this .parent();
		this .elm = AJS.$(elm);
		this .setOptions(_22);
		this .now = {
		};
	},
	setNow: function () {
		for (p in this .from) {
			this .now[p] = this .compute(this .from[p], this .to[p]);
		}
	},
	custom: function (obj) {
		if (this .timer && this.options.wait) {
			return;
		}
		var _24 = {
		};
		var to = {
		};
		for (p in obj) {
			_24[p] = obj[p][0];
			to[p] = obj[p][1];
		}
		return this ._start(_24, to);
	},
	increase: function () {
		for (var p in this .now) {
			this .setStyle(this .elm, p, this .now[p]);
		}
	}
});
AJS.fx.Transitions = { linear: function (t, b, c, d) {
		return c * t/d + b;
	},
	sineInOut: function (t, b, c, d) {
		return - c/2 *(Math.cos(Math.PI * t/d) - 1) + b;
	}
};
script_loaded = true;


script_loaded = true;