
$(function() {
	var pxValue = function(s) {
		if (s.substr(-2)=='px') {
			return parseInt(s.substring(0,s.length-2)) ;
		}
		return parseInt(s);
	};
	var delayedMenuHider = null;
	var delayMenuTimeout = 0;
	
	$('.menu .hasmenu').hover(function(obj) {
		if (delayedMenuHider!=null) {
			clearTimeout(delayMenuTimeout);
			delayedMenuHider();
		}
		var v = $(obj.currentTarget);
		var off = v.offset();
		var child = v.children('.submenu');
		var w = child.width();
		var pw = v.width()-pxValue(child.css('border-left-width'))-pxValue(child.css('padding-left'))-pxValue(child.css('margin-left'))-pxValue(child.css('border-right-width'))-pxValue(child.css('padding-right'))-pxValue(child.css('margin-right'));
		
		//console.log(' cn:'+$(this).attr('class')+' lev:'+$(this).parents('.submenu').length);
		if (v.hasClass('sub')) {
			//console.log('sub...');
			child.css('left',(v.width()-1)+'px').css('top',off.top-v.parent().offset().top);
		}
		else if (v.css('float')=='none' && v.css('display')!='inline-block') {
			//console.log('vert...');
			child.css('left',(off.left+v.width()-1)+'px').css('top',(off.top));
		}
		else {
			//console.log('horiz...');
			child.css('left',off.left+'px').css('top',(off.top+v.height()));
			if (w<pw) {
				child.css('width',pw+'px');
			}
		}
		child.css('display','block').css('z-index',1000+$(this).parents('.submenu').length);
		if (v.hasClass('sub')) {
			v.children('a').addClass('smhover');
		}
		else if (!v.hasClass('sel')) {
			v.addClass('mmhover');
		}
	},function(obj) {
		delayMenuTimeout = setTimeout(delayedMenuHider=function() {
			var v = $(obj.currentTarget);
			v.children('.submenu').css('display','none');
			v.children('a').removeClass('smhover');
			v.removeClass('mmhover');
			delayedMenuHider = null;
			delayMenuTimeout = 0;
		},1);
	});

	var us = $('#user_settings') ;
	// fast menu language
	$('.fast_menu .fm_lang #selector').click(function() {
		var dd = $('.fast_menu .fm_lang .dd');
		var cnt = $(this).parent();
		var left = $(this).offset().left+cnt.width();
		var max = $('#THEPAGE').offset().left+$('#THEPAGE').width()-5;
		dd.css('top',(cnt.offset().top+cnt.height()+5)+'px')
			.css('left',((left>max?max:left)-dd.width())+'px')
			.css('display',dd.css('display')=='none'?'block':'none')
			.mouseenter(function() {
				$(this).attr('over','1');
			})
			.mouseleave(function() {
				var obj = $(this);
				obj.attr('over','0')
				setTimeout(function() {
				if (obj.attr('over')!='1') {
					obj.css('display','none');
				}
				},800);
			});
	});
	function urlBase(loc) {
		return loc.split('?')[0].split('#')[0].split(';')[0];
	}
	function locBase() {
		var loc = window.location.toString();
		return urlBase(loc);
	}
	function makeURL(u) {
		if (u.indexOf('?')==0) {return locBase()+u;}
		if (u.indexOf('/')==0 || u.indexOf('http://')==0) {return u;}
		return u;
	}
	function presetDialog(data) {
			var res = $(data).css('display','none').appendTo('body');
			res.find('.nodialog').css('display','none');
			var t = res.find('#title').html();
			res.attr('title',t);
			return res;
	}
	function setDefaultButton(fieldSelector, button) {
		$(fieldSelector).keypress(function(e) {
			if (e.which==13) {
				$(button).click();
			}
		});
	}
	function fieldsToArray(selector, def) {
		var res = def?def:{};
		$(selector).each(function() {
			var name = $(this).attr('name');
			if (name && name.length>0) {
				var value = $(this).attr('value');
				if (($(this).attr('type')=='checkbox' || $(this).attr('type')=='radio')) {
					if ($(this).attr('checked') && !$(this).attr('omit')) {
						res[name] = value;
					}
				}
				else {
					res[name] = value;
				}
			}
		});
		return res;
	}
	function paramsToArray(url, def) {
		var res = def?def:new Array();
		var a = url.split('?'); a = a[a.length-1];a = a.split('#')[0].split('&');
		for (var i=0;i<a.length;i++) {
			var b = a[i].split('=',2);
			if (b.length==2) {
				def[b[0]] = b[1];
			}
		}
		return res;
	}
	function createLoginPanel(c, succ) {
		var lf = $('<fieldset class="inline_login"><legend>'+JS_LANG['LOGIN_REQUIRED_FOR_COMMENTS']+'</legend><form mtehod="post"> '+
			(us.attr('gen_login')==8?JS_LANG['E_MAIL']+' <input name="email" class="postfield" type="text"/> ':JS_LANG['LOGIN_NAME']+' <input name="login_name" class="postfield" type="text"/> ')+
			JS_LANG['PASSWORD']+' <input name="pwd" class="postfield" type="password"/> <button class="bt_login">'+JS_LANG['BT_LOGIN']+'</button>'+
			'</form></fieldset>');
		c.append(lf);
		
		// logic
		lf.find('.bt_login').click(function() {
			var arr = fieldsToArray(lf.find('.postfield'), {ajax:1});
			$.post('/ebl/general/ajax_login', arr, function(data) {
				if (data.ERR) {
					lf.find('.error').remove();
					lf.append('<div class="error">'+data.ERR+'</div>');
				}
				else {
					us.attr('login',data.login).attr('user_id',data.user_id);
					lf.remove();
					succ();
				}
			});
		});
		setDefaultButton(lf.find('.postfield'),lf.find('.bt_login'));
	};
	// printing
	var print_view = $('.menu_opt .print_view');
	if (print_view.length>0) print_view.attr('link',$('.menu_opt .print_view').attr('href')).attr('href','javascript:;').click(function(){window.open(makeURL($(this).attr('link')),'printer','toolbar=0,status=0,width=640,height=520');});
	// forward
	var send_by_email = $('.menu_opt .send_by_email');
	if (send_by_email.length>0) send_by_email.attr('link',send_by_email.attr('href')).attr('href','javascript:;').click(
		function(){
			var a = $(this);
			$.get($(this).attr('link')+'&ajax', function(data) {
				var x = presetDialog(data);
				var buttons = {};
				// send email message
				buttons[JS_LANG['BT_SEND']] = function() {
					if (!checkPostFields(x.find('.postfield'))) {
						return ;
					}
					var arr = fieldsToArray(x.find('.postfield'), {ajax:1});
					// show success dialog
					$.post(makeURL(a.attr('link')), arr, function(data) {
						x.dialog("close");x.remove();
						var y = presetDialog(data);
						buttons = {};buttons[JS_LANG['BT_CLOSE']] = function() {y.dialog("close");y.remove();};
						y.dialog({
							width: 450,
							height: 300,
							resizable: false,
							modal: true,
							buttons: buttons
						});
					});
				};
				// cancel button pressed
				buttons[JS_LANG['BT_CANCEL']] = function() {
					x.dialog("close");x.remove();
				};
				x.dialog({
					width: 450,
					height: 335,
					resizable: false,
					modal: true,
					buttons: buttons
				});
			});
		}
	);
	// commentek hozzáadása
	var bt_add_comment = $('.menu_opt .add_comment');
	if (bt_add_comment.length>0) {
		var createCommentPanel = function() {
			var form = $('<div class="dsh new_comment"></div>');
			var area = $('<textarea class="postfield full-1 nobrd" constr="req,min:2" name="txt" title="'+JS_LANG['COMMENT_TEXT']+'"></textarea>');
			var errct = $('<div class="error" style="display:none"></div>');
			form.append('<div class="area"></div>'+
				'<div class="data">'+
				(us.attr('login')?JS_LANG['LOGIN_NAME']+': <b>'+us.attr('login')+'</b>':JS_LANG['NICK']+' <input type="text" id="user_name" title="'+JS_LANG['NICK']+'" class="postfield" constr="req,min:2,max:100" name="user_name"/><span> '+
				JS_LANG['E_MAIL']+' <input type="text" constr="req,email" id="email" title="'+JS_LANG['E_MAIL']+'" class="postfield" name="email"/></span>')+
				'<button class="bt_send" disabled="true">'+JS_LANG['BT_SEND']+'</button><div></div></div>'+
				'<div class="tools"><label for="public">'+JS_LANG['PUBLIC_COMMENT']+'</label><input class="postfield" type="radio" id="public" name="is_public" value="1" checked=""/> <label for="hidden">'+JS_LANG['FOR_WEBMASTER']+'</label><input class="postfield" type="radio" id="hidden" name="is_public" omit="1"/>'+
				'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="req_aw">'+JS_LANG['NOTIFY_ON_ANSWER']+'</label><input class="postfield" type="checkbox" id="req_aw" name="req_answer_mail"/></div>')
				.append(errct);
			form.find('.area').append(area);
			$('#comments_top').after(form);
			form.find('textarea').autoResize();
			// init events
			area.attr('value',JS_LANG['ENTER_COMMENT']).focus(function(){
				$('.new_comment .bt_send').attr('disabled',false);
				if ($(this).attr('value')==JS_LANG['ENTER_COMMENT']) {
					$(this).attr('value','');
				}
			}).blur(function() {
				if ($(this).attr('value').length==0) {
					$(this).attr('value',JS_LANG['ENTER_COMMENT']);
					$('.new_comment .bt_send').attr('disabled',true);
				}
			});
			form.find('.bt_send').click(function() {
				if (checkPostFields(form.find('.postfield'),errct)) {
					var arr = fieldsToArray(form.find('.postfield'), {ajax:1});
					//arr = paramsToArray(bt_add_comment.attr('link'),arr);
					$.post(makeURL(bt_add_comment.attr('link')), arr, function(data) {
						alert (data);
					});
				}
				else {
					errct.css('display','block');
				}
			});
		};
		
		if (us.attr('user_id') || us.attr('freecomments')) {
			createCommentPanel();
		}
		else {
			var c = $('<div></div>').insertAfter('#comments_top');
			createLoginPanel(c, function () {
				c.remove();
				createCommentPanel();
			});
		}
		
		// change add comment icon handler
		bt_add_comment.attr('link',bt_add_comment.attr('href')).attr('href','#comments');
	}
	// facebook and iwiw share
	$('.sharefb').click(function(){window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(window.location)+'&t='+encodeURIComponent(document.title),'sharer','toolbar=0,status=0,width=626,height=436');return false;});
	$('.shareiw').click(function(){window.open('http://iwiw.hu/pages/share/share.jsp?u='+encodeURIComponent(window.location)+'&title='+encodeURIComponent(document.title),'sharer','toolbar=0,status=0,width=626,height=436');return false;});
	$('.facebook_like').each(function() {
		if ($(this).children().length==0) {
			var code = '<iframe src="http://www.facebook.com/plugins/like.php?app_id=135425793217409&amp;href='+encodeURIComponent(window.location)+'&amp;send=false&amp;layout=button_count&amp;width=150&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:150px; height:21px;" allowTransparency="true"></iframe>';
			$(this).html(code);
		}
	});/**/

});


