PageSourceSearch

https://gylphi.co.uk/form/login

html gylphi.co.uk collected 2026-10-01 12:22:34 UTC 16,929 bytes, 470 lines download raw bytes

1
2
3
4
5<!DOCTYPE html>
6<html lang="en">
7<head>
8<title>Gylphi </title>
9<base href="/">
10<!-- Google Fonts -->
11<link href="https://fonts.googleapis.com/css?family=Permanent+Marker|Lato&display=swap" rel="stylesheet">
12<!-- https://css-tricks.com/snippets/html/responsive-meta-tag/-->
13<meta name="viewport" content="width=device-width">
14<meta name="format-detection" content="telephone=no">
15
16<!-- build book object(s) -->
17
18<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
18
19<!-- Icons -->
20<link rel="preload" href="images/gylphi_logo.png" as="image">
21
22   <!-- Favicons -->
23<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
24<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
25<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
26<link rel="manifest" href="/site.webmanifest">
27<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
28<meta name="msapplication-TileColor" content="#1994cd">
29<meta name="theme-color" content="#ffffff">
30<!-- Favicons -->
31<!--JQuery + Facebook-->
32  
32<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
32
33  <link rel="stylesheet" href="style.css" />
34  
34<script>
35   $(document).ready(function() {
36  $.ajaxSetup({ cache: true });
37  $.getScript('https://connect.facebook.net/en_US/sdk.js', function(){
38    FB.init({
39      appId: '156436093289',
40      version: 'v2.7' // or v2.1, v2.2, v2.3, ...
41    });     
42    $('#loginbutton,#feedbutton').removeAttr('disabled');
43    FB.getLoginStatus(updateStatusCallback);
44  });
45});
46  </script>
46
47<!--JQuery + Facebook End -->
48<!-- Link CSS Stylesheets -->
49
50<link href="styles/header2.css" rel="stylesheet"><link href="styles/sitemap.css" rel="stylesheet"><link href="styles/address.css" rel="stylesheet"><link href="styles/form.css" rel="stylesheet">
51
52<!-- Favicon Links Generated at https://realfavicongenerator.net -->
53<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
54<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
55<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
56<link rel="manifest" href="/site.webmanifest">
57<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
58<meta name="msapplication-TileColor" content="#2bbd90">
59<meta name="theme-color" content="#ffffff">
60<!-- Add twitter cards, see: https://stackoverflow.com/a/49460333, and validate here: https://cards-dev.twitter.com/validator -->
61<style>
62/* min-width: 700 on desktop; min-width:0 on mobile */
63
64a img {
65border:0;
66}
67body {
68margin:0;
69width:100%;
70min-width:900px;
71-webkit-text-size-adjust: 100%;
72background-color: #F7F9F8;
73
74}
75
76/* Image Preloading https://stackoverflow.com/a/14390213/1694526 */
77
78/* Alternative preloading approach using HTML - https://stackoverflow.com/a/41788523/1694526 */
79
80.clearfloats {
81clear:both;
82}
83
84@media (max-device-width: 600px) {
85 body {
86 min-width: 300px ! important;
87 width:100%;
88 
89}
90
91}
92
93@media (max-width: 600px) {
94 body {
95 min-width: 300px ! important;
96 width:100%;
97}
98
99}
100
101
102p.captionwhite {
103font-size:0.6em;
104color:white;
105text-align:center;
106}
107
108
109
110</style>
111<script src="scripts/localstorage.js"></script>
vendor: 1 bytes, line 111
111
112<script>
113
114function hideCookieBar() {
115var cookieper = store('gylphi_cookiepermission');
116$.ajax({
117  method: "POST",
118  url: "cookiecheck",
119  data: { cookiesallowed: cookieper}
120})
121  .done(function( msg ) {
122  	if (msg == 'reload') {
123  	location.reload();
124  	}
125   // else {alert( "Data Saved: ");}
126  });
127  
128}
129
130// https://stackoverflow.com/a/901144/1694526
131function getParameterByName(name, url) {
132    if (!url) url = window.location.href;
133    name = name.replace(/[\[\]]/g, '\\$&');
134    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
135        results = regex.exec(url);
136    if (!results) return null;
137    if (!results[2]) return '';
138    
139    return decodeURIComponent(results[2].replace(/\+/g, ' '));
140
141}
142
143
144  /*
145
146   function statusChangeCallback(response) {  // Called with the results from FB.getLoginStatus().
147       // The current login status of the person.
148  if (getParameterByName(logout)) {
149    FB.logout(function(response) {
150  // user is now logged out
151});
152  }
153    if (response.status === 'connected') {   // Logged into your webpage and Facebook.
154      testAPI();  
155    } else {                                 // Not logged into your webpage or we are unable to tell.
156      // Logout
157      location.href = 'logout';
158    }
159  }
160
161
162  function checkLoginState() {               // Called when a person is finished with the Login Button.
163    FB.getLoginStatus(function(response) {   // See the onlogin handler
164      statusChangeCallback(response);
165    });
166  }
167
168
169  window.fbAsyncInit = function() {
170    FB.init({
171      appId      : ,
172      cookie     : true,                     // Enable cookies to allow the server to access the session.
173      xfbml      : true,                     // Parse social plugins on this webpage.
174      version    : 'v4.0'           // Use this Graph API version for this call.
175    });
176
177
178    FB.getLoginStatus(function(response) {   // Called after the JS SDK has been initialized.
179      statusChangeCallback(response);        // Returns the login status.
180    });
181  };
182
183  
184  (function(d, s, id) {                      // Load the SDK asynchronously
185    var js, fjs = d.getElementsByTagName(s)[0];
186    if (d.getElementById(id)) return;
187    js = d.createElement(s); js.id = id;
188    js.src = "https://connect.facebook.net/en_US/sdk.js";
189    fjs.parentNode.insertBefore(js, fjs);
190  }(document, 'script', 'facebook-jssdk'));
191
192 
193  function testAPI() {                      // Testing Graph API after login.  See statusChangeCallback() for when this call is made.
194    FB.api('/me', function(response) {
195
196$.ajax({
197     type: "POST",
198     url: 'facebooklogin',
199     data: 'ajax=true' + '&id=' + response.id + '&name=' + response.name + '&useremail=' response.email + '&facebook=true', // serializes the form's elements.
200     success: function(data)
201     {
202      var arrayData = JSON.parse(data);
203      location.href = arrayData['url'];
204     }
205});
206}
207*/
208
209</script>
209
210
211</head>
212<body onload="checkLoginState()">
213<div id="fb-root"></div>
214<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v4.0"></script>
vendor: 1 bytes, line 214
214
215<script>
216
217    function statusChangeCallback(response) {  // Called with the results from FB.getLoginStatus().
218        // The current login status of the person.
219 /*if (getParameterByName(logout)) {
220     FB.logout(function(response) {
221   // user is now logged out
222 });
223   }*/
224     if (response.status === 'connected') {   // Logged into your webpage and Facebook.
225       testAPI();  
226     } else {                                 // Not logged into your webpage or we are unable to tell.
227       // Logout
228      // location.href = 'logout';
229     }
230   }
231 
232 
233   function checkLoginState() {               // Called when a person is finished with the Login Button.
234     FB.getLoginStatus(function(response) {   // See the onlogin handler
235       statusChangeCallback(response);
236     });
237   }
238 
239 
240   window.fbAsyncInit = function() {
241     FB.init({
242       appId      : 156436093289,
243       cookie     : true,                     // Enable cookies to allow the server to access the session.
244       xfbml      : true,                     // Parse social plugins on this webpage.
245       version    : 'v4.0'           // Use this Graph API version for this call.
246     });
247 
248 
249     FB.getLoginStatus(function(response) {   // Called after the JS SDK has been initialized.
250       statusChangeCallback(response);        // Returns the login status.
251     });
252   };
253 
254   
255   (function(d, s, id) {                      // Load the SDK asynchronously
256     var js, fjs = d.getElementsByTagName(s)[0];
257     if (d.getElementById(id)) return;
258     js = d.createElement(s); js.id = id;
259     js.src = "https://connect.facebook.net/en_US/sdk.js";
260     fjs.parentNode.insertBefore(js, fjs);
261   }(document, 'script', 'facebook-jssdk'));
262 
263  
264   function testAPI() {                      // Testing Graph API after login.  See statusChangeCallback() for when this call is made.
265     FB.api('/me?fields=name,email,id', function(response) {
266 $.ajax({
267      type: "POST",
268      url: 'facebooklogin',
269      data: {'ajax':true, 'id': response.id, 'name': response.name, 'useremail': response.email, 'facebook':true}, // serializes the form's elements.
270      success: function(data)
271      {        
272       var arrayData = JSON.parse(data);
273       location.href = arrayData['url'];
274      }
275 });
276 });
277
278 } 
279 
280 function logout() {
281    FB.logout(function(response) {
282     // user is now logged out
283    location.href = 'logout';
284    });
285 }</script>
285
286 
286<script async defer src="https://connect.facebook.net/en_US/sdk.js"></script>
286<script src="scripts/localstorage.js"></script>
286
287<div class="gylphi-header">
288<div id="cookiebar">This website makes use of cookies<span class="extra"> to enhance your experience and for additional functionality</span>.&nbsp;&nbsp;<span id="cookies" class="nowrapping"><a href="privacy">Allow Cookies</a></span>&nbsp;&nbsp;<a href="privacy#privacypolicy"><span id="privacy" class="nowrapping">Privacy Policy</span></a></div><h1 class="header-title nowrapping"><a class="header-link" href=""><img width="50" alt="Gylphi Logo" src="images/gylphi_logo.svg" /><span class="white-text">Gylphi</span></a></h1><p class="accountchoices">
289<br /><a class="loz red" href="form/login">Login</a> <a class="loz red" href="form/register">Register</a>
290</p>
291</div>
292<div class="arrow"><input type=checkbox id="show">
293<label class="cent" for="show">=</label>
294<div id="navbar">
295<ul id="navbar-options"><li><a class="bluehover" href="books"><img class="image-middle" alt="Books Icon" src="images/icons/icon1.svg" />Books</a></li><li><a class="bluehover" href="series"><img class="image-middle" alt="Series Icon" src="images/icons/icon2.svg" />Series</a></li>
296<li><a class="bluehover" href="events"><img class="image-middle" alt="Events Icon" src="images/icons/events_icon.svg" />Events</a></li><li><a class="greenhover" href="order"><img class="image-middle" alt="Checkout Icon" src="images/icons/shopping_icon.svg" />Checkout <span class="checkout-total">0</span></a></li>
297
298
299</ul>
300
301</div>
302
303
304</div>
305
306<!--<div id="lowerbar"><p><a href="research">Researchers</a> | <a href="libraries">Libraries</a> | <a href="distributor">Distributors</a> | <a href="resellers">Resellers</a> | <a href="openaccess">Open Access</a></p></div>-->
307
308
309
310<!-- Main Page Content -->
311<div style="margin: 0 auto; text-align: center; padding-top: 20px;"><div scope="public_profile,email" class="fb-login-button" onlogin="checkLoginState();" data-width="" data-size="large" data-button-type="continue_with" data-auto-logout-link="false" data-use-continue-as="false"></div>
312<p style="font-size:2em; color:blue;"><hr width=70%; /></p></div>
313<form id="loginForm" class="form-style-9" onsubmit="return validateForm();" action="login" method="post">
314<ul>
315<li>    <input type="email" id="emailfield" name="useremail" class="field-style field-full align-center" placeholder="Email" /></li>
316<li>    <input type="password" id="passwordfield" name="userpassword" class="field-style field-full align-center" placeholder="Password" />
317</li>
318
319
320<li>Forgotten <a href="form/reset">password</a>? | Register for <a href="form/register">an account</a> | Resend <a href="form/pinresend">confirmation PIN</a>
321<input type="submit" value="Log in" />
322</li>
323</ul>
324</form>
325
326
327<script>
328
329
330function validateEmail(email) {
331  var re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
332    return re.test(String(email).toLowerCase());
333}
334
335// https://stackoverflow.com/a/21017888/1694526
336    function validateForm()
337    {
338
339	    
340	    var emailaddress = document.getElementById("emailfield").value;
341	    var passwordfield = document.getElementById("passwordfield").value;
342	    
343
344        if (validateEmail(emailaddress) == false) {
345		    alert("Your email address looks invalid, please check and try again.");
346        return false;
347        }
348        else if (passwordfield == "" || passwordfield == null || passwordfield.length < 8 ) { 
349        alert("Password incorrect.");
350        return false;
351        }
352        else {
353  var url = "login"; // the script where you handle the form input.
354
355    $.ajax({
356           type: "POST",
357           url: url,
358           data: $("#loginForm").serialize() + '&ajax=true', // serializes the form's elements.
359           success: function(data)
360           {
361                 var arrayData = JSON.parse(data);
362                  var registered = arrayData['registered'];                  
363                  var confirmed = arrayData['confirmed'];                  
364                  var loginstatus = arrayData['login'];
365                  var returnurl = arrayData['url'];
366              
367                if (loginstatus === true) {
368                  window.location.href = returnurl;
369                }
370                else {
371                    if (registered === false) {
372                      alert('Login failed. Email not registered.');
373                      return false;
374                    } 
375                    else if (confirmed === false) {
376                      alert('Login failed. Email registered but not confirmed. Request new PIN from link below.');
377                      return false;
378                    }
379                    else {
380                      alert('Login failed. Password incorrect.');
381                      return false;
382                    }            
383                }
384                // report error to user if not successful.
385            
386               //	$("#contactForm").hide();
387               return false;
388           }
389         });
390
391        return false; // avoid to execute the actual submit of the form.
392        }
393    }
394    
395    // this is the id of the submit button
396    
397    /* JQuery and AJAX */
398    /* https://stackoverflow.com/a/18170009/1694526 */
399
400</script>
400
401
402
403<div id="sitemap">
404<form id="mailinglist" onsubmit="return isValidEmailAddress();" action="mailinglist" method="post">
405<p>Forthcoming Books and Special Offers. <span class="grey">Read our privacy policy.</span></p><input class="box" id="emailAdd" type="email" name="email" placeholder="Mailing List" /><input class="butblue" type="submit" value="Sign Up" /></form>
406<h3 class="site">Sitemap</h3>
407<p class="site"><a class="siteMapList" href="books" target="_top">Books</a> | <a class="siteMapList" href="series" target="_top">Series</a> | <a class="siteMapList" href="order" target="_top">Checkout</a> | <a class="siteMapList" href="privacy">Privacy Policy</a></p>
408
409<p class="site"> <a class="siteMapList" href="about">Gylphi Limited © 2007–2026</a> <a class="siteMapList" href="https://twitter.com/sketchytech">| Web design and programming by Anthony Levings (@sketchyTech) © 2026</a></p>
410</div>
411<script>
412
413
414function isValidEmailAddress() {
415var emailAddress = document.getElementById('emailAdd').value;
416    var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i;
417    if (pattern.test(emailAddress)) {
418    
419    return true;
420    
421    }
422    else {
423    alert("invalid" + emailAddress);
424    return false;
425    }
426}
427/*
428function validateEmail() {
429
430var email = document.getElementById('email');
431  var re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
432  
433    var result = re.test(String(email).toLowerCase());
434    if (result) {
435    return true;
436    }
437    else {
438    return false;
439    }
440}
441*/
442
443</script>
443
444<!-- 
444<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/cookie-bar/cookiebar-latest.min.js?"></script>
444 -->
445<script>
446//https://stackoverflow.com/a/4656873/1694526
447function getUrlVars()
448{
449    var vars = [], hash;
450    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
451    for(var i = 0; i < hashes.length; i++)
452    {
453        hash = hashes[i].split('=');
454        vars.push(hash[0]);
455        vars[hash[0]] = hash[1];
456    }
457    return vars;
458}
459function missing() {
460if (getUrlVars()["missing"]) {
461alert(getUrlVars()["missing"]);
462}
463}
464
465</script>
465
466
467<script src="scripts/localstorage.js"></script>
467
468</body>
469
470</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.