jQuery.noConflict();

//Function.prototype.callAs=function() {
//	var f = this;
//	var args = Array.prototype.slice.call(arguments);
//	var o = args.shift();
//	return function() {
//		return f.apply(o, args);
//	};
//};
//Function.prototype.callWith=function() {
//	var f = this;
////	var o = arguments.callee;
//	var args = Array.prototype.slice.call(arguments);
//	return function() {
//		return f.apply(this, args);
//	};
//};

(function($){
	
	var elemToggleCollapse = function(e, src) {
		var t = $(this);
		if (t.is('table')) {
			var trs = t.find('tr td div');
			trs.slideToggle();
			t.toggleClass('collapsed');
		}
	};
	
	var toggleCollapse = function() {
		var t = $($(this).attr('class').match(/toggleCollapse\{([^\}]+)\}/)[1]);
		if ($(this).children('img').attr('src').match(/arrow-down-green\.png$/)) {
			$(this).children('img').attr('src', 'images/arrow-up-green.png');
		} else {
			$(this).children('img').attr('src', 'images/arrow-down-green.png');
		}
		t.trigger("toggleCollapse", [this]);
	}; 
	
//	// extend jquery selectors
//	$.expr[":"].search = function(el, i, m) {
//	    var search = m[3];
//	    if (!search) return false;
//	    return eval("/" + search.replace(/\//,'\\/') + "/im").test($(el).text());
//	};  
	
	$('.collapsible')
		.bind("toggleCollapse", elemToggleCollapse)
		.find('tr td')
		.not('tr.nocollapse td')
		.each(function() {  
		     $(this)
		     	.wrapInner("<div />")
		     	.children("div")
		     	.css('display', 'none');
		})
		// [lte IE 7] shouldn't use display:table-cell, but display:block
		.filter(function() {
			return !$.browser.msie || parseInt($.browser.version) > 7;
		})
		.css('display', 'table-cell')
		.end()
		.filter(function() {
			return $.browser.msie && parseInt($.browser.version) <= 7;
		})
		.css('display', 'block')
		.end()
		;
	
	
	$('.toggleCollapse')
	.css('cursor', 'pointer')
	.append($('<img src="images/arrow-down-green.png" />'))
	.bind('click.collapse', toggleCollapse)
	;

	
//	$('#filterEvent')
//	.bind('click', function () {
//		$('.collapsible:search(' + $('#filterText').val() + ")")
//		.trigger('toggleCollapse');
//		$('.collapsible')
//		.not('.collapsible:search(' + $('#filterText').val() + ")")
//		.closest('.rel')
//		.slideUp(1000)
//	})
//	$('#unFilterEvent')
//	.bind('click', function () {
//		$('.collapsible:search(' + $('#filterText').val() + ")")
//		.trigger('toggleCollapse');
//		$('.collapsible')
//		.not('.collapsible:search(' + $('#filterText').val() + ")")
//		.closest('.rel')
//		.slideDown(1000)
//	})




	
})(jQuery);
