Tuner Manager  1.7.0

BLOBkit Javascript Library > tuner > tvblob.js (source view)
Search:
 
Filters
/**
 * Base module for BLOBkit. Contains the System functions
 * @module tvblob
 * @title BLOBkit Global Object
 * @author Francesco Facconi  francesco.facconi@tvblob.com
 * @author Edoardo Esposito   edoardo.esposito@tvblob.com
 */

var blobkitStartTime = new Date();

/**
 * Create a new instance of TVB.
 * @class TVB
 * @namespace
 * @static
 */
var TVB = {};

/**
 * Dumps the content of an object or an array.
 * @method TVB.dump
 * @param {Object} obj The array, the object or any kind of data
 * @param {Integer} [level] Optional: the starting level
 * @return {String} Dumped text, print in a console or on a log file
 */
TVB.dump = function(obj, level) {
	try {
		//TVB.log("System: dump()");
		var dumped_text = "";
		if (!level) {
			level = 0;
		}

		//The padding given at the beginning of the line.
		var level_padding = "";
		for (var j = 0; j < level; j++) {
			level_padding += "    ";
		}

		if (typeof(obj) == 'object') { // Array/Hashes/Objects
			for (var item in obj) {
				var value = obj[item];

				if (typeof(value) == 'object') { // If it is an array,
					dumped_text += level_padding + item + " ...\n";
					dumped_text += TVB.dump(value, level + 1);
				} else {
					dumped_text += level_padding + item + ": " + value + "\n";
				}
			}
		}
		else { // Stings/Chars/Numbers etc.
			dumped_text = "===>" + obj + "<===(" + typeof(obj) + ")";
		}
		return dumped_text;
	} catch (e) {
		TVB.error("System: dump: " + e.message);
		throw e;
	}
};

/**
 * User Agent Based Browser Detection<br>
 * This function uses the userAgent string to get the browsers information.<br>
 * The returned object will look like:<br>
 * <pre>
 *   obj {
 *       ua: 'Full UserAgent String'
 *       opera: boolean
 *       safari: boolean
 *       firefox: boolean
 *       mozilla: boolean
 *       msie: boolean
 *       mac: boolean
 *       win: boolean
 *       unix: boolean
 *       version: string
 *       flash: version string
 *   }
 * </pre><br>
 * @method TVB.getBrowserAgent
 * @return {Object} Browser Information Object
 * @type Object
 */
TVB.getBrowserAgent = function()
{
	var ua = navigator.userAgent.toLowerCase();
	var opera = ((ua.indexOf('opera') != -1) ? true : false);
	var espial = ((ua.indexOf('scattermedia') != -1) ? true : false);
	var blobkit = ((ua.indexOf('blobkit') != -1) ? true : false);
//	var espial = ((ua.indexOf('escape') != -1) ? true : false);
	var safari = ((ua.indexOf('safari') != -1) ? true : false);
	var firefox = ((ua.indexOf('firefox') != -1) ? true : false);
	var msie = ((ua.indexOf('msie') != -1) ? true : false);
	var mac = ((ua.indexOf('mac') != -1) ? true : false);
	var unix = ((ua.indexOf('x11') != -1) ? true : false);
	var win = ((mac || unix) ? false : true);
	var version = false;
	var mozilla = false;
	var _tmp = null;

	if (!firefox && !safari && (ua.indexOf('gecko') != -1)) {
		mozilla = true;
		_tmp = ua.split('/');
		version = _tmp[_tmp.length - 1].split(' ')[0];
	}

	if (firefox) {
		_tmp = ua.split('/');
		version = _tmp[_tmp.length - 1].split(' ')[0];
	}

	if (msie) {
		version = ua.substring((ua.indexOf('msie ') + 5)).split(';')[0];
	}

	if (safari) {
		/*
		* Safari doesn't report a string, have to use getBrowserEngine to get it
		*/
		version = this.getBrowserEngine().version;
	}

	if (opera) {
		version = ua.substring((ua.indexOf('opera/') + 6)).split(' ')[0];
	}

	/*
	* Return the Browser Object
	* @type Object
	*/
	var browsers = {
	    ua: navigator.userAgent,
	    opera: opera,
	    espial: espial,
	    blobkit: blobkit,
	    safari: safari,
	    firefox: firefox,
	    mozilla: mozilla,
	    msie: msie,
	    mac: mac,
	    win: win,
	    unix: unix,
	    version: version
	};
	return browsers;
};

