function _showDeviceParams( productId, feature ) {
		_stopDevicesRefresh();
		var html = '<h1>' + Utils.getLangString( _prefix + "_param" ) + '</h1>'
				+	'<h3>' + productId + ' - ' + feature.deviceName + ' (#' + feature.deviceId + ')</h3>'
				+	'<div class="scenes_section_delimiter"></div>'
				+	'<div class="' + _prefix + '-toolbar">'
				+		'<button type="button" class="' + _prefix + '-help"><i class="fa fa-question fa-lg text-info" aria-hidden="true"></i>&nbsp;' + Utils.getLangString( _prefix + "_help" ) + '</button>'
				+	'</div>'
				+	'<div class="' + _prefix + '-explanation ' + _prefix + '-hidden">'
				+		Utils.getLangString( _prefix + "_explanation_param" )
				+	'</div>';

		// Button
		html += '<h3>'
			+		_getSettingHtml({
						type: "checkbox",
						className: _prefix + "-hider",
						variable: "button",
						name: "Button",
						value: feature.settings.button
					})
			+	'</h3>'
			+	'<div class="' + _prefix + '-hideable"' + ( !feature.settings.button ? ' style="display: none;"' : '' ) + '>';
		$.each( [ [ 'pulse', 'Pulse' ], [ 'toggle', 'Toggle' ] ], function( i, param ) {
			html += _getSettingHtml({
				type: "checkbox",
				variable: param[0],
				name: param[1],
				value: feature.settings[ param[0] ]
			});
		});
		html += '</div>';

		// Receiver
		html += '<h3>'
			+		_getSettingHtml({
						type: "checkbox",
						className: _prefix + "-hider",
						variable: "receiver",
						name: "Receiver",
						value: feature.settings.receiver
					})
			+	'</h3>'
			+	'<div class="' + _prefix + '-hideable"' + ( !feature.settings.receiver ? ' style="display: none;"' : '' ) + '>';
		html += '</div>';

		// Specific
		var specificHtml = '';
		$.each( feature.settings, function( paramName, paramValue ) {
			if ( $.inArray( paramName, [ 'button', 'pulse', 'toggle', 'receiver', 'qualifier', 'burst' ] ) === -1 ) {
				specificHtml += _getSettingHtml({
					type: ( ( typeof paramValue == "boolean" ) ? "checkbox" : "string" ),
					isReadOnly: true,
					variable: paramName,
					name: paramName,
					value: paramValue
				});
			}
		});
		if ( specificHtml != '' ) {
			html += '<h3>'
			+			'<div class="' + _prefix + '-setting ui-widget-content ui-corner-all">'
			+				'Specific'
			+			'</div>'
			+		'</h3>'
			+		specificHtml;
		}

		html += '<div class="' + _prefix + '-toolbar">'
			+		'<button type="button" class="' + _prefix + '-cancel"><i class="fa fa-times fa-lg text-danger" aria-hidden="true"></i>&nbsp;' + Utils.getLangString( _prefix + "_cancel" ) + '</button>'
			+		'<button type="button" class="' + _prefix + '-set"><i class="fa fa-check fa-lg text-success" aria-hidden="true"></i>&nbsp;'  + Utils.getLangString( _prefix + "_confirm" ) + '</button>'
			+	'</div>';

		$( "#" + _prefix + "-device-params" )
			.html( html )
			.data( 'feature', feature )
			.css( {
				"display": "block",
				"min-height": $( "#" + _prefix + "-known-panel" ).height()
			} )
			.on( "change", "." + _prefix + "-hider", function() {
				var hasToBeVisible = $( this ).is( ':checkbox' ) ? $( this ).is( ':checked' ) : true;
				$( this ).parent().parent()
					.next( "." + _prefix + "-hideable" )
						.css({ 'display': ( hasToBeVisible ? "block": "none" ) });
			});

		_formerScrollTopPosition = $( window ).scrollTop();
		$( window ).scrollTop( $( "#" + _prefix + "-known-panel" ).offset().top - 150 );
	}
/**
	 * Show parameters for an external device
	 */
