PageSourceSearch

https://piperpal.com/

html piperpal.com collected 2026-10-02 00:54:05 UTC 14,423 bytes, 366 lines download raw bytes

1<!DOCTYPE html>
2<html>
3  <head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, width=device-width">
6  <link
7    rel="stylesheet"
8    href="https://unpkg.com/[email protected]/dist/leaflet.css"
9  />
10  <style>
11    #map {
12      width: 100%;
13      height: 600px;
14    }
15  </style>
16    <!--[if IE 8]>
17	<link href="/css/common_o2.1_ie8-91981ea8f3932c01fab677a25d869e49.css" media="all" rel="stylesheet" type="text/css" />
18	<![endif]-->
19    <!--[if !(IE 8)]><!-->
20	<link href="/css/common_o2.1-858f47868a8d0e12dfa7eb60fa84fb17.css" media="all" rel="stylesheet" type="text/css" />
21	<!--<![endif]-->
22	
23        <!--[if lt IE 9]>
24	    <link href="/css/airglyphs-ie8-9f053f042e0a4f621cbc0cd75a0a520c.css" media="all" rel="stylesheet" type="text/css" />
25	    <![endif]-->
26	
27	<link href="/css/main-f3fcc4027aaa2c83f08a1d51ae189e3b.css" media="screen" rel="stylesheet" type="text/css" />
28	<!--[if IE 7]>
29	    <link href="/css/p1_ie_7-0ab7be89d3999d751ac0e89c44a0ab50.css" media="screen" rel="stylesheet" type="text/css" />
30	    <![endif]-->
31	<!--[if IE 6]>
32	    <link href="/css/p1_ie_6-7d6a1fd8fe9fdf1ce357f6b864c83979.css" media="screen" rel="stylesheet" type="text/css" />
33	    <![endif]-->
34	<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
35	<link rel="dns-prefetch" href="//maps.googleapis.com">
36	<link rel="dns-prefetch" href="//maps.gstatic.com">
37	<link rel="dns-prefetch" href="//mts0.googleapis.com">
38	<link rel="dns-prefetch" href="//fonts.googleapis.com">
39	<link rel="dns-prefetch" href="//www.piperpal.com">
40	<title>piperpal.com - Location-based Search Engine</title>
41	<link href="my_style_form.css" type="text/css" rel="stylesheet" />
42	<link href='http://fonts.googleapis.com/css?family=Titillium+Web:700' rel='stylesheet' type='text/css'>
43	<link href='http://fonts.googleapis.com/css?family=Titillium+Web' rel='stylesheet' type='text/css'>
44	
44<script type='text/javascript' src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js'></script>
44
45	
45<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
45
46  </head>
47  <!-- Styles -->
48  <style>
49    #name label{
50    display: inline-block;
51    width: 100px;
52    text-align: right;
53    }
54    #name_submit{
55    padding-left: 100px;
56    }
57    #name div{
58    margin-top: 1em;
59    }
60    textarea{
61    vertical-align: top;
62    height: 5em;
63    }
64
65    .error{
66    display: none;
67    margin-left: 10px;
68    }
69
70    .error_show{
71    color: red;
72    margin-left: 10px;
73    }
74
75    input.invalid, textarea.invalid{
76    border: 2px solid red;
77    }
78
79    input.valid, textarea.valid{
80    border: 2px solid green;
81    }
82    input {
83    padding: 10px;
84    font: 20px Arial;
85    width: 70%;
86    }
87    </style>
88  <body onload="getMovement()">
89    <center>
90  <div id="map"></div>
91
92  
92<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
92
93  
93<script>
94    // JSON data
95    const locations = {
96      "locations": [
97        {
98          "id": "11896371",
99          "name": "Abelprisen",
100          "service": "Education",
101          "location": "https://www.abelprisen.no/",
102          "glat": "59.9154986",
103          "glon": "10.7304839"
104        }
105      ]
106    };
107
108    // Initialize map
109    const map = L.map('map').setView([59.9130197, 10.7401006], 10);
110
111    // Add OpenStreetMap tiles
112    L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
113      attribution: '&copy; OpenStreetMap contributors'
114    }).addTo(map);
115
116    // Add markers
117    locations.locations.forEach(loc => {
118      const lat = parseFloat(loc.glat);
119      const lon = parseFloat(loc.glon);
120      const popupContent = `<strong>${loc.name}</strong><br><a href="${loc.location}" target="_blank">${loc.location}</a>`;
121      L.marker([lat, lon]).addTo(map).bindPopup(popupContent);
122    });
123  </script>
123
124  <a href="https://www.piperpal.com/"><img src="/piperpal.png" alt="piperpal.com Logo" width="320" align="center/"></a>
125  <h4>Location-Based Search</h4>
126    <h3 style="color: orange"><a href="https://www.piperpal.com/education">🎧 www.piperpal.com/education</a></h3>    
127    <form id="locationForm" action="https://api.piperpal.com/location/push.php" method="GET">
128        <button type="button" onclick="getMovement();">Get Current Movement</button><br>
129        <input type="text" id="glat" name="glat" value="" placeholder="Latitude"><br>
130        <input type="text" id="glon" name="glon" value="" placeholder="Longitude"><br>
131	<input type="text" id="galt" name="galt" value="" placeholder="Altitude"><br>
132	<input type="text" id="name" name="name" value="" style="color: #ff0000" placeholder="Where do you study?"><br>
133	<input type="text" id="service" name="service" value="Education" style="color: #00ff00" placeholder="BigDipper"><br>
134	<input type="text" id="location" name="location" value="" style="color: #00ffff" placeholder="https://location.gl/"><br>	
135	<input type="text" id="radius" name="radius" value="10000" style="color: #0000ff" placeholder="100000">
136	<input type="hidden" id="paid" name="paid" value="1">
137        <!-- Display geolocation data -->
138        <p id="locationInfo"></p>
139        <button type="submit">Search Location</button>
140    </form>
141    </center>
142      
142<script>
143        function getMovement() {
144            if (navigator.geolocation) {
145                navigator.geolocation.getCurrentPosition(showPosition, showError);
146            } else {
147                alert("Geolocation is not supported by this browser.");
148            }
149        }
150
151	function showPosition(position) {
152            const locationInfo = document.getElementById("locationInfo");
153            const glatInput = document.getElementById("glat");
154            const glonInput = document.getElementById("glon");
155            const galtInput = document.getElementById("galt");
156	    const nameInput = document.getElementById("name");
157            locationInfo.innerHTML = `Current Movement: Latitude ${position.coords.latitude}, Longitude ${position.coords.longitude}, Altitude ${position.coords.altitude}`;
158            glatInput.value = position.coords.latitude;
159            glonInput.value = position.coords.longitude;
160            galtInput.value = position.coords.altitude;
161	    nameInput.value = document.getElementById('name').value;
162	}
163
164        function showError(error) {
165            const locationInfo = document.getElementById("locationInfo");
166            switch (error.code) {
167                case error.PERMISSION_DENIED:
168                    locationInfo.innerHTML = "User denied the request for Geolocation.";
169                    break;
170                case error.POSITION_UNAVAILABLE:
171                    locationInfo.innerHTML = "Movement information is unavailable.";
172                    break;
173                case error.TIMEOUT:
174                    locationInfo.innerHTML = "The request to get user location timed out.";
175                    break;
176                case error.UNKNOWN_ERROR:
177                    locationInfo.innerHTML = "An unknown error occurred.";
178                    break;
179            }
180        }
181    </script>
181
182  <div id="log">Location: </div>
183  
183<script>
184    $(document).ready(function() {
185      setInterval(function() {
186        if (navigator.geolocation) {
187          navigator.geolocation.getCurrentPosition(ajaxCall);
188        } else {
189          $('#log').html("GPS is not available");
190        }
191
192        function ajaxCall(position) {
193          var latitude = position.coords.latitude;
194          var longitude = position.coords.longitude;
195          var altitude = position.coords.altitude;
196	  var radius = 10000;
197	  var name = "";  
198	  var service = "Search";
199          $.ajax({
200            url: "https://api.piperpal.com/location/json.php",
201            type: 'GET',
202            data: { 'name': name, 'glat': latitude, 'glon': longitude, 'radius': radius, 'service': service },
203            success: function(response) {
204              var obj = response;
205	      // jQuery.parseJSON(response);
206              $('#log').html(JSON.stringify(obj, null, 2));
207            }
208          });
209        }
210      },30000);
211    });
212  </script>
212
213  <!--
214    <!-- JavaScript Code -->
215    
215<script>
216      var currencyInput = document.querySelector('input[type="currency"]')
217      var currency = 'USD' // https://www.currency-iso.org/dam/downloads/lists/list_one.xml
218      
219      // format inital value
220      onBlur({target:currencyInput})
221      
222      // bind event listeners
223      currencyInput.addEventListener('focus', onFocus)
224      currencyInput.addEventListener('blur', onBlur)
225      
226      
227      function localStringToNumber( s ){
228	  return Number(String(s).replace(/[^0-9.-]+/g,""))
229      }
230      
231      function onFocus(e){
232	  var value = e.target.value;
233	  e.target.value = value ? localStringToNumber(value) : ''
234      }
235      
236      function onBlur(e){
237	  var value = e.target.value
238	  
239	  var options = {
240	      maximumFractionDigits : 2,
241	      currency              : currency,
242	      style                 : "currency",
243	      currencyDisplay       : "symbol"
244	  }
245	  
246	  e.target.value = (value || value === 0) 
247	      ? localStringToNumber(value).toLocaleString(undefined, options)
248	      : ''
249      }
250      
251      $(document).ready(function() {
252      <!-- Real-time Validation -->
253      <!--Name can't be blank-->
254      $('#name').on('input', function() {
255      var input=$(this);
256      var is_name=input.val();
257      if(is_name){input.removeClass("invalid").addClass("valid");}
258      else{input.removeClass("valid").addClass("invalid");}
259      });
260
261      <!--Email must be an email -->
262      $('#email').on('input', function() {
263      var input=$(this);
264      var re = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
265      var is_email=re.test(input.val());
266      if(is_email){input.removeClass("invalid").addClass("valid");}
267      else{input.removeClass("valid").addClass("invalid");}
268      });
269
270      <!--Website must be a website -->
271      $('#location').on('input', function() {
272      var input=$(this);
273      if (input.val().substring(0,4)=='www.'){input.val('http://www.'+input.val().substring(4));}
274      var re = /(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&amp;:\/~+#-]*[\w@?^=%&amp;\/~+#-])?/;
275      var is_url=re.test(input.val());
276      if(is_url){input.removeClass("invalid").addClass("valid");}
277      else{input.removeClass("valid").addClass("invalid");}
278      });
279
280      <!--Message can't be blank -->
281      $('#service').keyup(function(event) {
282      var input=$(this);
283      var message=$(this).val();
284      console.log(message);
285      if(message){input.removeClass("invalid").addClass("valid");}
286      else{input.removeClass("valid").addClass("invalid");}
287      });
288
289      <!-- After Form Submitted Validation-->
290      $("#submit button").click(function(event){
291      var form_data=$("#name").serializeArray();
292      var error_free=true;
293      for (var input in form_data){
294      var element=$("#name_"+form_data[input]['name']);
295      var valid=element.hasClass("valid");
296      var error_element=$("span", element.parent());
297      if (!valid){error_element.removeClass("error").addClass("error_show"); error_free=false;}
298      else{error_element.removeClass("error_show").addClass("error");}
299      }
300      if (!error_free){
301      event.preventDefault();
302      }
303      else{
304      alert('No errors: Form will be submitted');
305      }
306      });
307      });
308    </script>
308
309    <style>
310      select:invalid { color: gray; }
311    </style>
312    <center>
313      <a href="https://www.piperpal.com/"><img src="/piperpal.png" alt="piperpal.com Logo" width="320" align="center/"></a>
314      <h4>Location-Based Ad</h4>
315      <h3><a href="https://www.piperpal.com/search">www.piperpal.com/search</a></h3>
316      <form id="form" method="GET" action="https://www.piperpal.com/cft/s/">
317      <table>
318	<tr>
319	  <td>Text: <input id="name" type="text" name="name" placeholder="Example: &HappyNewYear" size="24" /><span class="error">This field is required</span></td>
320	</tr>
321	<tr>
322	  <td>Email: <input id="email" type="text" name="email" placeholder="[email protected]" /><span class="error">This field is required</span></td>
323	</tr>
324	<tr>
325	  <td>Service: <select required id="service" name="service"><option value="Restaurant">Restaurant</option><option value="Bar">Bar</option><option value="Concert">Concert</option><option value="Film">Film</option><option value="Books">Books</option><option value="Health">Health</option><option value="Clothes">Clothes</option><option value="Food">Food</option><option value="Music">Music</option><option value="Electronics">Electronics</option><option value="Transport">Transport</option><option value="Rental">Rental</option><option value="Search" selected>Search</option><option value="Influencers">Influencers</option></select></td>
326	</tr>
327	<tr>
328	  <td>Location: <input type="text" name="location" placeholder="https://location.gl/" /></td>
329	</tr>
330	<!--
331	<tr>
332	  <td>Latitude: <input type="text" name="glat" value="37.4375596"></td>
333	</tr>
334	<tr>
335	  <td>Longitude: <input type="text" name="glon" value="-122.11922789999998"></td>									      </tr>
336	-->
337	<input type="hidden" name="paid" value="100" placeholder="Type a price">
338	<tr>
339	  <td width="100px"><input type="submit" name="Submit" value="Save Location-based Search Engine Advertisement" style="width: 500px" /></td>
340	</tr>
341      </table>
342      </form>
343    
343<script type="text/javascript" src="https://api.piperpal.com/location/?service=Search">
344    </script>
344
345    
345<script
346       src="https://code.jquery.com/jquery-3.3.1.js"
347       integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
348       crossorigin="anonymous">
349      var newLink = "https://api.piperpal.com/location/?service=Search";
350      $('script').each(function() {
351      var link = $(this).attr('src');
352      })
353    </script>
353
354    
354<script language="JavaScript">
355      var obj = JSON.parse(locations);
356      for (i=0; i < obj.locations.length; i++) {
357		    document.write("<p><h2><a href='https://piperpal.com/" + obj.locations[i].name + "'>" + obj.locations[i].name + "</a></h2><p>" + obj.locations[i].distance + " km away</p><p><b><a href='" + obj.locations[i].location + "'>" + obj.locations[i].location + "</a></b></p><p><i>" + obj.locations[i].service + " " + "</i></p>\n");
358      }
359    </script>
359
360    </td>
361  </tr>
362  </table>
363  <p>Copyright &copy; 2026 <a href="https://www.aamotinnovation.com/">Aamot Research & Development</a></p>
364  </center>
365  </body>
366</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.