jQuery(function($)
{
	var types = ['DOMMouseScroll', 'mousewheel'], handler = function(event)
	{
		var args = [].slice.call(arguments, 1), delta = 0, returnValue = true;
		
		event = $.event.fix(event || window.event);
		event.type = 'mousewheel';
		delta = event.wheelDelta ? (event.wheelDelta / 120) : (event.detail ? (event.detail / -3) : 0);

		return $.event.handle.apply(this, [event, delta].concat(args));
	};

	$.event.special.mousewheel = {
		setup: function()
		{
			if(this.addEventListener)
			{
				for(var i = types.length; i; --i)
				{
					this.addEventListener(types[i], handler, false);
				}
			}
			else
			{
				this.onmousewheel = handler;
			}
		},
		teardown: function()
		{
			if(this.removeEventListener)
			{
				for(var i = types.length; i; --i)
				{
					this.removeEventListener(types[i], handler, false);
				}
			}
			else
			{
				this.onmousewheel = null;
			}
		}
	};
	
	/* PROTODIALOG */
	window.MFDialog = {
		say: function(content, options)
		{	
			return MFDialog.build(content, options);
		},
		ask: function(content, arg1, arg2, arg3)
		{
			var callbacky = callbackn = function(){}, options = {};
			if(typeof(arg1) == 'function')
			{
				callbacky = arg1;			
			}
			else if(typeof(arg1) == 'object')
			{
				options = arg1;
			}
			
			if(typeof(arg1) != 'undefined')
			{
				if(typeof(arg2) == 'function')
				{
					callbackn = arg2;
				}
				else if(typeof(arg2) == 'object')
				{
					options = arg2;
				}
				
				if(typeof(arg3) == 'object')
				{
					options = arg3;
				}
			}
	
			var sender = function(event)
			{
				$(event.target).text() == mf_msg_object['answer_yes'] ? callbacky() : callbackn();
				$(this).dialog('close');
			}, defaults = {buttons: {}, modal: true};
			defaults.buttons[mf_msg_object['answer_yes']] = defaults.buttons[mf_msg_object['answer_no']] = (function(sender) { return sender; }(sender));
			
			return MFDialog.build(content, $.extend(options, defaults));
		},
		alert: function(content, options)
		{
			return MFDialog.build(content, $.extend(options, {modal: true, resizable: false, buttons: {"OK": function(){ $(this).dialog('close'); }}}));
		},
		url: function(url, options, callback)
		{
			if(typeof(options) != 'object') options = {};
			
			$.get(url, function(content)
			{
				MFDialog.build(content, options);
				if(typeof(callback) == 'function') callback();
			});
		},
		build: function(content, options)
		{
			var findOld = false;
			
			content = content.replace(/<!--script-->/g, '<script type="text/javascript">').replace(/<!--\/script-->/g, '</script>');
			
			if(!options.forceNew && ($('.ui-dialog-title').length || options.id))
			{
				if(options.id && $("#mfdialog_"+options.id).length)
				{
					findOld = $("#mfdialog_"+options.id);
				}
				
				$('.ui-dialog-title').each(function()
				{
					if($(this).text() == options.title)
					{					
						findOld = $(this).parent().parent();
					}
				});
				
				if(findOld)
				{
					findOld.find('.ui-dialog-content:eq(0)').html(content);
				}
			}
	
			if(findOld === false)
			{
				var div = $('<div id="mfdialog_'+(options.id?options.id:Math.floor(Math.random()*1000))+'" />').html(content);
				
				$(document.body).append(div);
				return div.dialog($.extend(options, {minHeight: options.minHeight > 0 ? options.minHeight : 50, minWidth: options.minWidth > 0 ? options.minWidth : 50})).bind('dialogclose', (typeof(options.close) === 'function' ? function(){} : this.destroy))
			}
			else return findOld;
		},
		destroy: function()
		{
			return $(this).dialog('destroy').data('_mf.dialog', false).remove();
		}
	};
	
	$(function()
	{
		$("body").bind('ajaxStart', function()
		{
			$(this).css('cursor', 'wait');
		})
		.bind('ajaxComplete', function()
		{
			$(this).css('cursor', 'default');
		})
		.bind('ajaxError', function(event, XMLHttpRequest, ajaxOptions, thrownError)
		{
			if(thrownError) setTimeout(function()
			{
				MFDialog.alert(mf_msg_object['connection_error']);
			}, 1000);
	
			$(this).css('cursor', 'default'); 
		});
	});
	
	$.fn.extend({
		mousewheel: function(fn)
		{
			return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');
		},
		storeEvents: function(b)
		{
			return this.each(function()
			{
				var copy = function(j)
				{
					var o = {};

					for(i in j)
					{
						o[i] = typeof(j[i]) == 'object' ? arguments.callee(j[i]) : j[i];
					}

					return o;
				};
				
				$.data(this, 'storedEvents', copy($(this).data('events')));
				
				if(b)
				{
					$(this).unbind();
				}
			});
		},
		restoreEvents: function(b)
		{
			return this.each(function()
			{
				var events = $.data(this, 'storedEvents');

				if(events)
				{
					if(!b)
					{
						$(this).unbind();
					}

					for(var type in events)
					{
						for(var handler in events[type])
						{
							$.event.add(this, type, events[type][handler], events[type][handler].data);
						}
					}
				}
			});
		},
		copyAttr: function(e, p, v)
		{
			return this.each(function()
			{
				var a = {}, i, n, m, attr;
				
				if(p === true)
				{
					for(i = 0, v = $.makeArray(v), attr = this.attributes; i < attr.length; i++)
					{
						if($.inArray(n = attr[i].nodeName, v) == -1 && (m = $(this).attr(n)))
						{
							a[n] = m;
						}
					}
				}
				else
				{				
					for(i = 0, p = $.makeArray(p); i < p.length; i++)
					{
						if(typeof $(this).attr(p[i]) == 'string')
						{
							a[p[i]] = $(this).attr(p[i]);
						}
					}
				}
				
				$(e).attr(a);
			});			
		},
		blurfocus: function(arg1, arg2)
		{
			var options = $.extend({
				className: 'placeholded',
				handle_send: true,
				handle_password: true,
				use_trim: true
			}, typeof arg2 == 'object' ? arg2 : typeof arg1 == 'object' ? arg1 : {}),			
			pass = function(input, div)
			{
				if(div === true && !input.data('placeholder_div'))
				{
					var div = $('<div style="text-align: left; ' + input.attr('style') + '" class="' + options.className + ' ' + input.attr('class') + '">' + input.attr('placeholder') + '</span>').css({position: 'absolute', left: 0, top: input.offset().top - input.parent().offset().top, background: 'none'}).insertAfter(input);
					input.data('placeholder_div', div.click(function(){ input.focus(); }));
				}
				else if(div === false && input.data('placeholder_div'))
				{
					input.data('placeholder_div').remove();
					input.data('placeholder_div', false);
				}
			},				
			blur = function()
			{
				var input = $(this);
				
				if(input.val().length == 0)
				{
					if(input.data('placeholded_type') == 'password')
					{
						pass(input, true);
					}
					else
					{
						input.addClass(options.className).val(input.attr('placeholder'));
					}
				}
			},
			focus = function()
			{
				var input = $(this);
				
				if(input.val() == input.attr('placeholder') && input.hasClass(options.className))
				{
					input.val('').removeClass(options.className);
				}
				else if(input.data('placeholded_type') == 'password')
				{
					pass(input, false);
				}
			};
		
			return this.each(function()
			{
				var input = $(this);
				
				if(input.is(':password, :text, textarea'))
				{
					if(typeof(arg1) == 'string')
					{
						input.attr('placeholder', arg1);
					}
					else
					{
						var text = '' + input.attr('placeholder');
					}
					
					if($.browser.safari)
					{					
						return true;
					}
					
					if(input.is(':password') && options.handle_password)
					{
						input.data('placeholded_type', 'password').wrap('<span style="position: relative;"></span>');
					}
				
					input.val(input.val() == text ? '' : input.val()).blur(blur).focus(focus).blur();
					
					if(options.handle_send && input[0].form)
					{
						var form = $(input[0].form);

						if(form.data('placeholder_form') != 'handled')
						{
							events = form.data('placeholder_form', 'handled').storeEvents().data('storedEvents');
							eval('var anonfunc = function(){ ' + (form.attr('onsubmit') || '') + ' };');
							events.submit = $.extend(true, {'spec_sub': function(){ form.find('.' + options.className).focus(); }},  events.submit, {'anonfunc': anonfunc, 'spec_aft': function(e){ if(e.isDefaultPrevented()) form.find(':input').blur(); }});
							form.removeAttr('onsubmit').data('storedEvents', events).restoreEvents();
						}
					}
				}
			});
		},
		reset: function()
		{
			return this.each(function()
			{
				($(this).is('form') || $(this).is('input')) && typeof(this.reset) == 'function' && this.reset();
			});
		},
		iframesend: function()
		{
			return this.each(function()
			{
				var form = this, iframe_id = 'mf_iframe_send_' + Math.floor(Math.random()*10000), iframe_jid = '#' + iframe_id;
	
				$(form).submit(function()
				{
					$("input:submit", form).attr('disabled', true);
					$(iframe_jid).bind('load', function(e)
					{						
						var io = $(this).unbind('load')[0];
						MFDialog.alert((io.contentWindow ? io.contentWindow.document : (io.contentDocument ? io.contentDocument : io.document)).body.innerHTML);
						$("input:submit", form).removeAttr('disabled');	
					});
				}).attr({encoding: 'multipart/form-data', enctype: 'multipart/form-data', target: iframe_id}).append($("<iframe/>").attr({id: iframe_id, name: iframe_id}).css('display', 'none')).find("input:submit").removeAttr('disabled');
			});
		}
	});
});

