1cef7893435aa41160dd1255c43cb8498279738ccChris Craik/* Copyright (c) 2010
2cef7893435aa41160dd1255c43cb8498279738ccChris Craik * @author Laurence Wheway
3cef7893435aa41160dd1255c43cb8498279738ccChris Craik * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
4cef7893435aa41160dd1255c43cb8498279738ccChris Craik * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
5cef7893435aa41160dd1255c43cb8498279738ccChris Craik *
6cef7893435aa41160dd1255c43cb8498279738ccChris Craik * @version 1.2.0
7cef7893435aa41160dd1255c43cb8498279738ccChris Craik */
8cef7893435aa41160dd1255c43cb8498279738ccChris Craik(function($) {
9cef7893435aa41160dd1255c43cb8498279738ccChris Craik	jQuery.extend({
10cef7893435aa41160dd1255c43cb8498279738ccChris Craik		isOnScreen: function(box, container) {
11cef7893435aa41160dd1255c43cb8498279738ccChris Craik			//ensure numbers come in as intgers (not strings) and remove 'px' is it's there
12cef7893435aa41160dd1255c43cb8498279738ccChris Craik			for(var i in box){box[i] = parseFloat(box[i])};
13cef7893435aa41160dd1255c43cb8498279738ccChris Craik			for(var i in container){container[i] = parseFloat(container[i])};
14cef7893435aa41160dd1255c43cb8498279738ccChris Craik
15cef7893435aa41160dd1255c43cb8498279738ccChris Craik			if(!container){
16cef7893435aa41160dd1255c43cb8498279738ccChris Craik				container = {
17cef7893435aa41160dd1255c43cb8498279738ccChris Craik					left: $(window).scrollLeft(),
18cef7893435aa41160dd1255c43cb8498279738ccChris Craik					top: $(window).scrollTop(),
19cef7893435aa41160dd1255c43cb8498279738ccChris Craik					width: $(window).width(),
20cef7893435aa41160dd1255c43cb8498279738ccChris Craik					height: $(window).height()
21cef7893435aa41160dd1255c43cb8498279738ccChris Craik				}
22cef7893435aa41160dd1255c43cb8498279738ccChris Craik			}
23cef7893435aa41160dd1255c43cb8498279738ccChris Craik
24cef7893435aa41160dd1255c43cb8498279738ccChris Craik			if(	box.left+box.width-container.left > 0 &&
25cef7893435aa41160dd1255c43cb8498279738ccChris Craik				box.left < container.width+container.left &&
26cef7893435aa41160dd1255c43cb8498279738ccChris Craik				box.top+box.height-container.top > 0 &&
27cef7893435aa41160dd1255c43cb8498279738ccChris Craik				box.top < container.height+container.top
28cef7893435aa41160dd1255c43cb8498279738ccChris Craik			) return true;
29cef7893435aa41160dd1255c43cb8498279738ccChris Craik			return false;
30cef7893435aa41160dd1255c43cb8498279738ccChris Craik		}
31cef7893435aa41160dd1255c43cb8498279738ccChris Craik	})
32cef7893435aa41160dd1255c43cb8498279738ccChris Craik
33cef7893435aa41160dd1255c43cb8498279738ccChris Craik
34cef7893435aa41160dd1255c43cb8498279738ccChris Craik	jQuery.fn.isOnScreen = function (container) {
35cef7893435aa41160dd1255c43cb8498279738ccChris Craik		for(var i in container){container[i] = parseFloat(container[i])};
36cef7893435aa41160dd1255c43cb8498279738ccChris Craik
37cef7893435aa41160dd1255c43cb8498279738ccChris Craik		if(!container){
38cef7893435aa41160dd1255c43cb8498279738ccChris Craik			container = {
39cef7893435aa41160dd1255c43cb8498279738ccChris Craik				left: $(window).scrollLeft(),
40cef7893435aa41160dd1255c43cb8498279738ccChris Craik				top: $(window).scrollTop(),
41cef7893435aa41160dd1255c43cb8498279738ccChris Craik				width: $(window).width(),
42cef7893435aa41160dd1255c43cb8498279738ccChris Craik				height: $(window).height()
43cef7893435aa41160dd1255c43cb8498279738ccChris Craik			}
44cef7893435aa41160dd1255c43cb8498279738ccChris Craik		}
45cef7893435aa41160dd1255c43cb8498279738ccChris Craik
46cef7893435aa41160dd1255c43cb8498279738ccChris Craik		if(	$(this).offset().left+$(this).width()-container.left > 0 &&
47cef7893435aa41160dd1255c43cb8498279738ccChris Craik			$(this).offset().left < container.width+container.left &&
48cef7893435aa41160dd1255c43cb8498279738ccChris Craik			$(this).offset().top+$(this).height()-container.top > 0 &&
49cef7893435aa41160dd1255c43cb8498279738ccChris Craik			$(this).offset().top < container.height+container.top
50cef7893435aa41160dd1255c43cb8498279738ccChris Craik		) return true;
51cef7893435aa41160dd1255c43cb8498279738ccChris Craik		return false;
52cef7893435aa41160dd1255c43cb8498279738ccChris Craik	}
53cef7893435aa41160dd1255c43cb8498279738ccChris Craik})(jQuery);
54