%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/bitrix/components/bitrix/photogallery.upload/templates/.default/
Upload File :
Create Path :
Current File : //home/bitrix/www/bitrix/components/bitrix/photogallery.upload/templates/.default/script.js

;(function(window){
	if (BX["UploaderTemplateThumbnails"])
		return false;

	function ColorPicker(val)
	{
		this.bCreated = false;
		this.bOpened = false;
		this.zIndex = 5000;
		this.pWnd = BX.create("DIV", {props: {className: "bxiu-color-but bxiu-but"}});
		this.pWnd.style.backgroundColor = val;

		var _this = this;
		this.pWnd.onmousedown = function(e){_this.OnClick(e, this)};
	}

	ColorPicker.prototype = {
		Create: function ()
		{
			var _this = this;
			this.pColCont = document.body.appendChild(BX.create("DIV", {props: {className: "wm-colpick-cont"}, style: {zIndex: this.zIndex}}));

			var
				arColors = ['#FF0000', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#FF00FF', '#FFFFFF', '#EBEBEB', '#E1E1E1', '#D7D7D7', '#CCCCCC', '#C2C2C2', '#B7B7B7', '#ACACAC', '#A0A0A0', '#959595',
				'#EE1D24', '#FFF100', '#00A650', '#00AEEF', '#2F3192', '#ED008C', '#898989', '#7D7D7D', '#707070', '#626262', '#555', '#464646', '#363636', '#262626', '#111', '#000000',
				'#F7977A', '#FBAD82', '#FDC68C', '#FFF799', '#C6DF9C', '#A4D49D', '#81CA9D', '#7BCDC9', '#6CCFF7', '#7CA6D8', '#8293CA', '#8881BE', '#A286BD', '#BC8CBF', '#F49BC1', '#F5999D',
				'#F16C4D', '#F68E54', '#FBAF5A', '#FFF467', '#ACD372', '#7DC473', '#39B778', '#16BCB4', '#00BFF3', '#438CCB', '#5573B7', '#5E5CA7', '#855FA8', '#A763A9', '#EF6EA8', '#F16D7E',
				'#EE1D24', '#F16522', '#F7941D', '#FFF100', '#8FC63D', '#37B44A', '#00A650', '#00A99E', '#00AEEF', '#0072BC', '#0054A5', '#2F3192', '#652C91', '#91278F', '#ED008C', '#EE105A',
				'#9D0A0F', '#A1410D', '#A36209', '#ABA000', '#588528', '#197B30', '#007236', '#00736A', '#0076A4', '#004A80', '#003370', '#1D1363', '#450E61', '#62055F', '#9E005C', '#9D0039',
				'#790000', '#7B3000', '#7C4900', '#827A00', '#3E6617', '#045F20', '#005824', '#005951', '#005B7E', '#003562', '#002056', '#0C004B', '#30004A', '#4B0048', '#7A0045', '#7A0026'],
				row, cell, colorCell,
				tbl = BX.create("TABLE", {props: {className: 'wm-colpic-tbl'}}),
				i, l = arColors.length;

			row = tbl.insertRow(-1);
			cell = row.insertCell(-1);
			cell.colSpan = 8;
			var defBut = cell.appendChild(BX.create("SPAN", {props: {className: 'wm-colpic-def-but'}, text: BX.message("IUDefaultColor")}));
			defBut.onmouseover = function()
			{
				this.className = 'wm-colpic-def-but wm-colpic-def-but-over';
				colorCell.style.backgroundColor = '#FF0000';
			};
			defBut.onmouseout = function(){this.className = 'wm-colpic-def-but';};
			defBut.onmousedown = function(e){_this.Select('#FF0000');};

			colorCell = row.insertCell(-1);
			colorCell.colSpan = 8;
			colorCell.className = 'wm-color-inp-cell';
			colorCell.style.backgroundColor = arColors[38];
			var fOver = function ()
				{
					this.className = 'wm-col-cell wm-col-cell-over';
					colorCell.style.backgroundColor = arColors[this.id.substring('lhe_color_id__'.length)];
				},
				fOut = function (){this.className = 'wm-col-cell';},
				fDown = function ()
				{
					var k = this.id.substring('lhe_color_id__'.length);
					_this.Select(arColors[k]);
				};
			for(i = 0; i < l; i++)
			{
				if (Math.round(i / 16) == i / 16) // new row
					row = tbl.insertRow(-1);

				cell = row.insertCell(-1);
				cell.innerHTML = '&nbsp;';
				cell.className = 'wm-col-cell';
				cell.style.backgroundColor = arColors[i];
				cell.id = 'lhe_color_id__' + i;

				cell.onmouseover = fOver;
				cell.onmouseout = fOut;
				cell.onmousedown = fDown;
			}

			this.pColCont.appendChild(tbl);
			this.bCreated = true;
		},

		OnClick: function (e, pEl)
		{
			if(this.disabled)
				return false;

			if (!this.bCreated)
				this.Create();

			if (this.bOpened)
				return this.Close();

			this.Open();
		},

		Open: function ()
		{
			var
				pos = BX.pos(this.pWnd),
				_this = this, top, left = pos.left;

			this.pColCont.style.display = 'block';
			if (BX.browser.IsIE())
			{
				top = pos.top - parseInt(this.pColCont.offsetHeight) - 2;
			}
			else
			{
				pos = BX.align(pos, 325, 155, 'top');
				top = pos.top;
				left = pos.left;
			}

			BX.bind(window, "keypress", BX.proxy(this.OnKeyPress, this));
			oTransOverlay.Show({onclick: function(){_this.Close()}});

			this.pColCont.style.top = top + 'px';
			this.pColCont.style.left = left + 'px';
			this.bOpened = true;
		},

		Close: function ()
		{
			this.pColCont.style.display = 'none';
			oTransOverlay.Hide();
			BX.unbind(window, "keypress", BX.proxy(this.OnKeyPress, this));
			this.bOpened = false;
		},

		OnKeyPress: function(e)
		{
			if(!e) e = window.event
			if(e.keyCode == 27)
				this.Close();
		},

		Select: function (color)
		{
			this.pWnd.style.backgroundColor = color;
			BX.onCustomEvent(this, "onChange", [color]);
			this.Close();
		}
	};

	function Popup(oPar)
	{
		var _this = this;
		this.bCreated = false;
		this.bOpened = false;
		this.zIndex = 5000;
		this.oPar = oPar;
		this.pWnd = BX.create("DIV", {props: {className: "bxiu-but bxiu-but-" + oPar.id}});
		this.pWnd.onmousedown = function(e){_this.OnClick(e, this)};
		if (oPar.title)
			this.pWnd.title = oPar.title;

		this.oPopup = new BX.CWindow(false, 'float');

		if (this.oPar && typeof this.oPar.OnCreate == 'function')
			this.oPar.OnCreate(this);

		var i, l = this.oPar.items.length, func = function(){_this.SelectItem(this.id.substr(parseInt('bxiu__item_'.length)));};
		for (i = 0; i < l; i++)
		{
			this.oPar.items[i].pItem = BX.create("DIV", {props: {id: 'bxiu__item_' + i, className: "bxiu-popup-but " + this.oPar.classPrefix + this.oPar.items[i].value.toLowerCase()}});
			if (this.oPar.items[i].title)
				this.oPar.items[i].pItem.title = this.oPar.items[i].title;

			this.oPopup.Get().appendChild(this.oPar.items[i].pItem);
			this.oPar.items[i].pItem.onmousedown = func;
		}

		if (typeof oPar.currentValue != 'undefined')
			this.SelectItem(false, oPar.currentValue);

		this.pWnd.onmousedown = function(e){_this.OnClick(e, this)};
	}

	Popup.prototype = {
		OnClick: function (e, pEl)
		{
			if (this.bOpened)
				return this.Close();
			this.Open();
		},

		Close: function ()
		{
			oTransOverlay.Hide();
			this.oPopup.Close();
			this.bOpened = false;
		},

		Open: function ()
		{
			this.oPopup.Show();
			var
				pos = BX.pos(this.pWnd),
				top = pos.top, left = pos.left;

			top -= this.oPopup.Get().offsetHeight;

			this.oPopup.Get().style.top = top + 'px';
			this.oPopup.Get().style.left = left + 'px';

			var _this = this;
			oTransOverlay.Show({onclick: function(){_this.Close()}});
			this.bOpened = true;
		},

		SelectItem: function(ind, value)
		{
			if (ind === false && value)
			{
				var i, l = this.oPar.items.length, item;
				for (i = 0; i < l; i++)
					if (this.oPar.items[i].value == value)
						break;
				ind = i;
			}
			var oItem = this.oPar.items[ind] ? this.oPar.items[ind] : this.oPar.items[0];

			if (this.oPar.items[this.activeItemInd])
				BX.removeClass(this.oPar.items[this.activeItemInd].pItem, 'bxiu-active');

			if (this.oPar.items[ind] && this.oPar.items[ind].pItem)
				BX.addClass(this.oPar.items[ind].pItem, 'bxiu-active');

			if (this.activeItemInd != ind)
			{
				BX.onCustomEvent(this, "onChange", [oItem.value]);
			}
			this.activeItemInd = ind;

			this.Close();
		}
	}

	function OpacityControl(oPar)
	{
		this.pCont = BX.create("DIV", {props: {className: "bxiu-opacity"}});

		this.pCont.appendChild(BX.create("DIV", {props: {className: "bxiu-opacity-label"}, text: BX.message("IUOpacity")}));
		var pDiv = this.pCont.appendChild(BX.create("DIV", {props: {className: "bxiu-op-div"}}));

		this.oPar = oPar;
		this.values = [
			{value:100, title: '0%'},
			{value:75, title: '25%'},
			{value:50, title: '50%'},
			{value:25, title: '75%'}
		];

		var
			_this = this,
			i, l = this.values.length, valCont, fMd = function(){_this.SelectItem(parseInt(this.id.substr('bxiu_op_item_'.length)));};

		for (i = 0; i < l; i++)
		{
			valCont = pDiv.appendChild(BX.create("DIV", {props: {id: "bxiu_op_item_" + i, className: "bxiu-op-val-cont"}}));
			valCont.appendChild(BX.create("DIV", {props: {className: "bxiu-op-l-corn"}}));
			valCont.appendChild(BX.create("DIV", {props: {className: "bxiu-op-center"}, html: '<span>' + this.values[i].title + '</span>'}));
			valCont.appendChild(BX.create("DIV", {props: {className: "bxiu-op-r-corn"}}));
			valCont.onmousedown = fMd;
			this.values[i].cont = valCont;
		}
		if (typeof oPar.currentValue != 'undefined')
			this.SelectItem(false, oPar.currentValue);
	}

	OpacityControl.prototype = {
		SelectItem: function(ind, value)
		{
			if (ind === false && typeof value != 'undefined')
			{
				var i, l = this.values.length;
				for (i = 0; i < l; i++)
				{
					if (this.values[i].value == value)
					{
						break;
					}
				}
				ind = i;
			}
			ind = (typeof ind == "number" && 0 <= ind && ind < this.values.length ? ind : 0);

			if (this.activeItemInd != ind)
			{
				BX.onCustomEvent(this, "onChange", [this.values[ind].value]);
				if (this.values[this.activeItemInd])
					BX.removeClass(this.values[this.activeItemInd].cont, 'bxiu-op-val-cont-active');
				this.activeItemInd = ind;
				BX.addClass(this.values[ind].cont, 'bxiu-op-val-cont-active');
			}
		}
	};


	function Overlay()
	{
		this.id = 'bxiu_trans_overlay';
		this.zIndex = 100;
	}

	Overlay.prototype =
	{
		Create: function ()
		{
			this.bCreated = true;
			this.bShowed = false;
			var ws = BX.GetWindowScrollSize();
			this.pWnd = document.body.appendChild(BX.create("DIV", {props: {id: this.id, className: "bxiu-trans-overlay"}, style: {zIndex: this.zIndex, width: ws.scrollWidth + "px", height: ws.scrollHeight + "px"}}));

			this.pWnd.ondrag = BX.False;
			this.pWnd.onselectstart = BX.False;
		},

		Show: function(arParams)
		{
			if (!this.bCreated)
				this.Create();
			this.bShowed = true;

			var ws = BX.GetWindowScrollSize();

			this.pWnd.style.display = 'block';
			this.pWnd.style.width = ws.scrollWidth + "px";
			this.pWnd.style.height = ws.scrollHeight + "px";

			if (!arParams)
				arParams = {};

			if (arParams.zIndex)
				this.pWnd.style.zIndex = arParams.zIndex;

			if (arParams.onclick && typeof arParams.onclick == 'function')
				this.pWnd.onclick = arParams.onclick;

			BX.bind(window, "resize", BX.proxy(this.Resize, this));
			return this.pWnd;
		},

		Hide: function ()
		{
			if (!this.bShowed)
				return;
			this.bShowed = false;
			this.pWnd.style.display = 'none';
			BX.unbind(window, "resize", BX.proxy(this.Resize, this));
			this.pWnd.onclick = null;
		},

		Resize: function ()
		{
			if (this.bCreated)
				this.pWnd.style.width = BX.GetWindowScrollSize().scrollWidth + "px";
		}
	};

	var oTransOverlay = new Overlay();


	var cnvConstr = null, cnvEdtr = null;
	BX.UploaderTemplateThumbnails = function(params, settings)
	{
		this.id = params["id"];
		this.UPLOADER_ID = params["UPLOADER_ID"];
		this.dialogName = "BX.UploaderTemplateThumbnails";
		this.vars = {
			"filesCountForUpload" : 0
		};
		params["phpMaxFileUploads"] = 10;
		if (params["copies"])
		{
			var i = 1;
			for (var ii in params["copies"])
			{
				if (params["copies"].hasOwnProperty(ii))
				{
					i++;
				}
			}
			params["phpMaxFileUploads"] = i * 10;
		}

		this.params = params;
		params.allowUploadExt = "jpg,jpeg,png,gif";
		this.uploader = BX.Uploader.getInstance(params);
		this.init();
		return this;
	};
	BX.UploaderTemplateThumbnails.prototype = {
		init : function()
		{
			if (this.uploader.dialogName != "BX.Uploader")
			{
				BX.addClass(BX("bxuMain" + this.id), "bxu-thumbnails-simple");
			}

			this._onItemIsAdded = BX.delegate(this.onItemIsAdded, this);
			this._onFileIsAppended = BX.delegate(this.onFileIsAppended, this);

			BX.addCustomEvent(this.uploader, "onItemIsAdded", this._onItemIsAdded);
			BX.addCustomEvent(this.uploader, 'onStart', BX.delegate(this.start, this));
			BX.addCustomEvent(this.uploader, 'onDone', BX.delegate(this.done, this));
			BX.addCustomEvent(this.uploader, 'onFinish', BX.delegate(this.finish, this));
			BX.addCustomEvent(this.uploader, 'onTerminate', BX.delegate(this.terminate, this));

			BX.addCustomEvent(this.uploader, "onFileIsAppended", this._onFileIsAppended);
			BX.addCustomEvent(this.uploader, "onQueueIsChanged", BX.delegate(this.onChange, this));

			this._onUploadStart = BX.delegate(this.onUploadStart, this);
			this._onUploadProgress = BX.delegate(this.onUploadProgress, this);
			this._onUploadDone = BX.delegate(this.onUploadDone, this);
			this._onUploadError = BX.delegate(this.onUploadError, this);
			this._onUploadRestore = BX.delegate(this.onUploadRestore, this);
			this._onFileHasPreview = BX.delegate(this.onFileHasPreview, this);

			BX.bind(BX('bxuStartUploading' + this.id), "click", BX.delegate(this.uploader.submit, this.uploader));
			BX.bind(BX('bxuCancel' + this.id), "click", BX.delegate(this.uploader.stop, this.uploader));

			this.uploader.init(BX('bxuUploaderStart' + this.id));
			this.uploader.init(BX('bxuUploaderStartField' + this.id));

			BX.bind(BX('bxuReduced' + this.id), "click", BX.delegate(function(){

				BX.userOptions.save('main', this.UPLOADER_ID, 'template', "reduced");

				BX.addClass(BX('bxuReduced' + this.id), 'bxu-templates-btn-active');
				BX.removeClass(BX('bxuEnlarge' + this.id), 'bxu-templates-btn-active');
				BX.addClass(BX('bxuMain' + this.id), 'bxu-main-block-reduced-size');
			}, this));
			BX.bind(BX('bxuEnlarge' + this.id), "click", BX.delegate(function(){
				BX.userOptions.save('main', this.UPLOADER_ID, 'template', "full");

				BX.removeClass(BX('bxuReduced' + this.id), 'bxu-templates-btn-active');
				BX.addClass(BX('bxuEnlarge' + this.id), 'bxu-templates-btn-active');
				BX.removeClass(BX('bxuMain' + this.id), 'bxu-main-block-reduced-size');
			}, this));
			this.uploader.fileFields = (!!this.uploader.fileFields ? this.uploader.fileFields : {});
			this.uploader.fileFields.description = (!!this.uploader.fileFields.description ? this.uploader.fileFields.description : {});
		},
		onUploadStart : function(item)
		{
			item.__progressBarWidth = 1;
			var ph = item.getPH('Thumb'), id = item.id, width, percent = item.progress;
			BX.addClass(ph, "bxu-item-loading");
			if (BX('bxu' + id + 'ProgressBar'))
			{
				BX.adjust(BX('bxu' + id + 'ProgressBar'), {style : { width : item.__progressBarWidth + '%'}});
			}
		},
		onUploadProgress : function(item, progress)
		{
			var id = item.id;
			if (BX('bxu' + id + 'ProgressBar'))
			{
				item.__progressBarWidth = Math.max(item.__progressBarWidth, Math.ceil(progress));
				BX.adjust(BX('bxu' + id + 'ProgressBar'), {style : { width : item.__progressBarWidth + '%'}});
			}
		},
		onUploadDone : function(item)
		{
			var pointer = this.uploader.getItem(item.id), node;

			if (pointer && (node = pointer.node) && node)
				BX.hide(node);

			item.file = null;
			delete item.file;

			BX.remove(item.canvas);
			item.canvas = null;
			delete item.canvas;

			this.vars["uploadedFilesCount"]++;
			BX('bxuUploaded' + this.id).innerHTML = this.vars["uploadedFilesCount"];
			BX('bxuUploadBar' + this.id).style.width = Math.ceil(this.vars["uploadedFilesCount"] / this.vars["filesCountForUpload"] * 100) + '%';

			this.onChange(this.uploader.queue);
		},
		onUploadError : function(item, file, queue)
		{
			var ph = item.getPH('Thumb');
			BX.removeClass(ph, "bxu-item-loading");
			BX.addClass(ph, "bxu-item-error");
			ph.innerHTML = this.params.errorThumb.replace("#error#", file.error);

		},
		onUploadRestore : function(item)
		{
			var ph = item.getPH('Thumb');
			BX.removeClass(ph, "bxu-item-loading");
			BX.removeClass(ph, "bxu-item-loading-with-error");
		},
		start : function(pIndex, queue)
		{
			this.vars["uploadedFilesCount"] = this.uploader.queue.itUploaded.length;
			this.vars["filesCountForUpload"] += queue.filesCount;
			BX('bxuUploadBar' + this.id).style.width = Math.ceil(this.vars["uploadedFilesCount"] / this.vars["filesCountForUpload"]) + '%';
			BX('bxuUploaded' + this.id).innerHTML = this.vars["uploadedFilesCount"];
			BX('bxuForUpload' + this.id).innerHTML = this.vars["filesCountForUpload"];
			BX.addClass(BX("bxuMain" + this.id), "bxu-thumbnails-loading");
		},
		done : function(stream, pIndex, queue, data)
		{
			this.vars["filesCountForUpload"] -= queue.filesCount;
			BX.removeClass(BX("bxuMain" + this.id), "bxu-thumbnails-loading");
			BX('bxuUploaded' + this.id).innerHTML = this.vars["uploadedFilesCount"];
			this.redirectUrl = data.report.uploading[this.uploader.CID]['redirectUrl'];
		},
		finish : function() {
			if(this.uploader.queue.itFailed.length <= 0 && BX.type.isNotEmptyString(this.redirectUrl)) {
				BX.reload(this.redirectUrl);
			}
		},
		terminate : function(pIndex, queue)
		{
			this.vars["filesCountForUpload"] -= queue.filesCount;
			BX.removeClass(BX("bxuMain" + this.id), "bxu-thumbnails-loading");
			BX('bxuUploaded' + this.id).innerHTML = this.vars["uploadedFilesCount"];
		},
		onChange : function(queue)
		{
			if (!!BX('bxuImagesCount' + this.id))
			{
				this.vars["filesCount"] = queue.items.length - (this.vars["uploadedFilesCount"] > 0 ? this.vars["uploadedFilesCount"] : 0);
				BX('bxuImagesCount' + this.id).innerHTML = this.vars["filesCount"];
			}
		},
		onItemIsAdded : function(f, uploader)
		{
			BX.removeCustomEvent(this.uploader, "onItemIsAdded", this._onItemIsAdded);
			BX.removeClass(BX("bxuMain" + this.id), "bxu-thumbnails-start");
		},
		onFileHasPreview : function(id, item, img)
		{
/*			var img1 = BX.create('IMG', {attrs : { src : img.src } } );
			img.parentNode.insertBefore(img1, img);
			img.parentNode.removeChild(img);
*/		},
		onFileIsAppended : function(id, file)
		{
			if (file.dialogName == "BX.UploaderFile" || !BX.CanvasEditor)
			{
				if (BX(id + 'Edit')) BX.remove(BX(id + 'Edit'));
				if (BX(id + 'Turn')) BX.remove(BX(id + 'Turn'));
			}
			else
			{
				if (BX(id + 'Edit'))
					BX.bind(BX(id + 'Edit'), "click", BX.delegate(file.clickFile, file));
				if (BX(id + 'Turn'))
				{
					file.__onTurnCanvas = BX.delegate(function(image, canvas, context)
					{
						if (cnvEdtr === null)
							cnvEdtr = new BX.Canvas();
						if (cnvEdtr)
						{
							context.drawImage(image, 0, 0);
							cnvEdtr.copy(canvas, { width : image.width, height : image.height });
							cnvEdtr.rotate(true);
							this.applyFile(cnvEdtr.cnv, true);
						}
					}, file);
					BX.bind(BX(id + 'Turn'), "click", BX.delegate(function() {
						if (cnvConstr === null && !!BX.UploaderFileCnvConstr)
							cnvConstr = new BX.UploaderFileCnvConstr();
						if (!!cnvConstr)
						{
							BX.adjust(cnvConstr.getCanvas(), { props : { width : this.file.width, height : this.file.height } } );
							cnvConstr.push(this.file, this.__onTurnCanvas);
						}
					}, file));
				}
			}
			BX.addCustomEvent(file, 'onUploadStart', this._onUploadStart);
			BX.addCustomEvent(file, 'onUploadProgress', this._onUploadProgress);
			BX.addCustomEvent(file, 'onUploadDone', this._onUploadDone);
			BX.addCustomEvent(file, 'onUploadError', this._onUploadError);
			BX.addCustomEvent(file, 'onUploadRestore', this._onUploadRestore);
			BX.addCustomEvent(file, 'onFileHasPreview', this._onFileHasPreview);

			if (BX(id + 'Del'))
				BX.bind(BX(id + 'Del'), "click", BX.delegate(function(){
					BX.removeCustomEvent(file, 'onUploadStart', this._onUploadStart);
					BX.removeCustomEvent(file, 'onUploadProgress', this._onUploadProgress);
					BX.removeCustomEvent(file, 'onUploadDone', this._onUploadDone);
					BX.removeCustomEvent(file, 'onUploadError', this._onUploadError);
					BX.removeCustomEvent(file, 'onUploadRestore', this._onUploadRestore);
					BX.removeCustomEvent(file, 'onFileHasPreview', this._onFileHasPreview);
					BX.unbindAll(BX(id + 'Turn'));
					BX.unbindAll(BX(id + 'Edit'));
					BX.unbindAll(BX(id + 'Del'));
					file.deleteFile();
				}, file));
		}
	};
	BX.UploaderSettings = function(params)
	{
		this.UPLOADER_ID = params["UPLOADER_ID"];
		this.id = params["id"];
		this.form = BX(params["UPLOADER_ID"] + "_form");
		var _this = this;
		params = (!!params ? params : {});
		this.params = params["params"];

		if (params["show"]) {
			for (var ii = 0; ii < params["show"].length; ii++)
				this.init(params["show"][ii]);
		}
		var node = BX('bxuMain' + _this.id);
		BX('bxuSettings' + this.id).onclick = function()
		{
			if (BX.hasClass(node, 'bxu-thumbnails-settings-are'))
			{
				BX.removeClass(node, 'bxu-thumbnails-settings-are');
				_this.SaveUserOption('additional', 'N');
			}
			else
			{
				BX.addClass(node, 'bxu-thumbnails-settings-are');
				_this.SaveUserOption('additional', 'Y');
			}
		};
		_this.SaveUserOption('additional', (BX.hasClass(node, 'bxu-thumbnails-settings-are') ? 'Y' : 'N'));
		this.n = {};
		if (!!window['oBXUploaderHandler_' + this.UPLOADER_ID])
		{
			this.oUploadHandler = window['oBXUploaderHandler_' + this.UPLOADER_ID];
			BX.addCustomEvent(this, "onChangeSize", this.oUploadHandler.SetOriginalSize);
			BX.addCustomEvent(this, "onWMChangeUse", function(v){_this.oUploadHandler.Watermark.Using(v, false);});
			BX.addCustomEvent(this, "onWMChangeType", _this.oUploadHandler.Watermark.Type);
			BX.addCustomEvent(this, "onWMChangeText", _this.oUploadHandler.Watermark.Text);
			BX.addCustomEvent(this, "onWMChangeCopyright", _this.oUploadHandler.Watermark.Copyright);
			BX.addCustomEvent(this, "onWMChangeColor", _this.oUploadHandler.Watermark.Color);
			BX.addCustomEvent(this, "onWMChangePosition", _this.oUploadHandler.Watermark.Position);
			BX.addCustomEvent(this, "onWMChangeFile", function(val, vals){
				_this.oUploadHandler.Watermark.File(val);
				_this.oUploadHandler.Watermark.FileWidth(vals[2]);
				_this.oUploadHandler.Watermark.FileHeight(vals[3]);
			});
		}

		return this;

	};
	BX.UploaderSettings.prototype = {
		SaveUserOption: function(option, value)
		{
			option = option.toLowerCase();
			var Opt = option.substr(0, 1).toUpperCase() + option.substr(1);
			if (!this.form["photo_watermark_" + option])
			{
				this.form.appendChild(BX.create("INPUT", {
					props : {
						type : "hidden",
						name : "photo_watermark_" + option,
						value : value
					},
					attrs : {
						"bxu-set" : "Y"
					}
				}));
			}
			else if (!this.form["photo_watermark_" + option].hasAttribute("bxu-set"))
			{
				this.form["photo_watermark_" + option].value = value;
				this.form["photo_watermark_" + option].setAttribute("bxu-set", "Y");
			}
			else if (this.form["photo_watermark_" + option].value != value)
			{
				this.form["photo_watermark_" + option].value = value;
				BX.onCustomEvent(this, "onWMChange" + Opt, [value, arguments]);

				BX.userOptions.save('main', this.UPLOADER_ID, option, value);
			}
		},
		init : function(id)
		{
			if (id == "resize" &&  BX('bxiu_resize_' + this.UPLOADER_ID))
			{
				this.n["resizer"] = BX('bxiu_resize_' + this.UPLOADER_ID);
				this.form.photo_resize_size.value = this.n["resizer"].value;
				BX.bind(this.n["resizer"], "change", BX.delegate(function() {
					this.form.photo_resize_size.value = this.n["resizer"].value;
					BX.onCustomEvent(this, "onChangeSize", [this.n["resizer"].value])
				}, this));

			}
			else if (id == "watermark")
			{
				this.setWMUsing(this.params['use']);
				this.setWMType(this.params['type']);
				this.setWMText(this.params['text']);
				this.setWMCopyright(this.params['copyright']);
				this.setWMColor(this.params['color']);
				this.setWMPosition(this.params['position']);
				this.setWMSize(this.params['size']);
				this.setWMFile(this.params['file'], this.params['fileWidth'], this.params['fileHeight']);
				this.setWMOpacity(this.params['opacity']);
//				this.InitImageTypeControls(this.params['position'], this.params['size'], this.params['opacity']);
			}
		},
		setWMUsing : function (val)
		{
			if (!this.nodeWMUsing)
			{
				this.nodeWMUsing = BX(this.id + '_use_watermark');
				BX.bind(this.nodeWMUsing, "click", BX.delegate(this.setWMUsing, this));
//				this.form.photo_watermark_use.value = val;
			}
			if (this.nodeWMUsing)
			{
				val = ((val === "Y" || val === "N") ? val : (this.nodeWMUsing.checked ? 'Y' : 'N'));
				var nodeP = BX(this.id + '_watermark_cont');
				if (this.nodeWMUsing.checked)
					BX.addClass(nodeP, "bxiu-watermark-checked");
				else
					BX.removeClass(nodeP, "bxiu-watermark-checked");
				this.SaveUserOption('use', val);
			}
		},
		setWMType : function(type)
		{
			if (!this.pTypeText)
			{
				// Watermark type
				this.pTypeText = BX(this.id + '_wmark_type_text');
				this.pTypeImg = BX(this.id + '_wmark_type_img');

				BX.bind(this.pTypeText, "click", BX.delegate(function(){ this.setWMType('text'); }, this));
				BX.bind(this.pTypeImg, "click", BX.delegate(function(){ this.setWMType('image'); }, this));
				type = (!!type ? type : (this.pTypeText.checked ? 'text' : 'image'));
//				this.form.photo_watermark_type.value = type;
			}
			if (this.pTypeText)
			{
				var nodeP = BX(this.id + '_watermark_cont');
				if (type == 'text')
				{
					this.pTypeText.checked = true;
					BX.removeClass(nodeP, 'bxiu-watermark-image-checked');
					BX.addClass(nodeP, 'bxiu-watermark-text-checked');
				}
				else
				{
					this.pTypeImg.checked = true;
					BX.addClass(nodeP, 'bxiu-watermark-image-checked');
					BX.removeClass(nodeP, 'bxiu-watermark-text-checked');
				}
				this.SaveUserOption('type', type);
			}
		},
		setWMText : function(val)
		{
			if (!this.pWatermarkText)
			{
				this.pWatermarkText = BX(this.id + '_wmark_text');
				this.pWatermarkText.onchange = this.pWatermarkText.onblur = this.pWatermarkText.onkeyup = BX.delegate(this.setWMText, this);
//				this.form.photo_watermark_text.value =  this.pWatermarkText.value = val;
			}
			if (this.pWatermarkText)
			{
				val = ((typeof val == "string") ? val : this.pWatermarkText.value);
				this.SaveUserOption('text', val);
			}
			this.textButCont = BX(this.id + '_text_but_cont');
		},
		setWMCopyright : function(val)
		{
			if (!this.pCopyright)
			{
				this.pCopyright = BX.create("DIV", {props: {className: 'bxiu-but bxiu-copyright'}});
				BX.bind(this.pCopyright, "click", BX.delegate(function(){ this.setWMCopyright(this.form.photo_watermark_copyright.value == "Y" ? "N" : "Y"); }, this));
				BX(this.id + '_text_but_cont').appendChild(BX.create("DIV", {props: {className: 'bxiu-but-cont'}})).appendChild(this.pCopyright);
//				this.form.photo_watermark_copyright.value = val;
			}
			if (this.pCopyright)
			{
				if (val == 'Y')
				{
					this.pCopyright.title = BX.message("IUCopyrightTitleOff");
					BX.removeClass(this.pCopyright, 'bxiu-copyright-none');
					BX.addClass(this.pWatermarkText, 'bxiu-show-copyright');
				}
				else
				{
					this.pCopyright.title = BX.message("IUCopyrightTitleOn");
					BX.addClass(this.pCopyright, 'bxiu-copyright-none');
					BX.removeClass(this.pWatermarkText, 'bxiu-show-copyright');
				}
				this.SaveUserOption('copyright', val);
			}

		},
		setWMColor : function(val)
		{
			if (!this.oColorpicker)
			{
				this.oColorpicker = new ColorPicker(val);
				BX.addCustomEvent(this.oColorpicker, "onChange", BX.proxy(this.setWMColor, this));
				this.textButCont.appendChild(BX.create("DIV", {props: {className: 'bxiu-but-cont'}})).appendChild(this.oColorpicker.pWnd);
//				this.form.photo_watermark_color.value = val;
			}
			if (this.oColorpicker)
			{
				this.SaveUserOption('color', val);
			}
		},
		setWMPosition : function(val)
		{
			if (!this.oTextPosition)
			{
				this.oTextPosition = new Popup({
					id: 'position_text',
					classPrefix: 'bxiu-but-pos-',
					items: [
						{value: "TopLeft", title: BX.message("IUTopLeft")},
						{value: "TopCenter", title: BX.message("IUTopCenter")},
						{value: "TopRight", title: BX.message("IUTopRight")},
						{value: "CenterLeft", title: BX.message("IUCenterLeft")},
						{value: "Center", title: BX.message("IUCenter")},
						{value: "CenterRight", title: BX.message("IUCenterRight")},
						{value: "BottomLeft", title: BX.message("IUBottomLeft")},
						{value: "BottomCenter", title: BX.message("IUBottomCenter")},
						{value: "BottomRight", title: BX.message("IUBottomRight")}
					],
					currentValue: val,
					title: BX.message("IUPositionTitle"),
					OnCreate: function(obj)
					{
						obj.type = 'applet';
						BX.addClass(obj.pWnd, 'bxiu-but-pos-center');
						BX.addClass(obj.oPopup.Get(), 'bxiu-pos-popup');
					}
				});
				BX.addCustomEvent(this.oTextPosition, "onChange", BX.proxy(this.setWMPosition, this));
				BX(this.id + '_text_but_cont').appendChild(BX.create("DIV", {props: {className: 'bxiu-but-cont'}})).appendChild(this.oTextPosition.pWnd);
//				this.form.photo_watermark_position.value = val;
			}
			if (this.oTextPosition)
			{
				this.oTextPosition.pWnd.className = 'bxiu-but bxiu-but-pos-' + val.toLowerCase();
				this.SaveUserOption('position', val);
			}
		},
		setWMSize : function(val)
		{
			if (!this.oTextSize)
			{
				this.oTextSize = new Popup({
					id: 'size_text',
					classPrefix: 'bxiu-but-t-size-',
					items: [
						{value: "big", title: BX.message("IUSizeBig")},
						{value: "middle", title: BX.message("IUSizeMiddle")},
						{value: "small", title: BX.message("IUSizeSmall")}
					],
					currentValue: val,
					title: BX.message("IUSizeTitle"),
					OnCreate: function(obj)
					{
						obj.type = 'applet';
						BX.addClass(obj.pWnd, 'bxiu-but-t-size-middle');
						BX.addClass(obj.oPopup.Get(), 'bxiu-text-size-popup');
					}
				});
				BX.addCustomEvent(this.oTextSize, "onChange", BX.proxy(this.setWMSize, this));
				BX(this.id + '_text_but_cont').appendChild(BX.create("DIV", {props: {className: 'bxiu-but-cont'}})).appendChild(this.oTextSize.pWnd);
//				this.form.photo_watermark_size.value = val;
			}
			if (this.oTextPosition)
			{
				this.oTextSize.pWnd.className = 'bxiu-but bxiu-but-t-size-' + val;
				this.SaveUserOption('size', val);
			}
		},
		setWMFile : function(path, fileWidth, fileHeight)
		{
			var _this = this;
			this.imgButCont = BX(this.id + '_img_but_cont');
			if (!this.pImgInput)
			{
				this.pImgInput = BX('bxiu_wm_img' + this.id);
				this.pImgInput.onchange = function()
				{
					_this.pImgInputOld = _this.pImgInput;
					_this.pImgInput = _this.pImgInput.cloneNode(false);
					_this.pImgInput.onchange = _this.pImgInputOld.onchange;
					_this.pImgInputOld.parentNode.insertBefore(_this.pImgInput, _this.pImgInputOld);

					if (!!_this.pImgForm)
						_this.pImgForm.parentNode.removeChild(_this.pImgForm);

					_this.pImgForm = BX.create("FORM", {
						props: {
							method: "POST",
							enctype: "multipart/form-data",
							encoding: "multipart/form-data",
							action: _this.form.action,
							name : "wm_form"
						},
						style: {display: "none"},
						children : [
							BX.create('INPUT', { props : { type : "hidden", name : "sessid", value : BX.bitrix_sessid() } } ),
							BX.create('INPUT', { props : { type : "hidden", name : "watermark_iframe", value : "Y" } } ),
							_this.pImgInputOld
						]
					});
					document.body.appendChild(_this.pImgForm);

					BX.ajax.submit(_this.pImgForm, function()
					{
						var pCont = BX('bxiu_wm_img_iframe_cont' + _this.id);
						pCont.className = 'bxiu-iframe-cont-ok';
						setTimeout(function(){
							var res = top.bxiu_wm_img_res;
							if (!top.bxiu_wm_img_res || res.error)
								return alert(res.error);
							_this.setWMFile(res.path, res.width, res.height);
						}, 50);
					});
				}
				this.watermarkPreview = BX('watermark_img_preview' + this.id);
				this.watermarkPreview.onerror = function() { this.style.display = 'none'; };
				this.watermarkPreview.onload = function()
				{
					if (_this.watermarkPreview.src != "/bitrix/images/1.gif")
					{
						_this.watermarkPreviewCont.style.display = "block";
						setTimeout(function()
						{
							_this.watermarkPreviewDel.style.display = "block";
							_this.watermarkPreviewDel.style.left = (parseInt(_this.watermarkPreview.offsetWidth) -
								Math.ceil(_this.watermarkPreviewDel.offsetWidth / 2)) + 'px';
						}, 200);
					}
					else
					{
						_this.watermarkPreviewCont.style.display = "none";
					}
				};
				this.watermarkPreviewCont = BX(this.id + '_wmark_preview_cont');
				this.watermarkPreviewDel = BX(this.id + '_wmark_preview_del');
				this.watermarkPreviewDel.onclick = function()
				{
					_this.watermarkPreview.src = '/bitrix/images/1.gif';
					_this.watermarkPreviewCont.style.display = "none";
					_this.setWMFile('', 0, 0);
				};
			}
			if (this.pImgInput)
			{
				this.watermarkPreview.src = path;
				this.watermarkPreview.style.display = '';
				this.SaveUserOption('file', path, fileWidth, fileHeight);
			}
		},
		setWMOpacity : function(val)
		{
			if (!this.oTextOpacity)
			{
				this.oTextOpacity = new OpacityControl({
					currentValue: val
				});
				BX.addCustomEvent(this.oTextOpacity, "onChange", BX.proxy(this.setWMOpacity, this));
				BX(this.id + '_img_but_cont').appendChild(BX.create("DIV", {props: {className: 'bxiu-opacity-cont'}})).appendChild(this.oTextOpacity.pCont);
//				this.form.photo_watermark_opacity.value = val;
			}
			if (this.oTextOpacity)
			{
				this.SaveUserOption('opacity', val);
			}
		},
		InitImageTypeControls: function(position, size)
		{
			var _this = this;
			this.imgButCont = BX(this.id + '_img_but_cont');

			// Position
			this.oImagePosition = new Popup({
				id: 'position_image',
				classPrefix: 'bxiu-but-pos-',
				items: [
					{value: "TopLeft", title: BX.message("IUTopLeft")},
					{value: "TopCenter", title: BX.message("IUTopCenter")},
					{value: "TopRight", title: BX.message("IUTopRight")},
					{value: "CenterLeft", title: BX.message("IUCenterLeft")},
					{value: "Center", title: BX.message("IUCenter")},
					{value: "CenterRight", title: BX.message("IUCenterRight")},
					{value: "BottomLeft", title: BX.message("IUBottomLeft")},
					{value: "BottomCenter", title: BX.message("IUBottomCenter")},
					{value: "BottomRight", title: BX.message("IUBottomRight")}
				],
				currentValue: position,
				title: BX.message("IUPositionTitle"),
				OnCreate: function(obj)
				{
					obj.type = _this.type;
					BX.addClass(obj.pWnd, 'bxiu-but-pos-center');
					BX.addClass(obj.oPopup.Get(), 'bxiu-pos-popup');
				}
			});
			BX.addCustomEvent(this.oTextPosition, "onChange", BX.proxy(function(val)
			{
				this.oImagePosition.pWnd.className = 'bxiu-but bxiu-but-pos-' + val.toLowerCase();
				this.setWMPosition(val);
			}, this));
			this.imgButCont.appendChild(BX.create("DIV", {props: {className: 'bxiu-but-cont'}})).appendChild(this.oImagePosition.pWnd);

			// Image size
			this.oImgSize = new Popup({
				id: 'size_image',
				classPrefix: 'bxiu-but-i-size-',
				items: [
					{value: "real", title: BX.message("IUSizeReal")},
					{value: "big", title: BX.message("IUSizeBig")},
					{value: "middle", title: BX.message("IUSizeMiddle")},
					{value: "small", title: BX.message("IUSizeSmall")}
				],
				currentValue: size,
				title: BX.message("IUSizeTitle"),
				OnCreate: function(obj)
				{
					obj.type = _this.type;
					BX.addClass(obj.pWnd, 'bxiu-but-i-size-real');
					BX.addClass(obj.oPopup.Get(), 'bxiu-img-size-popup');
				}
			});
			BX.addCustomEvent(this.oTextPosition, "onChange", BX.proxy(function(val)
			{
				this.oImgSize.pWnd.className = 'bxiu-but bxiu-but-t-size-' + val.toLowerCase();
				this.setWMSize(val);
			}, this));
			this.imgButCont.appendChild(BX.create("DIV", {props: {className: 'bxiu-but-cont'}})).appendChild(this.oImgSize.pWnd);
		}
	};
}(window));

Zerion Mini Shell 1.0