
/*
	Logging functions
		- provides access to console
		- if browser doesn't have a JS console, fails silently
		- dir function prints out objects nicely in Firebug
*/
$.log = function() {
	if (typeof(console) !== 'undefined' && console != null && console.log) console.log($.formatLog.apply($.log, arguments));
};

$.formatLog = function() {
	var s = "";
	for (var i = 0; i<arguments.length - 1; i++) {
		s += arguments[i] + ", ";
	}
	s += arguments[arguments.length-1];
	return s;
};

$.log.dir = function(o) {
	if (typeof(console) !== 'undefined' && console != null && console.dir) console.dir(o);
	else $.log(o);
};



(function($) {
	$.fn.trueDimensions = function(options) {
		
		var defaults = {
			appendTo:"body",
			defaultHeight: 200,
			defaultWidth: 200,
			onCreate: function(o) {
				return o;
			}
		};
		
		var settings = $.extend(true, {}, defaults, options);

		var $this = $(this);
		var $clone = $this.clone().css({left:-5000, top:0, display:"block", position:"absolute"}).appendTo(settings.appendTo);
		var $target = settings.onCreate($clone);
		var width = $target.width() > 0 ? $target.width() : settings.defaultWidth;
		var height = $target.height() > 0 ? $target.height() : settings.defaultHeight;
		$clone.remove();
		var dimensions = {width:width, height:height};
		return dimensions;
	};
})(jQuery);

/**
 * True Height plugin
 *
 */
(function($){$.fn.trueHeight=function(options){var defaults={appendTo:"body",defaultHeight:200,onCreate:function(o){return o;}};var settings=$.extend(true,{},defaults,options);var $this=$(this);var $clone=$this.clone().css({left:-5000,top:0,display:"block",position:"absolute"}).appendTo(settings.appendTo);var $target=settings.onCreate($clone);var height=$target.height()>0?$target.height():settings.defaultHeight;$clone.remove();return height;};})(jQuery);

/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m=$.extend({},m);m.expires=-1;}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000));}else{f=m.expires;}e="; expires="+f.toUTCString();}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("");}else{var d=null;if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=jQuery.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break;}}}return d;}};
