
// Geary page 351 
window.requestNextAnimationFrame = 
	(function(){
		var originalWebkitMethod,
		wrapper = undefined,
		callback = undefined,
		geckoVerion = 0,
		userAgent = navigator.userAgent,
		index = 0,
		self = this;
	if(window.webkitRequestAnimationFrame){
		wrapper = function(time){
			if(time === undefined){
				time = +new Date();   		}
			self.callback(time);
	};  // wrapper
	originalWebkitMethod = 
			window.webkitRequestAnimationFrame;
	window.webkitRequestAnimationFrame = 
	function(callback, element){
		self.callback = callback;
		originalWebkitMethod(wrapper, element);
	}
	}	//  window.requestNextAnimationFrame
	//  page 352
	if(window.mozRequestAnimationFrame){
		index = userAgent.indexOf('rv:');
		if(userAgent.indexOf('Gecko') != -1 ){
		geckoVerion = userAgent.substr(index + 3,3) ; 
			if(geckoVerion === '2.0' ){
	window.mozRequestAnimationFrame = undefined;				
			}
		}
	}
return window.requestAnimationFrame  ||
	window.webkitRequestAnimationFrame ||
	window.mozRequestAnimationFrame    ||
	window.oRequestAnimationFrame      ||  // ?
	window.msRequestAnimationFrame      ||  //  ?
	function(callback, element){
			var start, finish;
			window.setTimeout( function() {
				start = +new Date();
				callback(start);
				finish = +new Date();
	self.timeout = 1000 / 50 - ( finish - start);
					}, self.timeout);
			}; // callback
		}  
	)
	();
	//  E.O.P. 