/* STANDARD UTILS: check functions */
/*constr="req,min:2,max:3,email,int,float"*/
function checkPostFields(selector,err_place,submitButton,formSelector) {
	// common declarations
	var self = this;
	var ajaxSlots = new Array();
	
	this.resubmitWhenAjaxDone = function() {
		var ok = true ;
		var hasError = false;
		for (var i=0;i<ajaxSlots.length;i++) {
			if (ajaxSlots[i]!=1) {
				ok = false;
				if (ajaxSlots[i]==-1) {
					hasError = true;
				}
			}
		}
		if (ok) {
			var form = $(formSelector);
			//alert('all is ok! '+pt.length);
			form.submit();
		}
	}
	this.ajaxCheck = function(obj,att,url,callBack) {
		if (!obj.attr(att)) {
			var i = ajaxSlots.length;
			ajaxSlots[i] = 0;
			$.get(url, function(data) {
				if (data.OK) {
					ajaxSlots[i] = 1;
					obj.attr(att,true);
					var changeHandler = function() {
						obj.removeAttr(att);
						obj.unbind('change',changeHandler).unbind('focus',changeHandler);
					};
					obj.change(changeHandler).focus(changeHandler);
					self.resubmitWhenAjaxDone();
				}
				else {
					self.form_show_error(obj,data.ERR);
					ajaxSlots[i] = -1;
					self.submitButtonStatus();
				}
				if (callBack) {
					callBack(data);
				}
			});
		}
	}
	this.formcheck_unique_email = function(obj) {
		self.ajaxCheck(obj,'emailcheck','/ebl/general/check_email?e='+obj.attr('value'));
		return true;
	}
	this.formcheck_unique_login = function(obj) {
		self.ajaxCheck(obj,'logincheck','/ebl/general/check_login?l='+obj.attr('value'));
		return true;
	}
	this.form_show_error = function(obj,msg) {
		obj.addClass('form_error_input');
		var pt = obj.parents('.field_row');
		if (pt.length>0) {
			pt = $(pt[0]);
		}
		var shown = false;
		if (err_place) {
			var err = '<div class="errow">'+(obj.attr('title')?obj.attr('title')+': ':'')+msg+'</div>';
			$(err_place).append(err);
			shown = true;
		}
		else if (pt.length==1) {
			if (pt[0].nodeName.toLowerCase()=='tr') {
				var err = '<tr class="form_error_message">';
				pt.children().each(function() {
					if ($(this).find('.postfield').length==0) {
						err+='<td/>';
					}
					else {
						return false;
					}
				});
				err += '<td>'+msg+'</td></tr>';
				pt.after($(err));
				shown = true ;
			}
		}
		if (!shown) {
			alert(msg);
		}
	}
	this.form_show_error_code = function(obj, code) {
		var url = '/ebl/general/get_error?ec='+code;
		for (var i=2;i<arguments.length;i++) {
			url += '&p'+(i-2)+'='+encodeURIComponent(arguments[i]);
		}
		obj.addClass('form_error_input');
		$.get(url, function(data) {
			self.form_show_error(obj,data);
		});
	}
	this.formcheck_email = function(obj) {
		var v = obj.attr('value');
		var kx;
		if (v==null || v.length==0) {
		}
		else if (v==null || v.length < 6 || (kx=v.indexOf('@')) == -1 || kx<1 || kx>v.length-6 || v.lastIndexOf('.') > v.length-3 || v.indexOf(' ')!=-1) {
			self.form_show_error_code(obj,1);
			return false;
		}
		return true ;
	}
	this.formcheck_text = function(obj) {
		return true;
	}
	this.formcheck_req = function(obj) {
		var v = obj.attr('value');
		if (v.length==0) {
			self.form_show_error_code(obj,-108);
			return false;
		}
		return true;
	}
	this.formcheck_date = function(obj) {
		var v = obj.attr('value');
		if (v.length>0) {
			self.ajaxCheck(obj,'datecheck','/ebl/general/check_date?d='+v);
		}
		return true;
	}
	this.formcheck_min = function(obj,min) {
		var v = obj.attr('value');
		if (v.length>0) {
			if (self.hasConstraint(obj,'int')) {
				if (self.formcheck_int(obj)) {
					if (parseInt(v)<parseInt(min)) {
						self.form_show_error_code(obj,-109,min);
						return false;
					}
				}
				else {
					return false;
				}
			}
			else if (v.length<parseInt(min)) {
				self.form_show_error_code(obj,-111,min);
				return false;
			}
		}
		return true;
	}
	this.formcheck_max = function(obj,max) {
		var v = obj.attr('value');
		if (v.length>0) {
			if (self.hasConstraint(obj,'int')) {
				if (self.formcheck_int(obj)) {
					if (parseInt(v)>parseInt(max)) {
						self.form_show_error_code(obj,-110,max);
						return false;
					}
				}
				else {
					return false;
				}
			}
			else if (v.length>parseInt(max)) {
				self.form_show_error_code(obj,-112,max);
				return false;
			}
		}
		return true;
	}
	this.formcheck_pwsame = function(obj,other) {
		var v = obj.attr('value');
		var o = $(other).attr('value');
		if (v!=o) {
			self.form_show_error_code(obj,13);
			return false;
		}
		return true;
	}
	this.formcheck_int = function(obj) {
		var v = obj.attr('value'); 
		if (v.length>0) {
			var ok = !isNaN(parseInt(v)) && isFinite(v);
			if (!ok) {
				self.form_show_error_code(obj,-101);
			}
		}
		return ok;
	}
	this.formcheck_float = function(obj) {
		var v = obj.attr('value'); 
		if (v.length>0) {
			var ok = !isNaN(parseFloat(v)) && isFinite(v);
			if (!ok) {
				self.form_show_error_code(obj,-105);
			}
		}
		return ok;
	}
	this.formcheck_captcha = function(obj) {
		var v = obj.attr('value');
		var row = $(obj.parents('.field_row')[0]);
		var cid = row.find('input[name=code_id]');
		if (v.length!=0) {
			self.ajaxCheck(obj,'capchk','/ebl/general/checkcaptcha?code_id='+cid.val()+'&code='+v, function(data) {
				if (data.ERR && data.NEW_ID) {
					cid.val(data.NEW_ID);
					obj.val('');
					row.find('.captchaimg').attr('src','/ebl/general/image_code?cid='+data.NEW_ID);
				}
			});
		}
		return true;
	}

	this.hasConstraint = function(selector,v) {
		var res = false;
		$(selector).each(function() {
			var ct = $(this).attr('constr');
			if (ct) {
				var a = ct.split(',');
				for (var i=0;i<a.length;i++) {
					if ($.trim(a[i]).indexOf(v)>-1) {
						res = true;
						return false;
					}
				}
			}
		});
		return res;
	}
	this.submitButtonStatus = function() {
		var hasError = false;
		if (!result) {
			hasError = true;
		}
		else {
			for (var i=0;i<ajaxSlots.length;i++) {
				if (ajaxSlots[i]==-1) {
					hasError = true;
				}
			}
		}
		if (typeof submitButton!='undefined') {
			submitButton.attr('disabled',!hasError);
		}
	}
	//////////////////
	// main section //
	//////////////////
	var result = true;
	if (err_place) {
		$(err_place).children().remove();
	}
	else {
		$('.form_error_message').remove();
	}
	$('.form_error_input').removeClass('form_error_input');
	if (submitButton) {
		submitButton.attr('disabled',true);
	}
	$(selector).each(function() {
		var obj = $(this);
		var ct = obj.attr('constr');
		if (ct && obj.attr('name') && !obj.hasClass('skip')) {
			var a = ct.split(',');
			for (var i=0;i<a.length;i++) {
				var b = a[i].split(':');
				var funct = 'formcheck_'+$.trim(b[0]);
				var args = new Array() ;
				args[0] = obj;
				for (var j=1;j<b.length;j++) {
					var p = $.trim(b[j]).length>0?$.trim(b[j]):'';
					args[j]=p;
				}
				if (self[funct] && !self[funct].apply(this,args)) {
					if (result) result = false;
					i=a.length;
				}
			}
		}
	});
	self.submitButtonStatus();
	//console.log('fromcheck result: '+result+' ajax: '+ajaxSlots.length);
	return result && ajaxSlots.length==0;
}

