/**
* Display a debugging area.
*
* This function is highly inspired by the Query Monitor.
* https://wordpress.org/plugins/query-monitor/
*
* Note: in order for this function to display the sql queries, 'SAVEQUERIES' should be defined as true in 'wp-config.php'
*/
function wsl_display_dev_mode_debugging_area($keyword = 'wsl_')
{
    global $wpdb, $wp_actions, $wp_filter;
    ?>
<style>
	.wsl-dev-nonselectsql {
		color: #a0a !important;
	}
	.wsl-dev-expensivesql {
		color: #f44 !important;
	}
	.wsl-dev-optionfunc {
		color: #4a4 !important;
	}
	.wsl-dev-wslfunc {
		color: #1468fa !important;
	}
	.wsl-dev-nonwslfunc {
		color: #a0a !important;
	}
	.wsl-dev-usedhook, .wsl-dev-usedhook a {
		color: #1468fa;
	}
	.wsl-dev-usedwslhook {
		color: #a0a !important;
	}
	.wsl-dev-unusedhook, .wsl-dev-unusedhook a{
		color: #a3a3a3 !important;
	}
	.wsl-dev-hookcallback, .wsl-dev-hookcallback a {
		color: #4a4 !important;
	}
	.wsl-dev-table {
		width:100%;
		border: 1px solid #e5e5e5;
		box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
		border-spacing: 0;
		clear: both;
		margin: 0;
		width: 100%;
	}
	.wsl-dev-table td, .wsl-dev-table th {
		border: 1px solid #dddddd;
		padding: 8px 10px;
		background-color: #fff;
		text-align: left;
	}
</style>

<?php 
    if (class_exists('Hybrid_Error', false) && Hybrid_Error::getApiError()) {
        ?>
			<h4>Provider API Error</h4>
			<table class="wsl-dev-table">
				<tr>
					<td>
						<?php 
        echo Hybrid_Error::getApiError();
        ?>
					</td>
				</tr>
			</table>
		<?php 
    }
    ?>

	<h4>SQL Queries</h4>
	<table class="wsl-dev-table">
		<tr>
			<td colspan="3">
				1. SAVEQUERIES should be defined and set to TRUE in order for the queries to show up (http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis)
				<br />
				2. Calls for get_option() don't necessarily result on a query to the database. WP use both cache and wp_load_alloptions() to load all options at once. Hence, it won't be shown here.
			</td>
		</tr>
		<?php 
    $queries = $wpdb->queries;
    $total_wsl_queries = 0;
    $total_wsl_queries_time = 0;
    if ($queries) {
        foreach ($queries as $item) {
            $sql = trim($item[0]);
            $time = $item[1];
            $stack = $item[2];
            $sql = str_ireplace(array(' FROM ', ' WHERE ', ' LIMIT ', ' GROUP BY ', ' ORDER BY ', ' SET '), array("\n" . 'FROM ', "\n" . 'WHERE ', "\n" . 'LIMIT ', "\n" . 'GROUP BY ', "\n" . 'ORDER BY ', "\n" . 'SET '), $sql);
            # https://wordpress.org/plugins/query-monitor/
            $callers = explode(',', $stack);
            $caller = trim(end($callers));
            if (false !== strpos($caller, '(')) {
                $caller_name = substr($caller, 0, strpos($caller, '(')) . '()';
            } else {
                $caller_name = $caller;
            }
            if (stristr($caller_name, $keyword) || stristr($sql, $keyword) || stristr($stack, $keyword)) {
                ?>
							<tr>
								<td valign="top" width="450">
									<?php 
                if (stristr($caller_name, $keyword)) {
                    ?>
										<a href="https://github.com/hybridauth/WordPress-Social-Login/search?q=<?php 
                    echo $caller_name;
                    ?>
" target="_blank" class="wsl-dev-wslfunc"><?php 
                    echo $caller_name;
                    ?>
</a>
									<?php 
                } else {
                    ?>
										<a href="https://developer.wordpress.org/?s=<?php 
                    echo $caller_name;
                    ?>
" target="_blank" class="wsl-dev-nonwslfunc<?php 
                    if (stristr($caller_name, '_option')) {
                        echo "- wsl-dev-optionfunc";
                    }
                    ?>
"><?php 
                    echo $caller_name;
                    ?>
</a>
									<?php 
                }
                ?>

									<p style="font-size:11px; margin-left:10px">
										<?php 
                if (count($callers)) {
                    # God damn it
                    for ($i = count($callers) - 1; $i > 0; $i--) {
                        if (!stristr($callers[$i], '.php') && !stristr($callers[$i], 'call_user_func_')) {
                            echo "#{$i} &nbsp; " . $callers[$i] . '<br />';
                        }
                    }
                }
                ?>
									</p>
								</td>
								<td valign="top" class="<?php 
                if (!stristr('#' . $sql, '#select ')) {
                    echo 'wsl-dev-nonselectsql';
                }
                ?>
"><?php 
                echo nl2br($sql);
                ?>
</td>
								<td valign="top" width="50" nowrap class="<?php 
                if ($time > 0.05) {
                    echo 'wsl-dev-expensivesql';
                }
                ?>
"><?php 
                echo number_format($time, 4, '.', '');
                ?>
</td>
							</tr>
						<?php 
                $total_wsl_queries++;
                $total_wsl_queries_time += $time;
            }
        }
    }
    ?>
		<tr>
			<td colspan="2">Total SQL Queries by WSL : <?php 
    echo $total_wsl_queries;
    ?>
</td>
			<td width="50" nowrap><?php 
    echo number_format($total_wsl_queries_time, 4, '.', '');
    ?>
</td>
		</tr>
	</table>

	<h4>Hooks</h4>
	<table class="wsl-dev-table">
		<?php 
    if ($wp_actions) {
        foreach ($wp_actions as $name => $count) {
            if (isset($wp_filter[$name])) {
                $action = $wp_filter[$name];
                if ($action) {
                    foreach ($action as $priority => $callbacks) {
                        foreach ($callbacks as $callback) {
                            if (isset($callback['function']) && is_string($callback['function'])) {
                                if (stristr($callback['function'], $keyword) || stristr($name, $keyword)) {
                                    ?>
												<tr>
													<td valign="top" width="270" nowrap class="wsl-dev-usedhook">
														<?php 
                                    if (stristr($name, $keyword)) {
                                        ?>
																	<a class="wsl-dev-usedwslhook" href="https://github.com/hybridauth/WordPress-Social-Login/search?q=<?php 
                                        echo $name;
                                        ?>
" target="_blank"><?php 
                                        echo $name;
                                        ?>
</a>
																<?php 
                                    } else {
                                        echo $name;
                                    }
                                    ?>
													</td>
													<td valign="top" class="wsl-dev-hookcallback">
														<?php 
                                    if (stristr($callback['function'], $keyword)) {
                                        ?>
																	<a href="https://github.com/hybridauth/WordPress-Social-Login/search?q=<?php 
                                        echo $callback['function'];
                                        ?>
" target="_blank"><?php 
                                        echo $callback['function'];
                                        ?>
</a>
																<?php 
                                    } else {
                                        echo $callback['function'];
                                    }
                                    // I hit a record
                                    ?>
													</td>
													<td valign="top" width="50">
														<?php 
                                    echo $priority;
                                    ?>
													</td>
													<td valign="top" width="50">
														<?php 
                                    echo $callback['accepted_args'];
                                    ?>
													</td>
												</tr>
											<?php 
                                }
                            }
                        }
                    }
                }
            } elseif (stristr($name, $keyword)) {
                ?>
							<tr>
								<td valign="top" width="270" nowrap class="wsl-dev-unusedhook">
									<a href="https://github.com/hybridauth/WordPress-Social-Login/search?q=<?php 
                echo $name;
                ?>
" target="_blank"><?php 
                echo $name;
                ?>
</a>
								</td>
								<td></td>
								<td></td>
								<td></td>
							</tr>
						<?php 
            }
        }
    }
    ?>
	</table>

	<h4>PHP Session</h4>
	<table class="wsl-dev-table">
		<?php 
    foreach ($_SESSION as $k => $v) {
        ?>
			<tr><th width="270"><label><?php 
        echo $k;
        ?>
</label></th><td><?php 
        print_r($v);
        ?>
</td></tr>
		<?php 
    }
    ?>
		</tbody>
	</table>

	<h4>Wordpress</h4>
	<table class="wsl-dev-table">
		<tbody>
			<tr><th width="270"><label>Version</label></th><td><?php 
    echo get_bloginfo('version');
    ?>
</td></tr>
			<tr><th><label>Multi-site</label></th><td><?php 
    echo is_multisite() ? 'Yes' . "\n" : 'No';
    ?>
</td></tr>
			<tr><th><label>Site url</label></th><td><?php 
    echo site_url();
    ?>
</td></tr>
			<tr><th><label>Home url</label></th><td><?php 
    echo home_url();
    ?>
</td></tr>
			<tr><th><label>Plugins url</label></th><td><?php 
    echo plugins_url();
    ?>
</td></tr>
		</tbody>
	</table>

	<h4>WSL</h4>
	<table class="wsl-dev-table">
		<tbody>
			<tr><th width="270"><label>Version</label></th><td><?php 
    echo wsl_get_version();
    ?>
</td></tr>
			<tr><th><label>Plugin path</label></th><td><?php 
    echo WORDPRESS_SOCIAL_LOGIN_ABS_PATH;
    ?>
</td></tr>
			<tr><th><label>Plugin url</label></th><td><?php 
    echo WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL;
    ?>
</td></tr>
			<tr><th><label>HA endpoint</label></th><td><?php 
    echo WORDPRESS_SOCIAL_LOGIN_HYBRIDAUTH_ENDPOINT_URL;
    ?>
</td></tr>
		</tbody>
	</table>

	<h4>Website</h4>
	<table class="wsl-dev-table">
		<tbody>
			<tr><th width="270"><label>IP</label></th><td><?php 
    echo $_SERVER['SERVER_ADDR'];
    ?>
</td></tr>
			<tr><th><label>Domain</label></th><td><?php 
    echo $_SERVER['HTTP_HOST'];
    ?>
</td></tr>
			<tr><th><label>Port</label></th><td><?php 
    echo isset($_SERVER['SERVER_PORT']) ? 'On (' . $_SERVER['SERVER_PORT'] . ')' : 'N/A';
    ?>
</td></tr>
			<tr><th><label>X Forward</label></th><td><?php 
    echo isset($_SERVER['HTTP_X_FORWARDED_PROTO']) ? 'On (' . $_SERVER['HTTP_X_FORWARDED_PROTO'] . ')' : 'N/A';
    ?>
</td></tr>
		</tbody>
	</table>

	<h4>Software</h4>
	<table class="wsl-dev-table">
		<tbody>
			<tr><th width="270"><label>Server</label></th><td><?php 
    echo $_SERVER['SERVER_SOFTWARE'];
    ?>
</td></tr>
			<tr><th><label>PHP</label></th><td><?php 
    echo PHP_VERSION;
    ?>
</td></tr>
			<tr><th><label>MySQL</label></th><td><?php 
    echo $wpdb->db_version();
    ?>
</td></tr>
			<tr><th><label>Time</label></th><td><?php 
    echo date(DATE_ATOM, time());
    ?>
 / <?php 
    echo time();
    ?>
</td></tr>
		</tbody>
	</table>

	<h4>MySQL</h4>
	<table class="wsl-dev-table">
		<tbody>
			<tr><th width="270"><label>Host</label></th><td><?php 
    echo $wpdb->dbhost;
    ?>
</td></tr>
			<tr><th><label>User</label></th><td><?php 
    echo $wpdb->dbuser;
    ?>
</td></tr>
			<tr><th><label>Database</label></th><td><?php 
    echo $wpdb->dbname;
    ?>
</td></tr>
			<tr><th><label>Prefix</label></th><td><?php 
    echo $wpdb->prefix;
    ?>
</td></tr>
			<tr><th><label>Base_prefix</label></th><td><?php 
    echo $wpdb->prefix;
    ?>
</td></tr>
			<tr><th><label>Num_queries</label></th><td><?php 
    echo $wpdb->num_queries;
    ?>
</td></tr>
		</tbody>
	</table>
<?php 
}
/**
* Display an error message in case user authentication fails
*/
function wsl_process_login_render_error_page($e, $config = null, $provider = null, $adapter = null)
{
    // HOOKABLE:
    do_action("wsl_process_login_render_error_page", $e, $config, $provider, $adapter);
    $assets_base_url = WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL . 'assets/img/';
    $message = _wsl__("Unspecified error!", 'wordpress-social-login');
    $notes = "";
    $apierror = substr($e->getMessage(), 0, 145);
    switch ($e->getCode()) {
        case 0:
            $message = _wsl__("Unspecified error.", 'wordpress-social-login');
            break;
        case 1:
            $message = _wsl__("WordPress Social Login is not properly configured.", 'wordpress-social-login');
            break;
        case 2:
            $message = sprintf(__wsl__("WordPress Social Login is not properly configured.<br /> <b>%s</b> need to be properly configured.", 'wordpress-social-login'), $provider);
            break;
        case 3:
            $message = _wsl__("Unknown or disabled provider.", 'wordpress-social-login');
            break;
        case 4:
            $message = sprintf(_wsl__("WordPress Social Login is not properly configured.<br /> <b>%s</b> requires your application credentials.", 'wordpress-social-login'), $provider);
            $notes = sprintf(_wsl__("<b>What does this error mean ?</b><br />Most likely, you didn't setup the correct application credentials for this provider. These credentials are required in order for <b>%s</b> users to access your website and for WordPress Social Login to work.", 'wordpress-social-login'), $provider) . _wsl__('<br />Instructions for use can be found in the <a href="http://miled.github.io/wordpress-social-login/networks.html" target="_blank">User Manual</a>.', 'wordpress-social-login');
            break;
        case 5:
            $message = sprintf(_wsl__("Authentication failed. Either you have cancelled the authentication or <b>%s</b> refused the connection.", 'wordpress-social-login'), $provider);
            break;
        case 6:
            $message = sprintf(_wsl__("Request failed. Either you have cancelled the authentication or <b>%s</b> refused the connection.", 'wordpress-social-login'), $provider);
            break;
        case 7:
            $message = _wsl__("You're not connected to the provider.", 'wordpress-social-login');
            break;
        case 8:
            $message = _wsl__("Provider does not support this feature.", 'wordpress-social-login');
            break;
    }
    if (is_object($adapter)) {
        $adapter->logout();
    }
    // provider api response
    if (class_exists('Hybrid_Error', false) && Hybrid_Error::getApiError()) {
        $tmp = Hybrid_Error::getApiError();
        $apierror = $apierror . "\n" . '<br />' . $tmp;
        // network issue
        if (trim($tmp) == '0.') {
            $apierror = "Could not establish connection to provider API";
        }
    }
    return wsl_render_error_page($message, $notes, $provider, $apierror, $e);
}
function wsl_component_authtest()
{
    // HOOKABLE:
    do_action("wsl_component_authtest_start");
    $adapter = null;
    $provider_id = isset($_REQUEST["provider"]) ? $_REQUEST["provider"] : null;
    $user_profile = null;
    $assets_base_url = WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL . 'assets/img/';
    if (!class_exists('Hybrid_Auth', false)) {
        require_once WORDPRESS_SOCIAL_LOGIN_ABS_PATH . "hybridauth/Hybrid/Auth.php";
    }
    try {
        $provider = Hybrid_Auth::getAdapter($provider_id);
        // make as few call as possible
        if (!(isset($_SESSION['wsl::userprofile']) && $_SESSION['wsl::userprofile'] && ($user_profile = json_decode($_SESSION['wsl::userprofile'])))) {
            $user_profile = $provider->getUserProfile();
            $_SESSION['wsl::userprofile'] = json_encode($user_profile);
        }
        $adapter = $provider->adapter;
    } catch (Exception $e) {
    }
    $ha_profile_fields = array(array('field' => 'identifier', 'label' => _wsl__("Provider user ID", 'wordpress-social-login')), array('field' => 'profileURL', 'label' => _wsl__("Profile URL", 'wordpress-social-login')), array('field' => 'webSiteURL', 'label' => _wsl__("Website URL", 'wordpress-social-login')), array('field' => 'photoURL', 'label' => _wsl__("Photo URL", 'wordpress-social-login')), array('field' => 'displayName', 'label' => _wsl__("Display name", 'wordpress-social-login')), array('field' => 'description', 'label' => _wsl__("Description", 'wordpress-social-login')), array('field' => 'firstName', 'label' => _wsl__("First name", 'wordpress-social-login')), array('field' => 'lastName', 'label' => _wsl__("Last name", 'wordpress-social-login')), array('field' => 'gender', 'label' => _wsl__("Gender", 'wordpress-social-login')), array('field' => 'language', 'label' => _wsl__("Language", 'wordpress-social-login')), array('field' => 'age', 'label' => _wsl__("Age", 'wordpress-social-login')), array('field' => 'birthDay', 'label' => _wsl__("Birth day", 'wordpress-social-login')), array('field' => 'birthMonth', 'label' => _wsl__("Birth month", 'wordpress-social-login')), array('field' => 'birthYear', 'label' => _wsl__("Birth year", 'wordpress-social-login')), array('field' => 'email', 'label' => _wsl__("Email", 'wordpress-social-login')), array('field' => 'phone', 'label' => _wsl__("Phone", 'wordpress-social-login')), array('field' => 'address', 'label' => _wsl__("Address", 'wordpress-social-login')), array('field' => 'country', 'label' => _wsl__("Country", 'wordpress-social-login')), array('field' => 'region', 'label' => _wsl__("Region", 'wordpress-social-login')), array('field' => 'city', 'label' => _wsl__("City", 'wordpress-social-login')), array('field' => 'zip', 'label' => _wsl__("Zip", 'wordpress-social-login')));
    ?>
<style>
	.widefat td, .widefat th { border: 1px solid #DDDDDD; }
	.widefat th label { font-weight: bold; }

	.wp-social-login-provider-list { padding: 10px; }
	.wp-social-login-provider-list a {text-decoration: none; }
	.wp-social-login-provider-list img{ border: 0 none; }
</style>

<div class="metabox-holder columns-2" id="post-body">
	<table width="100%">
		<tr valign="top">
			<td>
				<?php 
    if (!$adapter) {
        ?>
					<div style="padding: 15px; margin-bottom: 8px; border: 1px solid #ddd; background-color: #fff;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);">
						<p><?php 
        _wsl_e("Connect with a provider to get started", 'wordpress-social-login');
        ?>
.</p>
					</div>
				<?php 
    } else {
        ?>
					<div class="stuffbox">
						<h3>
							<label><?php 
        _wsl_e("Connected adapter specs", 'wordpress-social-login');
        ?>
</label>
						</h3>
						<div class="inside">
							<table class="wp-list-table widefat">
								<tr>
									<th width="200"><label><?php 
        _wsl_e("Provider", 'wordpress-social-login');
        ?>
</label></th>
									<td><?php 
        echo $adapter->providerId;
        ?>
</td>
								</tr>

								<?php 
        if (isset($adapter->openidIdentifier)) {
            ?>
									<tr>
										<th width="200"><label><?php 
            _wsl_e("OpenID Identifier", 'wordpress-social-login');
            ?>
</label></th>
										<td><?php 
            echo $adapter->openidIdentifier;
            ?>
</td>
									</tr>
								<?php 
        }
        ?>

								<?php 
        if (isset($adapter->scope)) {
            ?>
									<tr>
										<th width="200"><label><?php 
            _wsl_e("Scope", 'wordpress-social-login');
            ?>
</label></th>
										<td><?php 
            echo $adapter->scope;
            ?>
</td>
									</tr>
								<?php 
        }
        ?>

								<?php 
        if (isset($adapter->config['keys'])) {
            ?>
									<tr>
										<th width="200"><label><?php 
            _wsl_e("Application keys", 'wordpress-social-login');
            ?>
</label></th>
										<td><div style="max-width:650px"><?php 
            echo json_encode($adapter->config['keys']);
            ?>
</div></td>
									</tr>
								<?php 
        }
        ?>

								<?php 
        if ($adapter->token("access_token")) {
            ?>
									<tr>
										<th width="200"><label><?php 
            _wsl_e("Access token", 'wordpress-social-login');
            ?>
</label></th>
										<td><div style="max-width:650px"><?php 
            echo $adapter->token("access_token");
            ?>
</div></td>
									</tr>
								<?php 
        }
        ?>

								<?php 
        if ($adapter->token("access_token_secret")) {
            ?>
									<tr>
										<th width="200"><label><?php 
            _wsl_e("Access token secret", 'wordpress-social-login');
            ?>
</label></th>
										<td><?php 
            echo $adapter->token("access_token_secret");
            ?>
</td>
									</tr>
								<?php 
        }
        ?>

								<?php 
        if ($adapter->token("expires_in")) {
            ?>
									<tr>
										<th width="200"><label><?php 
            _wsl_e("Access token expires in", 'wordpress-social-login');
            ?>
</label></th>
										<td><?php 
            echo (int) $adapter->token("expires_at") - time();
            ?>
 <?php 
            _wsl_e("second(s)", 'wordpress-social-login');
            ?>
</td>
									</tr>
								<?php 
        }
        ?>

								<?php 
        if ($adapter->token("expires_at")) {
            ?>
									<tr>
										<th width="200"><label><?php 
            _wsl_e("Access token expires at", 'wordpress-social-login');
            ?>
</label></th>
										<td><?php 
            echo date(DATE_W3C, $adapter->token("expires_at"));
            ?>
</td>
									</tr>
								<?php 
        }
        ?>
							</table>
						</div>
					</div>

					<?php 
        $console = false;
        if (!isset($adapter->openidIdentifier)) {
            ?>
						<div class="stuffbox">
							<h3>
								<label><?php 
            _wsl_e("Connected adapter console", 'wordpress-social-login');
            ?>
</label>
							</h3>
							<div class="inside">
								<?php 
            $path = isset($adapter->api->api_base_url) ? $adapter->api->api_base_url : '';
            $path = isset($_REQUEST['console-path']) ? $_REQUEST['console-path'] : $path;
            $method = isset($_REQUEST['console-method']) ? $_REQUEST['console-method'] : '';
            $query = isset($_REQUEST['console-query']) ? $_REQUEST['console-query'] : '';
            $response = '';
            if ($path && in_array($method, array('GET', 'POST'))) {
                $console = true;
                try {
                    if ($method == 'GET') {
                        $response = $adapter->api->get($path . ($query ? '?' . $query : ''));
                    } else {
                        $response = $adapter->api->get($path, $query);
                    }
                    $response = $response ? $response : Hybrid_Error::getApiError();
                } catch (Exception $e) {
                    $response = "ERROR: " . $e->getMessage();
                }
            }
            ?>
								<form action="" method="post"/>
									<table class="wp-list-table widefat">
										<tr>
											<th width="200"><label><?php 
            _wsl_e("Path", 'wordpress-social-login');
            ?>
</label></th>
											<td><input type="text" style="width:96%" name="console-path" value="<?php 
            echo htmlentities($path);
            ?>
"><a href="https://apigee.com/providers" target="_blank"><img src="<?php 
            echo $assets_base_url . 'question.png';
            ?>
" style="vertical-align: text-top;" /></a></td>
										</tr>
										<tr>
											<th width="200"><label><?php 
            _wsl_e("Method", 'wordpress-social-login');
            ?>
</label></th>
											<td><select style="width:100px" name="console-method"><option value="GET" <?php 
            if ($method == 'GET') {
                echo 'selected';
            }
            ?>
>GET</option><!-- <option value="POST" <?php 
            if ($method == 'POST') {
                echo 'selected';
            }
            ?>
>POST</option>--></select></td>
										</tr>
										<tr>
											<th width="200"><label><?php 
            _wsl_e("Query", 'wordpress-social-login');
            ?>
</label></th>
											<td><textarea style="width:100%;height:60px;margin-top:6px;" name="console-query"><?php 
            echo htmlentities($query);
            ?>
</textarea></td>
										</tr>
									</table>

									<br />

									<input type="submit" value="<?php 
            _wsl_e("Submit", 'wordpress-social-login');
            ?>
" class="button">
								</form>
							</div>
						</div>

						<?php 
            if ($console) {
                ?>
							<div class="stuffbox">
								<h3>
									<label><?php 
                _wsl_e("API Response", 'wordpress-social-login');
                ?>
</label>
								</h3>
								<div class="inside">
									<textarea rows="25" cols="70" wrap="off" style="width:100%;height:400px;margin-bottom:15px;font-family: monospace;font-size: 12px;"><?php 
                echo htmlentities(print_r($response, true));
                ?>
</textarea>
								</div>
							</div>
						<?php 
                if (0) {
                    ?>
							<div class="stuffbox">
								<h3>
									<label><?php 
                    _wsl_e("Code PHP", 'wordpress-social-login');
                    ?>
</label>
								</h3>
								<div class="inside">
<textarea rows="25" cols="70" wrap="off" style="width:100%;height:210px;margin-bottom:15px;font-family: monospace;font-size: 12px;"
>include_once WORDPRESS_SOCIAL_LOGIN_ABS_PATH . 'hybridauth/Hybrid/Auth.php';

/*!
	Important

	Direct access to providers apis is newly introduced into WSL and we are still experimenting, so they may change in future releases.
*/

try
{
    $<?php 
                    echo strtolower($adapter->providerId);
                    ?>
 = Hybrid_Auth::getAdapter( '<?php 
                    echo htmlentities($provider_id);
                    ?>
' );

<?php 
                    if ($method == 'GET') {
                        ?>
    $response = $<?php 
                        echo strtolower($adapter->providerId);
                        ?>
->api()->get( '<?php 
                        echo htmlentities($path . ($query ? '?' . $query : ''));
                        ?>
' );
<?php 
                    } else {
                        ?>
    $response = $<?php 
                        echo strtolower($adapter->providerId);
                        ?>
->api()->post( '<?php 
                        echo htmlentities($path);
                        ?>
', (array) $query );
<?php 
                    }
                    ?>
}
catch( Exception $e )
{
    echo "Ooophs, we got an error: " . $e->getMessage();
}</textarea>
								</div>
							</div>
							<div class="stuffbox">
								<h3>
									<label><?php 
                    _wsl_e("Connected adapter debug", 'wordpress-social-login');
                    ?>
</label>
								</h3>
								<div class="inside">
									<textarea rows="25" cols="70" wrap="off" style="width:100%;height:400px;margin-bottom:15px;font-family: monospace;font-size: 12px;"><?php 
                    echo htmlentities(print_r($adapter, true));
                    ?>
</textarea>
								</div>
							</div>
							<div class="stuffbox">
								<h3>
									<label><?php 
                    _wsl_e("PHP Session", 'wordpress-social-login');
                    ?>
</label>
								</h3>
								<div class="inside">
									<textarea rows="25" cols="70" wrap="off" style="width:100%;height:350px;margin-bottom:15px;font-family: monospace;font-size: 12px;"><?php 
                    echo htmlentities(print_r($_SESSION, true));
                    ?>
</textarea>
								</div>
							</div>
						<?php 
                }
                ?>
						<?php 
            }
            ?>
					<?php 
        }
        ?>

					<?php 
        if (!$console) {
            ?>
						<div class="stuffbox">
							<h3>
								<label><?php 
            _wsl_e("Connected user social profile", 'wordpress-social-login');
            ?>
</label>
							</h3>
							<div class="inside">
								<table class="wp-list-table widefat">
									<?php 
            $user_profile = (array) $user_profile;
            foreach ($ha_profile_fields as $item) {
                $item['field'] = $item['field'];
                ?>
											<tr>
												<th width="200">
													<label><?php 
                echo $item['label'];
                ?>
</label>
												</th>
												<td>
													<?php 
                if (isset($user_profile[$item['field']]) && $user_profile[$item['field']]) {
                    $field_value = $user_profile[$item['field']];
                    if (in_array(strtolower($item['field']), array('profileurl', 'websiteurl', 'email'))) {
                        ?>
																	<a href="<?php 
                        if ($item['field'] == 'email') {
                            echo 'mailto:';
                        }
                        echo $field_value;
                        ?>
" target="_blank"><?php 
                        echo $field_value;
                        ?>
</a>
																<?php 
                    } elseif (strtolower($item['field']) == 'photourl') {
                        ?>
																	<a href="<?php 
                        echo $field_value;
                        ?>
" target="_blank"><img width="36" height="36" align="left" src="<?php 
                        echo $field_value;
                        ?>
" style="margin-right: 5px;" > <?php 
                        echo $field_value;
                        ?>
</a>
																<?php 
                    } else {
                        echo $field_value;
                    }
                }
                ?>
												</td>
											</tr>
										<?php 
            }
            ?>
								</table>
							</div>
						</div>
					<?php 
        }
        ?>
				<?php 
    }
    ?>
			</td>
			<td width="10"></td>
			<td width="400">
				<div class="postbox">
					<div class="inside">
						<h3><?php 
    _wsl_e("Authentication Playground", 'wordpress-social-login');
    ?>
</h3>

						<div style="padding:0 20px;">
							<p>
								<?php 
    _wsl_e('Authentication Playground will let you authenticate with the enabled social networks without creating any new user account', 'wordpress-social-login');
    ?>
.
							</p>
							<p>
								<?php 
    _wsl_e('This tool will also give you a direct access to social networks apis via a lightweight console', 'wordpress-social-login');
    ?>
.
							</p>
						</div>
					</div>
				</div>

				</style>
				<div class="postbox">
					<div class="inside">
						<div style="padding:0 20px;">
							<p>
								<?php 
    _wsl_e("Connect with", 'wordpress-social-login');
    ?>
:
							</p>

							<div style="width: 380px; padding: 10px; border: 1px solid #ddd; background-color: #fff;">
								<?php 
    do_action('wordpress_social_login', array('mode' => 'test', 'caption' => ''));
    ?>
							</div>
						</div>
					</div>
				</div>
			</td>
		</tr>
	</table>
</div>
<?php 
    // HOOKABLE:
    do_action("wsl_component_authtest_end");
}