Your IP : 3.144.37.178


Current Path : /var/www/u0635749/data/www/hobbyclick.ru/public/hobbyclick/bitrix/js/landing/ui/form/
Upload File :
Current File : /var/www/u0635749/data/www/hobbyclick.ru/public/hobbyclick/bitrix/js/landing/ui/form/style_form.js

;(function() {
	"use strict";

	BX.namespace("BX.Landing.UI.Form");


	/**
	 * Implements interface for works with style form
	 *
	 * @extends {BX.Landing.UI.Form.BaseForm}
	 *
	 * @param {{[title]: ?string}} data
	 *
	 * @constructor
	 */
	BX.Landing.UI.Form.StyleForm = function(data)
	{
		BX.Landing.UI.Form.BaseForm.apply(this, arguments);
		this.layout.classList.add("landing-ui-form-style");
		this.iframe = "iframe" in data ? data.iframe : null;
		this.header.addEventListener("mouseenter", this.onHeaderEnter.bind(this));
		this.header.addEventListener("mouseleave", this.onHeaderLeave.bind(this));
		this.header.addEventListener("click", this.onHeaderClick.bind(this));
		this.node = "node" in data ? data.node : null;
		this.selector = "selector" in data ? data.selector : null;

		if (this.type === "attrs")
		{
			this.header.classList.add("landing-ui-static");
		}

		if (this.iframe)
		{
			this.onFrameLoad();
		}
	};


	BX.Landing.UI.Form.StyleForm.prototype = {
		constructor: BX.Landing.UI.Form.StyleForm,
		__proto__: BX.Landing.UI.Form.BaseForm.prototype,

		onFrameLoad: function ()
		{
			if (!this.node)
			{
				this.node = [].slice.call(this.iframe.document.querySelectorAll(this.selector));
			}
		},

		onHeaderEnter: function()
		{
			BX.Landing.UI.Highlight.getInstance().show(this.node);
		},

		onHeaderLeave: function()
		{
			BX.Landing.UI.Highlight.getInstance().hide();
		},

		onHeaderClick: function(event)
		{
			event.preventDefault();
		},

		addField: function(field)
		{
			if (field)
			{
				this.fields.add(field);
				this.body.appendChild(field.layout);
			}
		}
	};
})();