function requestFocus() {
	$(window).focus();
	window.location.reload();
}

function ajaxHoverPopup(over, holder, id, url) {
	var tout = 0;
	var obj = null;
	var br = function() {
		if (tout!=0) {
			clearTimeout(tout);
			tout = 0;
		}
	}
	var show = function(o) {
		br();
		obj = o;
		obj.css('display','block');
	};
	var hide = function() {
		br();
		if (obj!=null) {
			tout = setTimeout(function() {
				obj.css('display','none');
				tout = 0;
			}, 250);
		}
	};
	$(over).hover(function() {
		var psel = holder+' #'+id;
		if ($(psel).length!=0) {
			show($(psel));
		}
		else {
			tout = setTimeout(function() {
				$.get(url,function(data) {
					if ($(psel).length==0) {
						var obj = $(data).attr('id',id).appendTo(holder);
						show(obj.hover(function(){show(obj);},hide));
					}
				});
			}, 500);
		}
	},hide);
}

/*
* jquery.uploadProgress
*
* Copyright (c) 2008 Piotr Sarnacki (drogomir.com)
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/mit-license.php
*
*/
(function($) {
  $.fn.uploadProgress = function(options) {
  options = $.extend({
    dataType: "json",
    interval: 2000,
    progressBar: "#progressbar",
    progressUrl: "/progress",
    start: function() {},
    uploading: function() {},
    complete: function() {},
    success: function() {},
    error: function() {},
    preloadImages: [],
    uploadProgressPath: '/javascripts/jquery.uploadProgress.js',
    jqueryPath: '/javascripts/jquery.js',
    timer: ""
  }, options);
  
  $(function() {
    //preload images
    for(var i = 0; i<options.preloadImages.length; i++)
    {
     options.preloadImages[i] = $("<img>").attr("src", options.preloadImages[i]);
    }
    /* tried to add iframe after submit (to not always load it) but it won't work.
    safari can't get scripts properly while submitting files */
    if($.browser.safari && top.document == document) {
      /* iframe to send ajax requests in safari
       thanks to Michele Finotto for idea */
      iframe = document.createElement('iframe');
      iframe.name = "progressFrame";
      $(iframe).css({width: '0', height: '0', position: 'absolute', top: '-3000px'});
      document.body.appendChild(iframe);
      
      var d = iframe.contentWindow.document;
      d.open();
      /* weird - safari won't load scripts without this lines... */
      d.write('<html><head></head><body></body></html>');
      d.close();
      
      var b = d.body;
      var s = d.createElement('script');
      s.src = options.jqueryPath;
      /* must be sure that jquery is loaded */
      s.onload = function() {
        var s1 = d.createElement('script');
        s1.src = options.uploadProgressPath;
        b.appendChild(s1);
      }
      b.appendChild(s);
    }
  });
  
  return this.each(function(){
    $(this).bind('submit', function() {
      var uuid = "";
      for (i = 0; i < 32; i++) { uuid += Math.floor(Math.random() * 16).toString(16); }
      
      /* update uuid */
      options.uuid = uuid;
      /* start callback */
      options.start();
 
      /* patch the form-action tag to include the progress-id if X-Progress-ID has been already added just replace it */
      if(old_id = /X-Progress-ID=([^&]+)/.exec($(this).attr("action"))) {
        var action = $(this).attr("action").replace(old_id[1], uuid);
        $(this).attr("action", action);
      } else {
       $(this).attr("action", jQuery(this).attr("action") + "?X-Progress-ID=" + uuid);
      }
      var uploadProgress = $.browser.safari ? progressFrame.jQuery.uploadProgress : jQuery.uploadProgress;
      options.timer = window.setInterval(function() { uploadProgress(this, options) }, options.interval);
    });
  });
  };
 
jQuery.uploadProgress = function(e, options) {
  jQuery.ajax({
    type: "GET",
    url: options.progressUrl + "?X-Progress-ID=" + options.uuid,
    dataType: options.dataType,
    success: function(upload) {
      if (upload.state == 'uploading') {
        upload.percents = Math.floor((upload.received / upload.size)*1000)/10;
        
        var bar = $.browser.safari ? $(options.progressBar, parent.document) : $(options.progressBar);
        bar.css({width: upload.percents+'%'});
        options.uploading(upload);
      }
      
      if (upload.state == 'done' || upload.state == 'error') {
        window.clearTimeout(options.timer);
        options.complete(upload);
      }
      
      if (upload.state == 'done') {
        options.success(upload);
      }
      
      if (upload.state == 'error') {
        options.error(upload);
      }
    }
  });
};
 
})(jQuery);/* */

