Your IP : 172.28.240.42


Current Path : /var/www/html/clients/kampol.e-nk.ru/plugins/system/nnframework/fields/textareaplus/
Upload File :
Current File : /var/www/html/clients/kampol.e-nk.ru/plugins/system/nnframework/fields/textareaplus/textareaplus.js

/**
 * JavaScript file for Element: Text Area Plus
 *
 * @package         NoNumber Framework
 * @version         12.11.6
 *
 * @author          Peter van Westen <peter@nonumber.nl>
 * @link            http://www.nonumber.nl
 * @copyright       Copyright © 2012 NoNumber All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

TextAreaResizer = new Class({
	initialize: function(id, options)
	{
		this.element = document.getElement('#' + id);
		if (this.element.getStyle('resize')) {
			return;
		}
		this.options = Object.extend(
			options || {}
		);
		this.options.min_x = this.options.min_x || 160;
		this.options.max_x = this.options.max_x || 800;
		this.options.min_y = this.options.min_y || 80;
		this.options.max_y = this.options.max_y || 400;
		this.handleid = id + '_handle';
		this.build();
	},
	build: function()
	{
		var wrapper = new Element('div', { 'class': 'textarea_wrapper' });
		var handle = new Element('div', { 'class': 'textarea_handle', 'id': this.handleid });
		wrapper.injectAfter(this.element);
		wrapper.adopt(this.element);
		wrapper.adopt(handle);
		autoHeightParents(handle);
		document.getElement('#' + handle.id).setStyle('width', this.element.getStyle('width'));
		this.element.makeResizable({
			handle: handle.id,
			grid: 20,
			modifiers: { x: 'width', y: 'height' },
			limit: { x: [this.options.min_x, this.options.max_x], y: [this.options.min_y, this.options.max_y] },
			onStart: function(el)
			{
				autoHeightParents(handle);
				document.getElement('body').addClass('dragging');
			},
			onComplete: function(el)
			{
				document.getElement('body').removeClass('dragging');
			},
			onDrag: function(el)
			{
				document.getElement('#' + handle.id).setStyle('width', this.element.getStyle('width'));
			}
		});
	}
});

if (typeof this.window['autoHeightParents'] != 'function') {
	function autoHeightParents(element)
	{
		var parent = element.parentNode;
		for (var i = 0; i < 50; i++) {
			if (parent) {
				if (parent.name == 'adminForm') {
					break;
				}
				if (parent.tagName == 'DIV') {
					parent.style.height = 'auto';
				}
				parent = parent.parentNode;
			}
		}
	}
}