src/js/libs/spiritual-gui.js
function(o) {
		var type = ({}).toString.call(o).match(this._typeexp)[1].toLowerCase();
		if (type === "domwindow" && String(typeof o) === "undefined") {
			type = "undefined"; // some kind of degenerate bug in Safari on iPad
		}
		return type;
	}
function(o) {
		var type = ({}).toString.call(o).match(this._typeexp)[1].toLowerCase();
		if (type === "domwindow" && String(typeof o) === "undefined") {
			type = "undefined"; // some kind of degenerate bug in Safari on iPad
		}
		return type;
	}
function ( o ) { var type = ( { } ) . toString . call ( o ) . match ( this . _typeexp ) [ 1 ] . toLowerCase ( ) ; if ( type === "domwindow" && String ( typeof o ) === "undefined" ) { type = "undefined" ; // some kind of degenerate bug in Safari on iPad } return type ; }
Get type of argument. Note that response may differ between user agents.
@see  http://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator
@param {object} o
@returns {String}
Get type of argument . Note that response may differ between user agents .