/**
 * Logs an object or a string to the console; works on
 * Microsoft Internet Explorer, Mozilla Firefox,
 * Apple Safari and TVBLOB BLOBBOX.
 * @method TVB.log
 * @namespace TVB
 * @param {Object} message An object or a string to be printed on the log console
 * @return {Void}
 */
TVB.log = function(message) {
	try {
		if (message === null) {
			message = 'null';
		}

		var output = null;
		if (typeof message == 'object' && message.name !== undefined && message.message !== undefined && message.fileName !== undefined && message.lineNumber !== undefined) {
			output = "Error name: " + message.name + "\nError message: " + message.message + "\nFile name: " + message.fileName + "\nLine number: " + message.lineNumber;
		} else if (typeof message == 'string') {
			output = message;
		} else {
			output = TVB.dump(message, 0);
		}

		if (typeof tvblob != 'undefined') {
			tvblob.logInfo(output);
		}
		else
			if (window.console) {
				window.console.log(output);
			} else
				if (typeof console != 'undefined') {
					console.log(output);
				} else {
					alert(output);
				}
		return;
	} catch (e) {
		throw e;
	}
};

/**
 * Similar to TVB.log, is used internally just to display errors
 * @method TVB.error
 * @namespace TVB
 * @param {Object} message An object or a string to be printed on the log console
 * @return {Void}
 */
TVB.error = function(message) {
	try {
		if (message === null) {
			message = 'null';
		}

		var output = null;
		if (typeof message == 'object' && message.name !== undefined && message.message !== undefined && message.fileName !== undefined && message.lineNumber !== undefined) {
			output = "Error name: " + message.name + "\nError message: " + message.message + "\nFile name: " + message.fileName + "\nLine number: " + message.lineNumber;
		} else if (typeof message == 'string') {
			output = message;
		} else {
			output = TVB.dump(message, 0);
		}

		if (typeof tvblob != 'undefined') {
			tvblob.logError(output);
		}
		else
			if (window.console) {
				window.console.error(message);
			} else
				if (typeof console != 'undefined') {
					console.error(message);
				} else {
					alert(output);
				}
		return;
	} catch (e) {
		throw e;
	}
};

/**
 * Similar to TVB.log, is used internally just to display warnings
 * @method TVB.warning
 * @namespace TVB
 * @param {Object} message An object or a string to be printed on the log console
 * @return {Void}
 */
TVB.warning = function(message) {
	try {
		if (message === null) {
			message = 'null';
		}

		var output = null;
		if (typeof message == 'object' && message.name !== undefined && message.message !== undefined && message.fileName !== undefined && message.lineNumber !== undefined) {
			output = "Error name: " + message.name + "\nError message: " + message.message + "\nFile name: " + message.fileName + "\nLine number: " + message.lineNumber;
		} else if (typeof message == 'string') {
			output = message;
		} else {
			output = TVB.dump(message, 0);
		}

		if (typeof tvblob != 'undefined') {
			tvblob.logWarning(output);
		}
		else
			if (window.console) {
				window.console.warn(message);
			} else
				if (typeof console != 'undefined') {
					console.warn(message);
				} else {
					alert(output);
				}
		return;
	} catch (e) {
		throw e;
	}
};

/**
 * Logs exceptions on BLOBbox's webdev console, in a readable and debuggable way.
 * @param {Object} exceptionObject The exception object catched
 * @param {String} functionName Name of the function (for tracking purpose)
 */
TVB.exception = function(exceptionObject, functionName) {
	try {
		if (typeof tvblob != 'undefined') {
			tvblob.logError('*****************');
			tvblob.logError('Message: ' + exceptionObject.message);
			tvblob.logError('Name: ' + exceptionObject.name);
			tvblob.logError('exceptionObject: ' + exceptionObject.exceptionObject);
			tvblob.logError('File name: ' + exceptionObject.fileName + " (line " + exceptionObject.lineNumber + ")");
			tvblob.logError('Function name: ' + functionName);
			tvblob.logError('*****************');
		} else {
			TVB.error(functionName);
			TVB.error(exceptionObject);
		}
		return;
	} catch (e) {
		throw e;
	}
};

/**
 * BLOBkit's configuration class
 * @class config
 * @namespace TVB
 * @classDescription	BLOBkit's configuration class
 * @static
 * @return	{Void}
 */
TVB.config = {};

Copyright © 2011 TVBLOB S.r.l. All rights reserved. The BLOBkit library is a resource ofBLOBforge.