17757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch/* Copyright (c) 2010
27757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch * @author Laurence Wheway
37757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
47757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
57757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch *
67757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch * @version 1.2.0
77757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch */
87757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch(function($) {
97757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch	jQuery.extend({
107757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch		isOnScreen: function(box, container) {
117757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			//ensure numbers come in as intgers (not strings) and remove 'px' is it's there
127757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			for(var i in box){box[i] = parseFloat(box[i])};
137757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			for(var i in container){container[i] = parseFloat(container[i])};
147757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch
157757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			if(!container){
167757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch				container = {
177757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch					left: $(window).scrollLeft(),
187757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch					top: $(window).scrollTop(),
197757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch					width: $(window).width(),
207757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch					height: $(window).height()
217757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch				}
227757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			}
237757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch
247757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			if(	box.left+box.width-container.left > 0 &&
257757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch				box.left < container.width+container.left &&
267757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch				box.top+box.height-container.top > 0 &&
277757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch				box.top < container.height+container.top
287757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			) return true;
297757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			return false;
307757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch		}
317757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch	})
327757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch
337757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch
347757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch	jQuery.fn.isOnScreen = function (container) {
357757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch		for(var i in container){container[i] = parseFloat(container[i])};
367757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch
377757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch		if(!container){
387757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			container = {
397757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch				left: $(window).scrollLeft(),
407757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch				top: $(window).scrollTop(),
417757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch				width: $(window).width(),
427757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch				height: $(window).height()
437757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			}
447757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch		}
457757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch
467757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch		if(	$(this).offset().left+$(this).width()-container.left > 0 &&
477757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			$(this).offset().left < container.width+container.left &&
487757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			$(this).offset().top+$(this).height()-container.top > 0 &&
497757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch			$(this).offset().top < container.height+container.top
507757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch		) return true;
517757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch		return false;
527757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch	}
537757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch})(jQuery);
54