/*
 * jQuery autoResize (textarea auto-resizer)
 * @copyright James Padolsey http://james.padolsey.com
 * @version 1.04
 */
(function(a){a.fn.autoResize=function(j){var b=a.extend({onResize:function(){},animate:true,animateDuration:150,animateCallback:function(){},extraSpace:20,limit:1000},j);this.filter('textarea').each(function(){var c=a(this).css({resize:'none','overflow-y':'hidden'}),k=c.height(),f=(function(){var l=['height','width','lineHeight','textDecoration','letterSpacing'],h={};a.each(l,function(d,e){h[e]=c.css(e)});return c.clone().removeAttr('id').removeAttr('name').css({position:'absolute',top:0,left:-9999}).css(h).attr('tabIndex','-1').insertBefore(c)})(),i=null,g=function(){f.height(0).val(a(this).val()).scrollTop(10000);var d=Math.max(f.scrollTop(),k)+b.extraSpace,e=a(this).add(f);if(i===d){return}i=d;if(d>=b.limit){a(this).css('overflow-y','');return}b.onResize.call(this);b.animate&&c.css('display')==='block'?e.stop().animate({height:d},b.animateDuration,b.animateCallback):e.height(d)};c.unbind('.dynSiz').bind('keyup.dynSiz',g).bind('keydown.dynSiz',g).bind('change.dynSiz',g)});return this}})(jQuery);