function ld(Q, arg1, arg2, arg3, arg4, arg5)
{
	var callback = function(){}, a, b, c, d;
	if(typeof arg1 != 'function')
	{
		a = arg1;

		if(typeof arg2 != 'function')
		{
			b = arg2;

			if(typeof arg3 != 'function')
			{
				c = arg3;
				
				if(typeof arg4 != 'function')
				{
					d = arg4;
					
					if(typeof arg5 == 'function') callback = arg5;
				}
				else
				{
					callback = arg4;
				}
			}
			else
			{
				callback = arg3;
			}
		}
		else
		{
			callback = arg2;
		}
	}
	else
	{
		callback = arg1;
	}

	jQuery.getScript(_mf.href + 'base/js/timeline.js?random=mf' + (new Date()).getTime() + '&question=' + Q + '&a=' + (a!==undefined?a:'') + '&b=' + (b!==undefined?b:'') + '&c=' + (c!==undefined?c:'') + '&d=' + (d!==undefined?d:''), callback);
};
function bx(fn, a, b)
{
	MFDialog.ask(mf_msg_object[fn], function()
	{
		ld(fn, a, b);
	});
};
function o(type, user, query, options)
{
	if(!type || !user) return false;
	if(!query) query = '';
	if(typeof(options) != 'object') options = {};
	if(!options.width) options.width = 525;
	if(!options.minWidth) options.minWidth = options.width;
	
	jQuery.get(_mf.href + 'user/' + user + '/' + type + '/' + query + '?rnd=' + Math.random(), function(data)
	{
		MFDialog.say(data, $.extend(options, {title: mf_msg_object[type], id: type}));
	});
};
function send(form, alert, href, callback)
{
	($form = jQuery(form)).find(':submit').attr('disabled', true);
	jQuery.ajax({
		url: ($form.attr('action').search(_mf.href) != 0 ?  _mf.href.substr(0, -1) : '') + $form.attr('action'),
		type: $form.attr('method') || 'GET',
		data: $form.serialize(),
 		error: function (xhr) {
			MFDialog.alert(xhr.responseText);
		},
		success: function(data) {
			if(alert || typeof(alert) == 'undefined') MFDialog.alert(data);
			if(href) location.href = _mf.href+href;
			if(typeof(callback) == 'function') callback();
		},
		complete: function() {
			$form.find(':submit').removeAttr('disabled');
		}
	});

	return false;
};

