/* idTabs ~ Sean Catchpole - Version 2.2 - MIT/GPL */
(function() {
	var dep = { "jQuery": "http://code.jquery.com/jquery-latest.min.js" };
	var init = function() {
		(function($) {
			$.fn.idTabs = function() {
				var s = {};
				for (var i = 0; i < arguments.length; ++i) {
					var a = arguments[i];
					switch (a.constructor) {
						case Object:
							$.extend(s, a);
							break;
						case Boolean:
							s.change = a;
							break;
						case Number:
							s.start = a;
							break;
						case Function:
							s.click = a;
							break;
						case String:
							if (a.charAt(0) == '.')
								s.selected = a;
							else
								if (a.charAt(0) == '!')
								s.event = a;
							else
								s.start = a;
							break;
					}
				}
				if (typeof s['return'] == "function")
					s.change = s['return'];
				return this.each(function() { $.idTabs(this, s); });
			}
			$.idTabs = function(tabs, options) {
				var meta = ($.metadata) ? $(tabs).metadata() : {};
				var s = $.extend({}, $.idTabs.settings, meta, options); if (s.selected.charAt(0) == '.') s.selected = s.selected.substr(1); if (s.event.charAt(0) == '!') s.event = s.event.substr(1); if (s.start == null) s.start = -1; var showId = function() {
					if ($(this).is('.' + s.selected))
						return s.change;
				var id = "#" + this.href.split('#')[1]; var aList = [];
				var idList = []; $("a", tabs).each(function()
					{
						if (this.href.match(/#/))
						{
							aList.push(this);
							idList.push("#" + this.href.split('#')[1]);
						} 
					}); 
					if (s.click && !s.click.apply(this, [id, idList, tabs, s])) return s.change;
					for (i in aList)
						$(aList[i]).removeClass(s.selected);
					for (i in idList)
						$(idList[i]).hide();
					$(this).addClass(s.selected);
					//$(id).show();
					$(id).fadeIn(2000);
					return s.change;
				}

				var list = $("a[href*='#']", tabs).unbind(s.event, showId).bind(s.event, showId); list.each(function() { $("#" + this.href.split('#')[1]).hide(); }); var test = false; if ((test = list.filter('.' + s.selected)).length); else if (typeof s.start == "number" && (test = list.eq(s.start)).length); else if (typeof s.start == "string" && (test = list.filter("[href*='#" + s.start + "']")).length); if (test) { test.removeClass(s.selected); test.trigger(s.event); }
				return s;
			}

			$.idTabs.settings = { start: 0, change: false, click: null, selected: ".selected", event: "!click" };
			$.idTabs.version = "2.2";
			$(function() { $(".idTabs").idTabs(); });

		})(jQuery);
	}
	var check = function(o, s) {
		s = s.split('.');
		while (o && s.length) o = o[s.shift()]; return o;
	}
	var head = document.getElementsByTagName("head")[0];
	var add = function(url) { var s = document.createElement("script"); s.type = "text/javascript"; s.src = url; head.appendChild(s); }
	var s = document.getElementsByTagName('script');
	var src = s[s.length - 1].src;
	var ok = true;
	for (d in dep) {
		if (check(this, d)) continue; ok = false; add(dep[d]);
	}
	if (ok) return init();
	add(src);
})();