Show parameters for an external device
Show parameters for an external device
function _showDeviceParams( productId, feature ) {
		_stopDevicesRefresh();
		var html = '<h1>' + Utils.getLangString( _prefix + "_param" ) + '</h1>'
				+	'<h3>' + productId + ' - ' + feature.deviceName + ' (#' + feature.deviceId + ')</h3>'
				+	'<div class="scenes_section_delimiter"></div>'
				+	'<div class="' + _prefix + '-toolbar">'
				+		'<button type="button" class="' + _prefix + '-help"><i class="fa fa-question fa-lg text-info" aria-hidden="true"></i>&nbsp;' + Utils.getLangString( _prefix + "_help" ) + '</button>'
				+	'</div>'
				+	'<div class="' + _prefix + '-explanation ' + _prefix + '-hidden">'
				+		Utils.getLangString( _prefix + "_explanation_param" )
				+	'</div>';
		html += '<h3>'
			+		_getSettingHtml({
						type: "checkbox",
						className: _prefix + "-hider",
						variable: "button",
						name: "Button",
						value: feature.settings.button
					})
			+	'</h3>'
			+	'<div class="' + _prefix + '-hideable"' + ( !feature.settings.button ? ' style="display: none;"' : '' ) + '>';
		$.each( [ [ 'pulse', 'Pulse' ], [ 'toggle', 'Toggle' ] ], function( i, param ) {
			html += _getSettingHtml({
				type: "checkbox",
				variable: param[0],
				name: param[1],
				value: feature.settings[ param[0] ]
			});
		});
		html += '</div>';
		html += '<h3>'
			+		_getSettingHtml({
						type: "checkbox",
						className: _prefix + "-hider",
						variable: "receiver",
						name: "Receiver",
						value: feature.settings.receiver
					})
			+	'</h3>'
			+	'<div class="' + _prefix + '-hideable"' + ( !feature.settings.receiver ? ' style="display: none;"' : '' ) + '>';
		html += '</div>';
		var specificHtml = '';
		$.each( feature.settings, function( paramName, paramValue ) {
			if ( $.inArray( paramName, [ 'button', 'pulse', 'toggle', 'receiver', 'qualifier', 'burst' ] ) === -1 ) {
				specificHtml += _getSettingHtml({
					type: ( ( typeof paramValue == "boolean" ) ? "checkbox" : "string" ),
					isReadOnly: true,
					variable: paramName,
					name: paramName,
					value: paramValue
				});
			}
		});
		if ( specificHtml != '' ) {
			html += '<h3>'
			+			'<div class="' + _prefix + '-setting ui-widget-content ui-corner-all">'
			+				'Specific'
			+			'</div>'
			+		'</h3>'
			+		specificHtml;
		}
		html += '<div class="' + _prefix + '-toolbar">'
			+		'<button type="button" class="' + _prefix + '-cancel"><i class="fa fa-times fa-lg text-danger" aria-hidden="true"></i>&nbsp;' + Utils.getLangString( _prefix + "_cancel" ) + '</button>'
			+		'<button type="button" class="' + _prefix + '-set"><i class="fa fa-check fa-lg text-success" aria-hidden="true"></i>&nbsp;'  + Utils.getLangString( _prefix + "_confirm" ) + '</button>'
			+	'</div>';
		$( "#" + _prefix + "-device-params" )
			.html( html )
			.data( 'feature', feature )
			.css( {
				"display": "block",
				"min-height": $( "#" + _prefix + "-known-panel" ).height()
			} )
			.on( "change", "." + _prefix + "-hider", function() {
				var hasToBeVisible = $( this ).is( ':checkbox' ) ? $( this ).is( ':checked' ) : true;
				$( this ).parent().parent()
					.next( "." + _prefix + "-hideable" )
						.css({ 'display': ( hasToBeVisible ? "block": "none" ) });
			});
		_formerScrollTopPosition = $( window ).scrollTop();
		$( window ).scrollTop( $( "#" + _prefix + "-known-panel" ).offset().top - 150 );
	}
