
/*!
 *
 * ja.base v1.0.0
 * created by Jonathan Armstrong (http://jonathanarmstrong.com)
 *
 * requires jQuery v1.4.2
 */


// init namespaces
JA = {};
JA.utils = JA.utils || {};


// add root properties to jQuery object
$.window = $(window);
$.document = $(document);


/* native type extensions */

// object size
Object.size = function (obj) {

	var size = 0;

	for (var key in obj) {
		if (obj.hasOwnProperty(key)) {
			size++;
		}
	}

	return size > 0 ? size + 1 : 0;
};

// object is array
Object.isArray = function(obj) {
	return obj.constructor === Array;
};


/* utility methods */

JA.utils.isAppleMobileDevice = navigator.userAgent.match(/iPhone|iPod/) != null;

JA.utils.sortNumericAscending = function(a, b) {
	return a-b;
};

JA.utils.sortNumericDescending = function(a, b) {
	return b-a;
};

JA.utils.isNullorEmpty = function(input) {

	var isNullorEmpty = input === undefined || input === null;

	if (!isNullorEmpty) {
		isNullorEmpty = input.constructor == Object ? Object.size(input) < 1 : input.length < 1;
	}

	return isNullorEmpty;
};