/* autocomplete */
(function($){$.widget("ui.autocomplete",{_init:function(){$.extend(this.options,{delay:this.options.delay!=undefined?this.options.delay:(this.options.url?this.options.ajaxDelay:this.options.localDelay),max:this.options.max!=undefined?this.options.max:(this.options.scroll?this.options.scrollMax:this.options.noScrollMax),highlight:this.options.highlight||function(a){return a},formatMatch:this.options.formatMatch||this.options.formatItem});var j=this.element[0],options=this.options,$input=$(j).attr("autocomplete","off").addClass(options.inputClass),KEY=$.ui.keyCode,previousValue="",cache=$.ui.autocomplete.cache(options),hasFocus=0,config={mouseDownOnSelect:false},timeout,blockSubmit,lastKeyPressCode,select=$.ui.autocomplete.select(options,j,selectCurrent,config);if(options.result){$input.bind('result.autocomplete',options.result)}$.browser.opera&&$(j.form).bind("submit.autocomplete",function(){if(blockSubmit){blockSubmit=false;return false}});$input.bind(($.browser.opera?"keypress":"keydown")+".autocomplete",function(a){lastKeyPressCode=a.keyCode;switch(a.keyCode){case KEY.UP:a.preventDefault();if(select.visible()){select.prev()}else{onChange(0,true)}break;case KEY.DOWN:a.preventDefault();if(select.visible()){select.next()}else{onChange(0,true)}break;case KEY.PAGE_UP:a.preventDefault();if(select.visible()){select.pageUp()}else{onChange(0,true)}break;case KEY.PAGE_DOWN:a.preventDefault();if(select.visible()){select.pageDown()}else{onChange(0,true)}break;case options.multiple&&$.trim(options.multipleSeparator)==","&&KEY.COMMA:case KEY.TAB:case KEY.ENTER:if(selectCurrent()){a.preventDefault();blockSubmit=true;return false}break;case KEY.ESCAPE:select.hide();break;default:clearTimeout(timeout);timeout=setTimeout(onChange,options.delay);break}}).bind('focus.autocomplete',function(){hasFocus++}).bind('blur.autocomplete',function(){hasFocus=0;if(!config.mouseDownOnSelect){hideResults()}}).bind('click.autocomplete',function(){if(hasFocus++>1&&!select.visible()){onChange(0,true)}}).bind("search.autocomplete",function(){var c=(arguments.length>1)?arguments[1]:null;function findValueCallback(q,a){var b;if(a&&a.length){for(var i=0;i<a.length;i++){if(a[i].result.toLowerCase()==q.toLowerCase()){b=a[i];break}}};if(typeof c=="function")c(b);else $input.trigger("result.autocomplete",b&&[b.data,b.value])};$.each(trimWords($input.val()),function(i,a){request(a,findValueCallback,findValueCallback)})}).bind("flushCache.autocomplete",function(){cache.flush()}).bind("setOptions.autocomplete",function(){$.extend(options,arguments[1]);if("data"in arguments[1])cache.populate()}).bind("unautocomplete",function(){select.unbind();$(j).unbind(".autocomplete");$(j.form).unbind(".autocomplete")});function selectCurrent(){var a=select.selected();if(!a)return false;var v=a.result;previousValue=v;if(options.multiple){var b=trimWords($input.val());if(b.length>1){v=b.slice(0,b.length-1).join(options.multipleSeparator)+options.multipleSeparator+v};if(options.insertSeparator){v+=options.multipleSeparator}};$input.val(v);hideResultsNow();$input.trigger("result.autocomplete",[a.data,a.value]);return true};function onChange(a,b){if(lastKeyPressCode==KEY.DELETE){select.hide();return};var c=$input.val();if(!b&&c==previousValue)return;previousValue=c;c=lastWord(c);if(c.length>=options.minChars){$input.addClass(options.loadingClass);if(!options.matchCase)c=c.toLowerCase();request(c,receiveData,hideResultsNow)}else{stopLoading();select.hide()}};function trimWords(b){if(!b){return[""]};if(!options.multiple){return[b]};var c=b.split(options.multipleSeparator);var d=[];$.each(c,function(i,a){if($.trim(a))d[i]=$.trim(a)});return d};function lastWord(a){var b=trimWords(a);return b[b.length-1]};function autoFill(q,a){if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=$.ui.keyCode.BACKSPACE){$input.val($input.val()+a.substring(lastWord(previousValue).length));$.ui.autocomplete.selection(j,previousValue.length,previousValue.length+a.length)}};function hideResults(){clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200)};function hideResultsNow(){var c=select.visible();select.hide();clearTimeout(timeout);stopLoading();if(options.mustMatch){$input.autocomplete("search",function(a){if(!a){if(options.multiple){var b=trimWords($input.val()).slice(0,-1);$input.val(b.join(options.multipleSeparator)+(b.length?options.multipleSeparator:""))}else $input.val("")}})};if(c)$.ui.autocomplete.selection(j,j.value.length,j.value.length)};function receiveData(q,a){if(a&&a.length&&hasFocus){stopLoading();select.display(a,q);autoFill(q,a[0].value);select.show()}else{hideResultsNow()}};function request(c,d,e){if(!options.matchCase)c=c.toLowerCase();var f=cache.load(c);if(f&&f.length){d(c,f)}else if((typeof options.url=="string")&&(options.url.length>0)){var g={timestamp:+new Date()};$.each(options.extraParams,function(a,b){g[a]=typeof b=="function"?b(c):b});$.ajax({mode:"abort",port:"autocomplete"+j.name,dataType:options.dataType,url:options.url,data:$.extend({q:lastWord(c),limit:options.max},g),success:function(a){var b=options.parse&&options.parse(a)||parse(a);cache.add(c,b);d(c,b)}})}else if(options.source&&typeof options.source=='function'){var h=options.source(c);var i=(options.parse)?options.parse(h):h;cache.add(c,i);d(c,i)}else{select.emptyList();e(c)}};function parse(a){var b=[];var c=a.split("\n");for(var i=0;i<c.length;i++){var d=$.trim(c[i]);if(d){d=d.split("|");b[b.length]={data:d,value:d[0],result:options.formatResult&&options.formatResult(d,d[0])||d[0]}}};return b};function stopLoading(){$input.removeClass(options.loadingClass)}},_propagate:function(n,a){$.ui.plugin.call(this,n,[a,this.ui()]);return this.element.triggerHandler(n=='autocomplete'?n:'autocomplete'+n,[a,this.ui()],this.options[n])},ui:function(a){return{options:this.options,element:this.element}},result:function(a){return this.element.bind("result.autocomplete",a)},search:function(a){return this.element.trigger("search.autocomplete",[a])},flushCache:function(){return this.element.trigger("flushCache.autocomplete")},setData:function(a,b){return this.element.trigger("setOptions.autocomplete",[{key:b}])},destroy:function(){this.element.removeAttr('disabled').removeClass('ui-autocomplete-input');return this.element.trigger("unautocomplete")},enable:function(){this.element.removeAttr('disabled').removeClass('ui-autocomplete-disabled');this.disabled=false},disable:function(){this.element.attr('disabled',true).addClass('ui-autocomplete-disabled');this.disabled=true}});$.extend($.ui.autocomplete,{defaults:{inputClass:"ui-autocomplete-input",resultsClass:"ui-widget ui-widget-content ui-autocomplete-results",loadingClass:"ui-autocomplete-loading",minChars:1,ajaxDelay:400,localDelay:10,matchCase:false,matchSubset:true,matchContains:false,cacheLength:10,scrollMax:150,noScrollMax:10,mustMatch:false,extraParams:{},selectFirst:true,formatItem:function(a){return a[0]},formatMatch:null,autoFill:false,width:0,multiple:false,insertSeparator:true,multipleSeparator:", ",highlight:function(a,b){return a.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+b.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>")},scroll:true,scrollHeight:180}});$.ui.autocomplete.cache=function(g){var h={};var j=0;function matchSubset(s,a){if(!g.matchCase)s=s.toLowerCase();var i=s.indexOf(a);if(i==-1)return false;return i==0||g.matchContains};function add(q,a){if(j>g.cacheLength){flush()}if(!h[q]){j++}h[q]=a};function populate(){if(!g.data)return false;var b={},nullData=0;if(!g.url)g.cacheLength=1;b[""]=[];for(var i=0,ol=g.data.length;i<ol;i++){var c=g.data[i];c=(typeof c=="string")?[c]:c;var d=g.formatMatch(c,i+1,g.data.length);if(d===false)continue;var e=d.charAt(0).toLowerCase();if(!b[e])b[e]=[];var f={value:d,data:c,result:g.formatResult&&g.formatResult(c)||d};b[e].push(f);if(nullData++<g.max){b[""].push(f)}};$.each(b,function(i,a){g.cacheLength++;add(i,a)})};setTimeout(populate,25);function flush(){h={};j=0};return{flush:flush,add:add,populate:populate,load:function(q){if(!g.cacheLength||!j)return null;if(!g.url&&g.matchContains){var a=[];for(var k in h){if(k.length>0){var c=h[k];$.each(c,function(i,x){if(matchSubset(x.value,q)){a.push(x)}})}};return a}else if(h[q]){return h[q]}else if(g.matchSubset){for(var i=q.length-1;i>=g.minChars;i--){var c=h[q.substr(0,i)];if(c){var a=[];$.each(c,function(i,x){if(matchSubset(x.value,q)){a[a.length]=x}});return a}}};return null}}};$.ui.autocomplete.select=function(f,g,h,j){var k={DEFAULT:'ui-autocomplete-state-default',ACTIVE:'ui-autocomplete-state-active'};var l,active=-1,data,term="",needsInit=true,element,list;function init(){if(!needsInit)return;element=$("<div/>").hide().addClass(f.resultsClass).appendTo(document.body);list=$("<ul/>").appendTo(element).mouseover(function(a){var e=target(a);if(e.nodeName&&e.nodeName.toUpperCase()=='LI'){active=$("li",list).removeClass(k.ACTIVE).index(e);$(e).addClass(k.ACTIVE)}}).click(function(a){$(target(a)).addClass(k.ACTIVE);h();g.focus();return false}).mousedown(function(){j.mouseDownOnSelect=true}).mouseup(function(){j.mouseDownOnSelect=false});if(f.width>0)element.css("width",f.width);needsInit=false};function target(a){var b=a.target;while(b&&b.tagName!="LI")b=b.parentNode;if(!b)return[];return b};function moveSelect(a){l.slice(active,active+1).removeClass(k.ACTIVE);movePosition(a);var b=l.slice(active,active+1).addClass(k.ACTIVE);if(f.scroll){var c=0;l.slice(0,active).each(function(){c+=this.offsetHeight});if((c+b[0].offsetHeight-list.scrollTop())>list[0].clientHeight){list.scrollTop(c+b[0].offsetHeight-list.innerHeight())}else if(c<list.scrollTop()){list.scrollTop(c)}}};function movePosition(a){active+=a;if(active<0){active=l.size()-1}else if(active>=l.size()){active=0}};function limitNumberOfItems(a){return f.max&&f.max<a?f.max:a};function fillList(){list.empty();var a=limitNumberOfItems(data.length);for(var i=0;i<a;i++){if(!data[i])continue;var b=f.formatItem(data[i].data,i+1,a,data[i].value,term);if(b===false)continue;var c=$("<li/>").html(f.highlight(b,term)).addClass(i%2==0?"ui-autocomplete-even":"ui-autocomplete-odd").addClass(k.DEFAULT).appendTo(list)[0];$.data(c,"ui-autocomplete-data",data[i])};l=list.find("li");if(f.selectFirst){l.slice(0,1).addClass(k.ACTIVE);active=0};if($.fn.bgiframe)list.bgiframe()};return{display:function(d,q){init();data=d;term=q;fillList()},next:function(){moveSelect(1)},prev:function(){moveSelect(-1)},pageUp:function(){if(active!=0&&active-8<0){moveSelect(-active)}else{moveSelect(-8)}},pageDown:function(){if(active!=l.size()-1&&active+8>l.size()){moveSelect(l.size()-1-active)}else{moveSelect(8)}},hide:function(){element&&element.hide();l&&l.removeClass(k.ACTIVE);active=-1;$(g).triggerHandler("autocompletehide",[{},{options:f}],f["hide"])},visible:function(){return element&&element.is(":visible")},current:function(){return this.visible()&&(l.filter("."+k.ACTIVE)[0]||f.selectFirst&&l[0])},show:function(){var a=$(g).offset();element.css({width:typeof f.width=="string"||f.width>0?f.width:$(g).width(),top:a.top+g.offsetHeight,left:a.left}).show();if(f.scroll){list.scrollTop(0);list.css({maxHeight:f.scrollHeight,overflow:'auto'});if($.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var b=0;l.each(function(){b+=this.offsetHeight});var c=b>f.scrollHeight;list.css('height',c?f.scrollHeight:b);if(!c){l.width(list.width()-parseInt(l.css("padding-left"))-parseInt(l.css("padding-right")))}}}$(g).triggerHandler("autocompleteshow",[{},{options:f}],f["show"])},selected:function(){var a=l&&l.filter("."+k.ACTIVE).removeClass(k.ACTIVE);return a&&a.length&&$.data(a[0],"ui-autocomplete-data")},emptyList:function(){list&&list.empty()},unbind:function(){element&&element.remove()}}};$.ui.autocomplete.selection=function(a,b,c){if(a.createTextRange){var d=a.createTextRange();d.collapse(true);d.moveStart("character",b);d.moveEnd("character",c);d.select()}else if(a.setSelectionRange){a.setSelectionRange(b,c)}else{if(a.selectionStart){a.selectionStart=b;a.selectionEnd=c}};a.focus()}})(jQuery);

/* autogrow */
(function($){var d=null;$.fn.autogrow=function(o){return this.each(function(){new $.autogrow(this,o)})};$.autogrow=function(e,o){this.options=o||{};this.dummy=null;this.interval=null;this.line_height=this.options.lineHeight||parseInt($(e).css('line-height'));this.min_height=this.options.minHeight||parseInt($(e).css('min-height'));this.max_height=this.options.maxHeight||parseInt($(e).css('max-height'));this.textarea=$(e);if(this.line_height==NaN)this.line_height=0;this.init()};$.autogrow.fn=$.autogrow.prototype={autogrow:'1.2.2'};$.autogrow.fn.extend=$.autogrow.extend=$.extend;$.autogrow.fn.extend({init:function(){var a=this;this.textarea.css({overflow:'hidden',display:'block'});this.textarea.bind('focus',function(){a.startExpand()}).bind('blur',function(){a.stopExpand()});this.checkExpand()},startExpand:function(){var a=this;this.interval=window.setInterval(function(){a.checkExpand()},400)},stopExpand:function(){clearInterval(this.interval)},checkExpand:function(){if(this.dummy==null){this.dummy=$('<div></div>');this.dummy.css({'font-size':this.textarea.css('font-size'),'font-family':this.textarea.css('font-family'),'width':this.textarea.css('width'),'padding':this.textarea.css('padding'),'line-height':this.line_height+'px','overflow-x':'hidden','position':'absolute','top':0,'left':-9999}).appendTo('body')};var a=this.textarea.val().replace(/(<|>)/g,'');if($.browser.msie){a=a.replace(/\n/g,'<BR>new')}else{a=a.replace(/\n/g,'<br>new')}if(this.dummy.html()!=a){var b=this.dummy.height();this.dummy.html(a);if(this.max_height>0&&(this.dummy.height()+this.line_height>this.max_height)){this.textarea.css('overflow-y','auto')}else if(b!=this.dummy.height()){this.textarea.css('overflow-y','hidden');if(this.textarea.height()<this.dummy.height()+this.line_height||(this.dummy.height()<this.textarea.height())){this.textarea.animate({height:(this.dummy.height()+this.line_height)+'px'},400)}}}}})})(jQuery);

/* editable (integrated with autogrow) */
(function($){$.fn.editable=function(l,m){var n={target:l,name:'value',id:'id',type:'text',width:'auto',height:'auto',event:'click',onblur:'cancel',loadtype:'GET',loadtext:'Loading...',placeholder:'Click to edit',loaddata:{},submitdata:{}};if(m){$.extend(n,m)}var o=$.editable.types[n.type].plugin||function(){};var p=$.editable.types[n.type].submit||function(){};var q=$.editable.types[n.type].buttons||$.editable.types['defaults'].buttons;var r=$.editable.types[n.type].content||$.editable.types['defaults'].content;var s=$.editable.types[n.type].element||$.editable.types['defaults'].element;var u=$.editable.types[n.type].reset||$.editable.types['defaults'].reset;var v=n.callback||function(){};if(!$.isFunction($(this)[n.event])){$.fn[n.event]=function(a){return a?this.bind(n.event,a):this.trigger(n.event)}}$(this).attr('title',n.tooltip);n.autowidth='auto'==n.width;n.autoheight='auto'==n.height;return this.each(function(){var i=this;var j=$(i).width();var k=$(i).height();if(!$.trim($(this).html())){$(this).html(n.placeholder)}$(this)[n.event](function(e){if(i.editing){return}if(0==$(i).width()){n.width=j;n.height=k}else{if(n.width!='none'){n.width=n.autowidth?$(i).width():n.width}if(n.height!='none'){n.height=n.autoheight?$(i).height():n.height}}if($(this).html().toLowerCase().replace(/;/,'')==n.placeholder.toLowerCase().replace(/;/,'')){$(this).html('')}i.editing=true;i.revert=$(i).html();$(i).html('');var d=$('<form/>');if(n.cssclass){if('inherit'==n.cssclass){d.attr('class',$(i).attr('class'))}else{d.attr('class',n.cssclass)}}if(n.style){if('inherit'==n.style){d.attr('style',$(i).attr('style'));d.css('display',$(i).css('display'))}else{d.attr('style',n.style)}}var f=s.apply(d,[n,i]);var g;if(n.loadurl){var t=setTimeout(function(){f.disabled=true;r.apply(d,[n.loadtext,n,i])},100);var h={};h[n.id]=i.id;if($.isFunction(n.loaddata)){$.extend(h,n.loaddata.apply(i,[i.revert,n]))}else{$.extend(h,n.loaddata)}$.ajax({type:n.loadtype,url:n.loadurl,data:h,async:false,success:function(a){window.clearTimeout(t);g=a;f.disabled=false}})}else if(n.data){g=n.data;if($.isFunction(n.data)){g=n.data.apply(i,[i.revert,n])}}else{g=i.revert.replace(/<br>/g,'')}r.apply(d,[g,n,i]);f.attr('name',n.name);q.apply(d,[n,i]);$(i).append(d);o.apply(d,[n,i]);$(':input:visible:enabled:first',d).focus();if(n.select){f.select()}f.keydown(function(e){if(e.keyCode==27){e.preventDefault();u.apply(d,[n,i])}});var t;if('cancel'==n.onblur){f.blur(function(e){t=setTimeout(function(){u.apply(d,[n,i])},500)})}else if('submit'==n.onblur){f.blur(function(e){d.submit()})}else if($.isFunction(n.onblur)){f.blur(function(e){n.onblur.apply(i,[f.val(),n])})}else{f.blur(function(e){})}d.submit(function(e){if(t){clearTimeout(t)}e.preventDefault();if(false!==p.apply(d,[n,i])){if($.isFunction(n.target)){var b=n.target.apply(i,[f.val(),n]);$(i).html(b);i.editing=false;v.apply(i,[i.innerHTML,n]);if(!$.trim($(i).html())){$(i).html(n.placeholder)}}else{var c={};c[n.name]=f.val();c[n.id]=i.id;if($.isFunction(n.submitdata)){$.extend(c,n.submitdata.apply(i,[i.revert,n]))}else{$.extend(c,n.submitdata)}if('PUT'==n.method){c['_method']='put'}$(i).html(n.indicator);$.post(n.target,c,function(a){$(i).html(a);i.editing=false;v.apply(i,[i.innerHTML,n]);if(!$.trim($(i).html())){$(i).html(n.placeholder)}})}}return false})});this.reset=function(){$(i).html(i.revert);i.editing=false;if(!$.trim($(i).html())){$(i).html(n.placeholder)}}})};$.editable={types:{defaults:{element:function(a,b){var c=$('<input type="hidden">');$(this).append(c);return(c)},content:function(a,b,c){$(':input:first',this).val(a)},reset:function(a,b){b.reset()},buttons:function(c,d){var e=this;if(c.submit){if(c.submit.match(/>$/)){var f=$(c.submit).click(function(){if(f.attr("type")!="submit"){e.submit()}})}else{var f=$('<button type="submit">');f.html(c.submit)}$(this).append(f)}if(c.cancel){if(c.cancel.match(/>$/)){var g=$(c.cancel)}else{var g=$('<button type="cancel">');g.html(c.cancel)}$(this).append(g);$(g).click(function(a){if($.isFunction($.editable.types[c.type].reset)){var b=$.editable.types[c.type].reset}else{var b=$.editable.types['defaults'].reset}b.apply(e,[c,d]);return false})}}},text:{element:function(a,b){var c=$('<input>');if(a.width!='none'){c.width(a.width)}if(a.height!='none'){c.height(a.height)}c.attr('autocomplete','off');$(this).append(c);return(c)}},textarea:{element:function(a,b){var c=$('<textarea>');if(a.rows){c.attr('rows',a.rows)}else{c.height(a.height)}if(a.cols){c.attr('cols',a.cols)}else{c.width(a.width)}$(this).append(c);return(c)},plugin:function(a,b){$('textarea',this).autogrow(a.autogrow)}},select:{element:function(a,b){var c=$('<select>');$(this).append(c);return(c)},content:function(a,b,c){if(String==a.constructor){eval('var json = '+a);for(var d in json){if(!json.hasOwnProperty(d)){continue}if('selected'==d){continue}var e=$('<option>').val(d).append(json[d]);$('select',this).append(e)}}$('select',this).children().each(function(){if($(this).val()==json['selected']||$(this).text()==c.revert){$(this).attr('selected','selected')}})}}},addInputType:function(a,b){$.editable.types[a]=b}}})(jQuery);

/* scrollTo */
(function($){var $scrollTo=$.scrollTo=function(target,duration,settings){$(window).scrollTo(target,duration,settings)};$scrollTo.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1};$scrollTo.window=function(scope){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var elem=this,isWin=!elem.nodeName||$.inArray(elem.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return elem;var doc=(elem.contentWindow||elem).document||elem.ownerDocument||elem;return $.browser.safari||doc.compatMode=='BackCompat'?doc.body:doc.documentElement})};$.fn.scrollTo=function(target,duration,settings){if(typeof duration=='object'){settings=duration;duration=0}if(typeof settings=='function')settings={onAfter:settings};if(target=='max')target=9e9;settings=$.extend({},$scrollTo.defaults,settings);duration=duration||settings.speed||settings.duration;settings.queue=settings.queue&&settings.axis.length>1;if(settings.queue)duration/=2;settings.offset=both(settings.offset);settings.over=both(settings.over);return this._scrollable().each(function(){var elem=this,$elem=$(elem),targ=target,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(settings.axis.split(''),function(i,axis){var Pos=axis=='x'?'Left':'Top',pos=Pos.toLowerCase(),key='scroll'+Pos,old=elem[key],max=$scrollTo.max(elem,axis);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(settings.margin){attr[key]-=parseInt(targ.css('margin'+Pos))||0;attr[key]-=parseInt(targ.css('border'+Pos+'Width'))||0}attr[key]+=settings.offset[pos]||0;if(settings.over[pos])attr[key]+=targ[axis=='x'?'width':'height']()*settings.over[pos]}else{var val=targ[pos];attr[key]=val.slice&&val.slice(-1)=='%'?parseFloat(val)/100*max:val}if(/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&settings.queue){if(old!=attr[key])animate(settings.onAfterFirst);delete attr[key]}});animate(settings.onAfter);function animate(callback){$elem.animate(attr,duration,settings.easing,callback&&function(){callback.call(this,target,settings)})}}).end()};$scrollTo.max=function(elem,axis){var Dim=axis=='x'?'Width':'Height',scroll='scroll'+Dim;if(!$(elem).is('html,body'))return elem[scroll]-$(elem)[Dim.toLowerCase()]();var size='client'+Dim,html=elem.ownerDocument.documentElement,body=elem.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[size],body[size])};function both(val){return typeof val=='object'?val:{top:val,left:val}}})(jQuery);