public function draw_salesforce_form($form_fields, $service, $field_values = '')
    {
        //hide verision # and hardcoded it to 34.0
        $form_fields .= sprintf('
					<div class="rad_dashboard_account_row">
						<label for="%1$s">%8$s</label>
						<input type="text" value="%15$s" id="%1$s">%22$s
					</div>
					<div class="rad_dashboard_account_row">
						<label for="%3$s">%10$s</label>
						<input type="password" value="%17$s" id="%3$s">%22$s
					</div>
					<div class="rad_dashboard_account_row">
						<label for="%4$s">%11$s</label>
						<input type="password" value="%18$s" id="%4$s">%22$s
					</div>
					<div class="rad_dashboard_account_row">
						<label for="%5$s">%12$s</label>
						<input type="text" value="%19$s" id="%5$s">%22$s
					</div>
					<div class="rad_dashboard_account_row">
						<label for="%6$s">%13$s</label>
						<input type="password" value="%20$s" id="%6$s">%22$s
					</div>
					<div class="rad_dashboard_account_row">
						<label for="%7$s">%14$s</label>
						<input type="password" value="%21$s" id="%7$s">%22$s
					</div>
					<div class="rad_dashboard_account_row">
						<label style="display:none;" for="%2$s">%9$s</label>
						<input type="hidden" value="34.0" id="%2$s">
					</div>
					', esc_attr('url_' . $service), esc_attr('version_' . $service), esc_attr('client_key_' . $service), esc_attr('client_secret_' . $service), esc_attr('username_sf_' . $service), esc_attr('password_sf_' . $service), esc_attr('token_' . $service), __('Instance Number', 'rapidology'), __('Salesforce version #', 'rapidology'), __('Consumer key', 'rapidology'), __('Consumer secret', 'rapidology'), __('Salesforce username', 'rapidology'), __('Salesforce password', 'rapidology'), __('Secuirty token', 'rapidology'), '' !== $field_values && isset($field_values['url']) ? esc_attr($field_values['url']) : '', '' !== $field_values && isset($field_values['version']) ? esc_attr($field_values['version']) : '', '' !== $field_values && isset($field_values['client_key']) ? esc_attr($field_values['client_key']) : '', '' !== $field_values && isset($field_values['client_secret']) ? esc_attr($field_values['client_secret']) : '', '' !== $field_values && isset($field_values['username_sf']) ? esc_attr($field_values['username']) : '', '' !== $field_values && isset($field_values['password_sf']) ? esc_attr($field_values['password']) : '', '' !== $field_values && isset($field_values['token']) ? esc_attr($field_values['token']) : '', RAD_Rapidology::generate_hint(sprintf('<a href="http://www.rapidology.com/docs#' . $service . '" target="_blank">%1$s</a>', __('Click here for more information', 'rapidology')), false));
        return $form_fields;
    }
    public function draw_getresponse_form($form_fields, $service, $field_values)
    {
        $form_fields .= sprintf('
					<div class="rad_dashboard_account_row">
						<label for="%1$s">%2$s</label>
						<input type="password" value="%3$s" id="%1$s">%4$s
					</div>', esc_attr('api_key_' . $service), __('API key', 'rapidology'), '' !== $field_values && isset($field_values['api_key']) ? esc_attr($field_values['api_key']) : '', RAD_Rapidology::generate_hint(sprintf('<a href="http://www.rapidology.com/docs#' . $service . '" target="_blank">%1$s</a>', __('Click here for more information', 'rapidology')), false));
        return $form_fields;
    }
    public function draw_emma_form($form_fields, $service, $field_values)
    {
        $form_fields .= sprintf('
					<div class="rad_dashboard_account_row">
						<label for="%1$s">%4$s</label>
						<input type="password" value="%7$s" id="%1$s">%10$s
					</div>
					<div class="rad_dashboard_account_row">
						<label for="%2$s">%5$s</label>
						<input type="password" value="%8$s" id="%2$s">%10$s
					</div>
					<div class="rad_dashboard_account_row">
						<label for="%3$s">%6$s</label>
						<input type="password" value="%9$s" id="%3$s">%10$s
					</div>', esc_attr('api_key_' . $service), esc_attr('client_id_' . $service), esc_attr('username_' . $service), __('Public API Key', 'rapidology'), __('Private API key', 'rapidology'), __('Account ID', 'rapidology'), '' !== $field_values && isset($field_values['api_key_']) ? esc_html($field_values['api_key_']) : '', '' !== $field_values && isset($field_values['client_id_']) ? esc_html($field_values['client_id_']) : '', '' !== $field_values && isset($field_values['username_']) ? esc_html($field_values['username_']) : '', RAD_Rapidology::generate_hint(sprintf('<a href="http://www.rapidology.com/docs#' . $service . '" target="_blank">%1$s</a>', __('Click here for more information', 'rapidology')), false));
        return $form_fields;
    }
    function form($instance)
    {
        //Defaults
        $instance = wp_parse_args((array) $instance, array('title' => __('Subscribe', 'rapidology'), 'optin_id' => 'empty'));
        $title = $instance['title'];
        $optin_id_saved = $instance['optin_id'];
        # Title
        printf('<p>
				<label for="%1$s">%2$s: </label>
				<input class="widefat" id="%1$s" name="%4$s" type="text" value="%3$s" />
			</p>', esc_attr($this->get_field_id('title')), esc_html__('Title', 'rapidology'), esc_attr($title), esc_attr($this->get_field_name('title')));
        $optins_set = RAD_Rapidology::widget_optins_list();
        $optins_formatted = '';
        foreach ($optins_set as $optin_id => $name) {
            $optins_formatted .= sprintf("<option value='%s' %s>%s</option>", esc_attr($optin_id), selected($optin_id, $optin_id_saved, false), esc_html($name));
        }
        printf('<p>
				<label for="%1$s">%2$s: </label>
				<select class="widefat" id="%1$s" name="%4$s">%5$s</select>
			</p>', esc_attr($this->get_field_id('optin_id')), esc_html__('Select Optin', 'rapidology'), esc_attr($title), esc_attr($this->get_field_name('optin_id')), $optins_formatted);
    }
 /**
  * Creates Aweber account using the data saved to plugin's database.
  * @return object or false
  */
 function get_aweber_account($name)
 {
     if (!class_exists('AWeberAPI')) {
         require_once get_template_directory() . '/includes/subscription/aweber/aweber_api.php';
     }
     $options_array = RAD_Rapidology::get_rapidology_options();
     $account = false;
     if (isset($options_array['accounts']['aweber'][$name])) {
         $consumer_key = $options_array['accounts']['aweber'][$name]['consumer_key'];
         $consumer_secret = $options_array['accounts']['aweber'][$name]['consumer_secret'];
         $access_key = $options_array['accounts']['aweber'][$name]['access_key'];
         $access_secret = $options_array['accounts']['aweber'][$name]['access_secret'];
         try {
             // Aweber requires curl extension to be enabled
             if (!function_exists('curl_init')) {
                 return false;
             }
             $aweber = new AWeberAPI($consumer_key, $consumer_secret);
             if (!$aweber) {
                 return false;
             }
             $account = $aweber->getAccount($access_key, $access_secret);
         } catch (Exception $exc) {
             return false;
         }
     }
     return $account;
 }
    public static function generate_custom_css($form_class, $single_optin = array())
    {
        $font_functions = RAD_Rapidology::load_fonts_class();
        $custom_css = '';
        if (isset($single_optin['form_bg_color']) && '' !== $single_optin['form_bg_color']) {
            $custom_css .= $form_class . ' .rad_rapidology_rapidbar_container, .rad_rapidology_rapidbar_form_container_wrapper, .rad_rapidology_rapidbar_form_header .rad_rapidology_form_text { background-color: ' . $single_optin['form_bg_color'] . ' !important; } ';
            if ('zigzag_edge' === $single_optin['edge_style']) {
                $custom_css .= $form_class . ' .zigzag_edge .rad_rapidology_rapidbar_form_content:before { background: linear-gradient(45deg, transparent 33.33%, ' . $single_optin['form_bg_color'] . ' 33.333%, ' . $single_optin['form_bg_color'] . ' 66.66%, transparent 66.66%), linear-gradient(-45deg, transparent 33.33%, ' . $single_optin['form_bg_color'] . ' 33.33%, ' . $single_optin['form_bg_color'] . ' 66.66%, transparent 66.66%) !important; background-size: 20px 40px !important; } ' . $form_class . ' .zigzag_edge.rad_rapidology_form_right .rad_rapidology_rapidbar_form_content:before, ' . $form_class . ' .zigzag_edge.rad_rapidology_form_left .rad_rapidology_rapidbar_form_content:before { background-size: 40px 20px !important; }
					@media only screen and ( max-width: 767px ) {' . $form_class . ' .zigzag_edge.rad_rapidology_form_right .rad_rapidology_rapidbar_form_content:before, ' . $form_class . ' .zigzag_edge.rad_rapidology_form_left .rad_rapidology_rapidbar_form_content:before { background: linear-gradient(45deg, transparent 33.33%, ' . $single_optin['form_bg_color'] . ' 33.333%, ' . $single_optin['form_bg_color'] . ' 66.66%, transparent 66.66%), linear-gradient(-45deg, transparent 33.33%, ' . $single_optin['form_bg_color'] . ' 33.33%, ' . $single_optin['form_bg_color'] . ' 66.66%, transparent 66.66%) !important; background-size: 20px 40px !important; } ' . '}';
            }
        }
        if (isset($single_optin['header_bg_color']) && '' !== $single_optin['header_bg_color']) {
            $custom_css .= $form_class . ' .rad_rapidology_form_container .rad_rapidology_form_header { background-color: ' . $single_optin['header_bg_color'] . ' !important; } ';
            switch ($single_optin['edge_style']) {
                case 'curve_edge':
                    $custom_css .= $form_class . ' .curve_edge .curve { fill: ' . $single_optin['header_bg_color'] . '} ';
                    break;
                case 'wedge_edge':
                    $custom_css .= $form_class . ' .wedge_edge .triangle { fill: ' . $single_optin['header_bg_color'] . '} ';
                    break;
                case 'carrot_edge':
                    $custom_css .= $form_class . ' .carrot_edge .rad_rapidology_rapidbar_form_content:before { border-top-color: ' . $single_optin['header_bg_color'] . ' !important; } ' . $form_class . ' .carrot_edge.rad_rapidology_form_right .rad_rapidology_rapidbar_form_content:before, ' . $form_class . ' .carrot_edge.rad_rapidology_form_left .rad_rapidology_rapidbar_form_content:before { border-top-color: transparent !important; border-left-color: ' . $single_optin['header_bg_color'] . ' !important; }
						@media only screen and ( max-width: 767px ) {' . $form_class . ' .carrot_edge.rad_rapidology_form_right .rad_rapidology_rapidbar_form_content:before, ' . $form_class . ' .carrot_edge.rad_rapidology_form_left .rad_rapidology_rapidbar_form_content:before { border-top-color: ' . $single_optin['header_bg_color'] . ' !important; border-left-color: transparent !important; }
						}';
                    break;
            }
            if ('dashed' === $single_optin['border_style']) {
                if ('breakout_edge' !== $single_optin['edge_style']) {
                    $custom_css .= $form_class . ' .rad_rapidology_form_container { background-color: ' . $single_optin['header_bg_color'] . ' !important; } ';
                } else {
                    $custom_css .= $form_class . ' .rad_rapidology_header_outer { background-color: ' . $single_optin['header_bg_color'] . ' !important; } ';
                }
            }
        }
        //print_r($single_optin);die();
        if (isset($single_optin['form_button_color']) && '' !== $single_optin['form_button_color'] && isset($single_optin['display_as_link']) && $single_optin['display_as_link'] != 1) {
            $custom_css .= $form_class . ' .rad_rapidology_rapidbar_form_content button { background-color: ' . $single_optin['form_button_color'] . ' !important; } ';
        }
        if (isset($single_optin['border_color']) && '' !== $single_optin['border_color'] && 'no_border' !== $single_optin['border_orientation']) {
            $rapidbar_class = '.rad_rapidology_rapidbar';
            switch ($single_optin['border_style']) {
                case 'letter':
                    $custom_css .= $rapidbar_class . '.rad_rapidology_border_letter { background: repeating-linear-gradient( 135deg, ' . $single_optin['border_color'] . ', ' . $single_optin['border_color'] . ' 10px, #fff 10px, #fff 20px, #f84d3b 20px, #f84d3b 30px, #fff 30px, #fff 40px ) !important; } ';
                    break;
                case 'double':
                    $custom_css .= $rapidbar_class . '.rad_rapidology_border_double { -moz-box-shadow: inset 0 0 0 6px ' . $single_optin['header_bg_color'] . ', inset 0 0 0 8px ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 0 0 0 6px ' . $single_optin['header_bg_color'] . ', inset 0 0 0 8px ' . $single_optin['border_color'] . '; box-shadow: inset 0 0 0 6px ' . $single_optin['header_bg_color'] . ', inset 0 0 0 8px ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['border_color'] . '; } ';
                    switch ($single_optin['border_orientation']) {
                        case 'top':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_double.rad_rapidology_border_position_top { -moz-box-shadow: inset 0 6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 8px 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 0 6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 8px 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset 0 6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 8px 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['border_color'] . '; } ';
                            break;
                        case 'right':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_double.rad_rapidology_border_position_right { -moz-box-shadow: inset -6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset -8px 0 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset -6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset -8px 0 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset -6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset -8px 0 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['border_color'] . '; } ';
                            break;
                        case 'bottom':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_double.rad_rapidology_border_position_bottom { -moz-box-shadow: inset 0 -6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 -8px 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 0 -6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 -8px 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset 0 -6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 -8px 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['border_color'] . '; } ';
                            break;
                        case 'left':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_double.rad_rapidology_border_position_left { -moz-box-shadow: inset 6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset 8px 0 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset 8px 0 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset 6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset 8px 0 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['border_color'] . '; } ';
                            break;
                        case 'top_bottom':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_double.rad_rapidology_border_position_top_bottom { -moz-box-shadow: inset 0 6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 8px 0 0 ' . $single_optin['border_color'] . ', inset 0 -6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 -8px 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 0 6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 8px 0 0 ' . $single_optin['border_color'] . ', inset 0 -6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 -8px 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset 0 6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 8px 0 0 ' . $single_optin['border_color'] . ', inset 0 -6px 0 0 ' . $single_optin['header_bg_color'] . ', inset 0 -8px 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['border_color'] . '; } ';
                            break;
                        case 'left_right':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_double.rad_rapidology_border_position_left_right { -moz-box-shadow: inset 6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset 8px 0 0 0 ' . $single_optin['border_color'] . ', inset -6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset -8px 0 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset 8px 0 0 0 ' . $single_optin['border_color'] . ', inset -6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset -8px 0 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset 6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset 8px 0 0 0 ' . $single_optin['border_color'] . ', inset -6px 0 0 0 ' . $single_optin['header_bg_color'] . ', inset -8px 0 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['border_color'] . '; } ';
                    }
                    break;
                case 'inset':
                    $custom_css .= $rapidbar_class . '.rad_rapidology_border_inset { -moz-box-shadow: inset 0 0 0 3px ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 0 0 0 3px ' . $single_optin['border_color'] . '; box-shadow: inset 0 0 0 3px ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['header_bg_color'] . '; } ';
                    switch ($single_optin['border_orientation']) {
                        case 'top':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_inset.rad_rapidology_border_position_top { -moz-box-shadow: inset 0 3px 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 0 3px 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset 0 3px 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['header_bg_color'] . '; } ';
                            break;
                        case 'right':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_inset.rad_rapidology_border_position_right { -moz-box-shadow: inset -3px 0 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset -3px 0 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset -3px 0 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['header_bg_color'] . '; } ';
                            break;
                        case 'bottom':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_inset.rad_rapidology_border_position_bottom { -moz-box-shadow: inset 0 -3px 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 0 -3px 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset 0 -3px 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['header_bg_color'] . '; } ';
                            break;
                        case 'left':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_inset.rad_rapidology_border_position_left { -moz-box-shadow: inset 3px 0 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 3px 0 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset 3px 0 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['header_bg_color'] . '; } ';
                            break;
                        case 'top_bottom':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_inset.rad_rapidology_border_position_top_bottom { -moz-box-shadow: inset 0 3px 0 0 ' . $single_optin['border_color'] . ', inset 0 -3px 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 0 3px 0 0 ' . $single_optin['border_color'] . ', inset 0 -3px 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset 0 3px 0 0 ' . $single_optin['border_color'] . ', inset 0 -3px 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['header_bg_color'] . '; } ';
                            break;
                        case 'left_right':
                            $custom_css .= $rapidbar_class . '.rad_rapidology_border_inset.rad_rapidology_border_position_left_right { -moz-box-shadow: inset 3px 0 0 0 ' . $single_optin['border_color'] . ', inset -3px 0 0 0 ' . $single_optin['border_color'] . '; -webkit-box-shadow: inset 3px 0 0 0 ' . $single_optin['border_color'] . ', inset -3px 0 0 0 ' . $single_optin['border_color'] . '; box-shadow: inset 3px 0 0 0 ' . $single_optin['border_color'] . ', inset -3px 0 0 0 ' . $single_optin['border_color'] . '; border-color: ' . $single_optin['header_bg_color'] . '; } ';
                    }
                    break;
                case 'solid':
                    $custom_css .= $rapidbar_class . '.rad_rapidology_border_solid { border-color: ' . $single_optin['border_color'] . ' !important; border-style: solid !important;  } ';
                    break;
                case 'dashed':
                    $custom_css .= $rapidbar_class . '.rad_rapidology_border_dashed  { border-color: ' . $single_optin['border_color'] . ' !important; } ';
                    break;
            }
        }
        $custom_css .= isset($single_optin['enable_redirect_form']) && $single_optin['enable_redirect_form'] == '1' ? '
		.rad_power_box_mode_rapidbar, .rad_rapidology_preview_rapidbar .rad_power_box_mode_rapidbar, rad_power_box_mode_rapidbar .rad_power_logo, .rad_rapidology_preview_rapidbar .rad_power_box_mode_rapidbar .rad_power_logo, rad_rapidology_rapidbar, .rad_rapidology_preview_rapidbar, rad_rapidology_rapidbar_form_container_wrapper, .rad_rapidology_preview_rapidbar .rad_rapidology_rapidbar_form_container_wrapper, rad_rapidology_rapidbar_form .rad_rapidology_form_container, .rad_rapidology_preview_rapidbar .rad_rapidology_rapidbar_form .rad_rapidology_form_container, .rad_rapidology_rapidbar_form_header, .rad_rapidology_rapidbar_form_content, .rad_rapidology_preview_rapidbar .rad_rapidology_rapidbar_form_header, .rad_rapidology_rapidbar_form_content{ min-height:35px} .rad_rapidology_rapidbar_form .rad_rapidology_form_text, .rad_rapidology_preview_rapidbar .rad_rapidology_rapidbar_form .rad_rapidology_form_text, .rad_rapidology_rapidbar_form .rad_rapidology_form_text p, .rad_rapidology_preview_rapidbar .rad_rapidology_form_text p, .rad_power_rapidology a .rad_power_logo:after, .rad_rapidology_preview_rapidbar .rad_power_rapidology a .rad_power_logo:after{} .rad_rapidology_rapidbar_form .rad_rapidology_submit_subscription, .rad_rapidology_rapidbar_form .rad_rapidology_redirect_page, .rad_rapidology_preview_rapidbar  .rad_rapidology_submit_subscription, .rad_rapidology_preview_rapidbar .rad_rapidology_redirect_page{ height: 30px;} .rad_rapidology .rad_rapidology_rapidbar_form .rad_rapidology_close_button, .rad_rapidology_preview_rapidbar .rad_rapidology_close_button{ top: 0 !important;}' : '.rad_power_box_mode_rapidbar, .rad_rapidology_preview_rapidbar .rad_power_box_mode_rapidbar, .rad_power_box_mode_rapidbar .rad_power_logo, .rad_rapidology_preview_rapidbar .rad_power_box_mode_rapidbar .rad_power_logo, rad_rapidology_rapidbar, .rad_rapidology_preview_rapidbar, rad_rapidology_rapidbar_form_container_wrapper, .rad_rapidology_preview_rapidbar .rad_rapidology_rapidbar_form_container_wrapper, rad_rapidology_rapidbar_form .rad_rapidology_form_container, .rad_rapidology_preview_rapidbar .rad_rapidology_rapidbar_form .rad_rapidology_form_container, .rad_rapidology_rapidbar_form_header, .rad_rapidology_rapidbar_form_content, .rad_rapidology_preview_rapidbar .rad_rapidology_rapidbar_form_header, .rad_rapidology_rapidbar_form_content{ min-height:50px} .rad_rapidology_rapidbar_form .rad_rapidology_form_text, .rad_rapidology_preview_rapidbar .rad_rapidology_rapidbar_form .rad_rapidology_form_text, .rad_rapidology_rapidbar_form .rad_rapidology_form_text p, .rad_rapidology_preview_rapidbar .rad_rapidology_form_text p, .rad_power_rapidology a .rad_power_logo:after, .rad_rapidology_preview_rapidbar .rad_power_rapidology a .rad_power_logo:after{} .rad_rapidology_rapidbar_form .rad_rapidology_submit_subscription, .rad_rapidology_rapidbar_form .rad_rapidology_redirect_page, .rad_rapidology_preview_rapidbar  .rad_rapidology_submit_subscription, .rad_rapidology_preview_rapidbar .rad_rapidology_redirect_page{ height: 35px;} .rad_rapidology .rad_rapidology_rapidbar_form .rad_rapidology_close_button, .rad_rapidology_preview_rapidbar .rad_rapidology_close_button (top: 15% !important;)
		';
        $custom_css .= isset($single_optin['form_button_color']) && '' !== $single_optin['form_button_color'] && isset($single_optin['display_as_link']) && $single_optin['display_as_link'] != 1 ? $form_class . ' .rad_rapidology_rapidbar_form_content button { background-color: ' . $single_optin['form_button_color'] . ' !important; } ' : '';
        $custom_css .= isset($single_optin['display_as_link']) && $single_optin['display_as_link'] == 1 && $single_optin['button_text_color'] == 'light' ? '.btnaslink_light {background-color: transparent !important;  border: none !important; cursor: pointer !important;}' : '';
        $custom_css .= isset($single_optin['display_as_link']) && $single_optin['display_as_link'] == 1 && $single_optin['button_text_color'] == 'dark' ? '.btnaslink_dark {background-color: transparent !important;  border: none !important; cursor: pointer !important;}' : '';
        $custom_css .= isset($single_optin['header_font']) ? $font_functions->et_gf_attach_font($single_optin['header_font'], $form_class . ' h2, ' . $form_class . ' h2 span, ' . $form_class . ' h2 strong') : '';
        $custom_css .= isset($single_optin['body_font']) ? $font_functions->et_gf_attach_font($single_optin['body_font'], $form_class . ' p, ' . $form_class . ' p span, ' . $form_class . ' p strong, ' . $form_class . ' form input, ' . $form_class . ' form button span') : '';
        $custom_css .= isset($single_optin['custom_css']) ? ' ' . $single_optin['custom_css'] : '';
        return $custom_css;
    }
 /**
  * Adds appropriate actions for Flyin, Popup, Below Content to wp_footer,
  * Adds custom_css function to wp_head
  * Adds trigger_bottom_mark to the_content filter for Flyin and Popup
  * Creates arrays with optins for for Flyin, Popup, Below Content to improve the performance during forms displaying
  */
 function frontend_register_locations()
 {
     $options_array = RAD_Rapidology::grad_rapidology_options();
     if (!is_admin() && !empty($options_array)) {
         add_action('wp_head', array($this, 'set_custom_css'));
         $flyin_count = 0;
         $popup_count = 0;
         $below_count = 0;
         $after_comment = 0;
         $after_purchase = 0;
         foreach ($options_array as $optin_id => $details) {
             if ('accounts' !== $optin_id) {
                 if (isset($details['optin_status']) && 'active' === $details['optin_status'] && empty($details['child_of'])) {
                     switch ($details['optin_type']) {
                         case 'flyin':
                             if (0 === $flyin_count) {
                                 add_action('wp_footer', array($this, "display_flyin"));
                                 $flyin_count++;
                             }
                             if (0 === $after_comment && isset($details['comment_trigger']) && true == $details['comment_trigger']) {
                                 add_filter('comment_post_redirect', array($this, 'after_comment_trigger'));
                                 $after_comment++;
                             }
                             if (0 === $after_purchase && isset($details['purchase_trigger']) && true == $details['purchase_trigger']) {
                                 add_action('woocommerce_thankyou', array($this, 'add_purchase_trigger'));
                                 $after_purchase++;
                             }
                             $this->flyin_optins[$optin_id] = $details;
                             break;
                         case 'pop_up':
                             if (0 === $popup_count) {
                                 add_action('wp_footer', array($this, "display_popup"));
                                 $popup_count++;
                             }
                             if (0 === $after_comment && isset($details['comment_trigger']) && true == $details['comment_trigger']) {
                                 add_filter('comment_post_redirect', array($this, 'after_comment_trigger'));
                                 $after_comment++;
                             }
                             if (0 === $after_purchase && isset($details['purchase_trigger']) && true == $details['purchase_trigger']) {
                                 add_action('woocommerce_thankyou', array($this, 'add_purchase_trigger'));
                                 $after_purchase++;
                             }
                             $this->popup_optins[$optin_id] = $details;
                             break;
                         case 'below_post':
                             if (0 === $below_count) {
                                 add_filter('the_content', array($this, 'display_below_post'), 9999);
                                 add_action('woocommerce_after_single_product_summary', array($this, 'display_on_wc_page'));
                                 $below_count++;
                             }
                             $this->below_post_optins[$optin_id] = $details;
                             break;
                     }
                 }
             }
         }
         if (0 < $flyin_count || 0 < $popup_count) {
             add_filter('the_content', array($this, 'trigger_bottom_mark'), 9999);
         }
     }
 }