function _showDeviceParams ( productId , feature ) { _stopDevicesRefresh ( ) ; var html = '<h1>' + Utils . getLangString ( _prefix + "_param" ) + '</h1>' + '<h3>' + productId + ' - ' + feature . deviceName + ' (#' + feature . deviceId + ')</h3>' + '<div class="scenes_section_delimiter"></div>' + '<div class="' + _prefix + '-toolbar">' + '<button type="button" class="' + _prefix + '-help"><i class="fa fa-question fa-lg text-info" aria-hidden="true"></i>&nbsp;' + Utils . getLangString ( _prefix + "_help" ) + '</button>' + '</div>' + '<div class="' + _prefix + '-explanation ' + _prefix + '-hidden">' + Utils . getLangString ( _prefix + "_explanation_param" ) + '</div>' ; html += '<h3>' + _getSettingHtml ( { type : "checkbox" , className : _prefix + "-hider" , variable : "button" , name : "Button" , value : feature . settings . button } ) + '</h3>' + '<div class="' + _prefix + '-hideable"' + ( ! feature . settings . button ? ' style="display: none;"' : '' ) + '>' ; $ . each ( [ [ 'pulse' , 'Pulse' ] , [ 'toggle' , 'Toggle' ] ] , function ( i , param ) { html += _getSettingHtml ( { type : "checkbox" , variable : param [ 0 ] , name : param [ 1 ] , value : feature . settings [ param [ 0 ] ] } ) ; } ) ; html += '</div>' ; html += '<h3>' + _getSettingHtml ( { type : "checkbox" , className : _prefix + "-hider" , variable : "receiver" , name : "Receiver" , value : feature . settings . receiver } ) + '</h3>' + '<div class="' + _prefix + '-hideable"' + ( ! feature . settings . receiver ? ' style="display: none;"' : '' ) + '>' ; html += '</div>' ; var specificHtml = '' ; $ . each ( feature . settings , function ( paramName , paramValue ) { if ( $ . inArray ( paramName , [ 'button' , 'pulse' , 'toggle' , 'receiver' , 'qualifier' , 'burst' ] ) === - 1 ) { specificHtml += _getSettingHtml ( { type : ( ( typeof paramValue == "boolean" ) ? "checkbox" : "string" ) , isReadOnly : true , variable : paramName , name : paramName , value : paramValue } ) ; } } ) ; if ( specificHtml != '' ) { html += '<h3>' + '<div class="' + _prefix + '-setting ui-widget-content ui-corner-all">' + 'Specific' + '</div>' + '</h3>' + specificHtml ; } html += '<div class="' + _prefix + '-toolbar">' + '<button type="button" class="' + _prefix + '-cancel"><i class="fa fa-times fa-lg text-danger" aria-hidden="true"></i>&nbsp;' + Utils . getLangString ( _prefix + "_cancel" ) + '</button>' + '<button type="button" class="' + _prefix + '-set"><i class="fa fa-check fa-lg text-success" aria-hidden="true"></i>&nbsp;' + Utils . getLangString ( _prefix + "_confirm" ) + '</button>' + '</div>' ; $ ( "#" + _prefix + "-device-params" ) . html ( html ) . data ( 'feature' , feature ) . css ( { "display" : "block" , "min-height" : $ ( "#" + _prefix + "-known-panel" ) . height ( ) } ) . on ( "change" , "." + _prefix + "-hider" , function ( ) { var hasToBeVisible = $ ( this ) . is ( ':checkbox' ) ? $ ( this ) . is ( ':checked' ) : true ; $ ( this ) . parent ( ) . parent ( ) . next ( "." + _prefix + "-hideable" ) . css ( { 'display' : ( hasToBeVisible ? "block" : "none" ) } ) ; } ) ; _formerScrollTopPosition = $ ( window ) . scrollTop ( ) ; $ ( window ) . scrollTop ( $ ( "#" + _prefix + "-known-panel" ) . offset ( ) . top - 150 ) ; }
Show parameters for an external device
Show parameters for an external device
// Button // Receiver // Specific