Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="sk">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
- <!-- <meta name="viewport" content="width=device-width, initial-scale=0.5" /> -->
- <title>Freecharging</title>
- <link type="text/css" rel="stylesheet" href="css/reset.css" />
- <link type="text/css" rel="stylesheet" href="css/style.css" />
- <script type="text/javascript" src="cordova.js"></script>
- <!--<script type="text/javascript" src="js/index.js"></script>-->
- <script src="js/jquery.2.1.js"></script>
- <script src="js/dragdealer.js"></script>
- <script src="js/jquery.mobile-1.4.5.min.js"></script>
- <script src="js/fastclick.js"></script>
- <script>
- var counter = 0;
- var lvl = 0;
- var mustRun = true;
- var actualLvl = 0;
- function onDeviceReady () {
- if (device.platform != 'Android') {
- cordova.plugins.notification.badge.promptForPermission();
- }
- actualLvl = localStorage.getItem('battery_life') * 50;
- cordova.plugins.backgroundMode.ondeactivate = function () {
- clearInterval(timer);
- cordova.plugins.notification.badge.clear();
- };
- //alert("Calling onDeviceReady()");
- }
- setTimeout(function () {
- document.addEventListener('deviceready', onDeviceReady, false);
- document.addEventListener("resume", function() {
- //alert("Aaaaaan we're back!!");
- clearInterval(timer);
- cordova.plugins.backgroundMode.disable();
- document.location.href = 'index.html';
- });
- document.addEventListener("pause", function() {
- cordova.plugins.backgroundMode.enable();
- cordova.plugins.notification.badge.clear();
- cordova.plugins.backgroundMode.configure({
- silent: true
- });
- actualLvl = localStorage.getItem('battery_life') * 50;
- window.addEventListener("batterystatus", onBatteryStatus, false);
- function onBatteryStatus(info) {
- // Handle the online event
- lvl = info.level;
- console.log("Level: " + info.level + " isPlugged: " + info.isPlugged);
- }
- timer = setInterval(function () {
- if (lvl <= actualLvl && mustRun == true) {
- cordova.plugins.backgroundMode.configure({
- silent: false
- });
- if (device.platform != 'Android') {
- cordova.plugins.notification.badge.set(1);
- }
- cordova.plugins.backgroundMode.configure({
- text: 'You should find a suitable charging place'
- });
- mustRun = false;
- }
- }, 1000);
- });
- }, 5000);
- </script>
- </head>
- <body class="loading">
- <!-- IOS BAR FIX -->
- <div id="ios-bar-fix"></div>
- <!-- /IOS BAR FIX -->
- <nav data-role="panel" id="left-navigation" class="side-nav">
- <ul class="left-content">
- <li>
- <a href="search.html" class="redirect">
- <img src="img/main/icons/search.png" class="search">
- <span>Search</span>
- </a>
- </li>
- <li>
- <a href="langs.html" class="redirect">
- <img src="img/main/icons/spll.png" class="spll">
- <span>Set preferred <br /> language list</span>
- </a>
- </li>
- <li>
- <a href="javascript:;" id="battery-slider">
- <img src="img/main/icons/bln.png" class="bln">
- <span>Battery Level <br /> notification</span>
- </a>
- </li>
- <li>
- <a href="legal.html" class="redirect">
- <img src="img/main/icons/legal.png" class="legal">
- <span>Legal</span>
- </a>
- </li>
- <li>
- <a href="help.html" class="redirect">
- <img src="img/main/icons/help.png" class="help">
- <span>Help</span>
- </a>
- </li>
- <li>
- <a href="about.html" class="redirect">
- <img src="img/main/icons/about.png" class="about">
- <span>About</span>
- </a>
- </li>
- </ul>
- </nav>
- <!-- BATTERY LEVEL -->
- <section id="battery-level" class="battery-level-content">
- <h1>Battery Level notification: <span>0%</span></h1>
- <div id="battery-slider-content">
- <div id="progress-lines">
- <span></span>
- <span>
- <span class="handle">
- <i>
- <i>
- 0
- <b></b>
- </i>
- </i>
- </span>
- </span>
- </div>
- </div>
- <div id="battery-footer">
- <button class="bcancel">Cancel</button>
- <button>OK</button>
- </div>
- </section>
- <!-- /BATTERY LEVEL -->
- <nav data-role="panel" id="right-navigation" class="side-nav">
- <ul class="right-content">
- <!-- CONTENT LIST -->
- </ul>
- </nav>
- <div id="blur-container" class="">
- <div class="container" data-role="page">
- <!-- HEADER -->
- <header id="full-header">
- <a href="javascript:;" class="nav-ico"></a>
- <a id="logo" href=""></a>
- <a href="javascript:;" class="star-ico"></a>
- <h1 style="display:none">Closest charging places</h1>
- <a id="header-map" class="redirect" href="map.html">
- <img src="img/main/icons/map.png">
- </a>
- </header>
- <header id="static-header" class="hide">
- <a href="javascript:;" class="nav-ico"></a>
- <a id="logo" href=""></a>
- <a href="javascript:;" class="star-ico"></a>
- </header>
- <!-- /HEADER -->
- <!-- CONTENT -->
- <ul class="flip">
- </ul>
- <!-- LOAD MORE BTN -->
- <button class="load-more-btn">Load more</button>
- <!-- /LOAD MORE BTN -->
- <!-- LOADER FOR EVENTS -->
- <div class="event-loader">
- <img src="img/loaders/list-loader.gif">
- </div>
- <!-- /LOADER FOR EVENTS -->
- <!-- NO MORE EVENTS -->
- <div class="no-more-content">No more venues to load</div>
- <!-- /NO MORE EVENTS -->
- <!-- /CONTENT -->
- </div>
- </div>
- <script>
- $(document).ready(function() {
- var actualUnitPage = 0,
- isThereOtherUnits = true,
- actualPosition = null,
- battery_life = 0, //By default
- battery_life_custom = -1,
- menuStatus = 'none',
- batteryStatus = 'none',
- dragbattery,
- _startPoint = -1,
- _currPosition = -1;
- mustRun = true,
- months = ['jan', 'feb', 'mar', 'apr', 'may', 'june', 'july', 'aug', 'sep', 'oct', 'nov', 'dec'],
- _loaded = [];
- //Default language
- defaultLanguage();
- //Detect OS
- getMobileOperatingSystem();
- //Header image cycle
- headerImageCycle();
- //For eliminating the 300ms delay between a physical tap and the firing of a click event on mobile browsers
- FastClick.attach(document.body);
- navigator.geolocation.getCurrentPosition(onSuccess, onError);
- // onSuccess Callback
- // This method accepts a `Position` object, which contains
- // the current GPS coordinates
- //
- function onSuccess(position) {
- actualPosition = position.coords;
- loadData();
- loadEvents();
- $('#header-map').attr('href', 'map.html?lat=' + actualPosition.latitude + '&long=' + actualPosition.longitude);
- }
- // onError Callback receives a PositionError object
- //
- function onError(error) {
- alert('code: ' + error.code + '\n' +
- 'message: ' + error.message + '\n');
- }
- if (typeof(Storage) !== "undefined") {
- if (localStorage.getItem('battery_life') != null) { battery_life = localStorage.getItem('battery_life'); }
- //Battery drag
- _initBatteryDrag();
- } else {
- alert('No storage support');
- }
- //Battery ok
- $(document).on("click","#battery-footer button:last-child",function(){-1!=battery_life_custom&&(battery_life=battery_life_custom,battery_life_custom=-1,localStorage.setItem("battery_life",battery_life));_battery()});
- //Battery cancel
- $(document).on("click",".blur, .bcancel",function(){_battery_hide()});
- //Redirect
- $(document).on("click",".redirect",function(){var a=$(this).attr("href");void 0==a&&(a=$(this).data("href"));if(!$("body").hasClass("battery"))return window.location.href=a,!1});
- //Swipeleft
- $("body").on("swipeleft",function(a){$("body").hasClass("battery")||_event(a)});
- //Swiperight
- $("body").on("swiperight",function(a){$("body").hasClass("battery")||_nav(a)});
- //Custom click events
- $(document).on("click",".nav-ico",function(a){_nav(a);return!1});
- $(document).on("click",".star-ico",function(a){_event(a);return!1});
- $(document).on("click",".event-overlay",function(){_event()});
- $(document).on("click",".nav-overlay",function(){_nav()});
- $(document).on("click","#battery-slider",function(){_nav();_battery()});
- //
- $(".load-more-btn").click(function(){null!=actualPosition?loadData():alert("No location data yet!")});
- //Custom functions
- function getMobileOperatingSystem(){var a=navigator.userAgent||navigator.vendor||window.opera,b=$("html");a.match(/iPad/i)||a.match(/iPhone/i)||a.match(/iPod/i)?b.addClass("iOS"):a.match(/Android/i)?b.addClass("Android"):b.addClass("UnknownOs")};
- function _nav(a){$(document).find(".event-overlay").remove();$(document).find(".nav-overlay").remove();"none"==menuStatus?(_battery_hide(),$("body").addClass("p-open left"),menuStatus="left",$("body").append('<div class="nav-overlay"></div>')):"left"==menuStatus?($("body").removeClass("p-open left"),menuStatus="none"):_event()};
- function _event(a){_battery_hide();$(document).find(".event-overlay").remove();$(document).find(".nav-overlay").remove();"none"==menuStatus?($("body").addClass("p-open right"),menuStatus="right",$("body").append('<div class="event-overlay"></div>')):"right"==menuStatus?($("body").removeClass("p-open right"),menuStatus="none"):_nav()};
- function _battery(){$("body").hasClass("battery")||"none"!=batteryStatus?($("body").removeClass("battery"),$("#blur-container").removeClass("blur"),batteryStatus="none",battery_life_custom=battery_life):($("body").addClass("battery"),$("#blur-container").addClass("blur"),batteryStatus="battery")};
- function _initBatteryDrag(){dragbattery=new Dragdealer("progress-lines",{x:battery_life,animationCallback:function(a,c){"undefined"!==typeof Storage?battery_life_custom=a:alert("No storage support");if(0==Math.round(100*a))$("#battery-slider-content span > span > i").addClass("off"),$("#battery-slider-content span > span > i > i").html("OFF <b></b>"),$("#battery-level > h1 span").html("OFF");else{var b=Math.floor(Math.round(100*a)/2);$("#battery-slider-content span > span > i").removeClass("off");
- $("#battery-slider-content span > span > i > i").html(b+"<b></b>");$("#battery-level > h1 span").html(b+"%")}$("#progress-lines > span:last-child").css("width",Math.round(100*a)+"%")}})};
- function _battery_hide(){$("body").removeClass("battery");$("#blur-container").removeClass("blur");batteryStatus="none"};
- function convertToDistance(a){return 1E3>=a?Math.floor(a)+"m":(a/1E3).toFixed(1)+"km"};
- function checkAttrib(a,c){var b=!1;$.each(a,function(a,d){d.name===c&&(b=!0)});return 1==b?"":" non-exist"};
- function setNonAttribIcon(a,c){var b=!1;$.each(a,function(a,d){d.name===c&&(b=!0)});return 1==b?"":"-non"};
- function getEventName(a){return null!=a?a.name:""};
- function getCommonLang(b) {
- var a = null;
- l = "undefined" != localStorage.getItem("languages") || localStorage.getItem("languages") != '' ? localStorage.getItem("languages").split(",") : [];
- l != [] && $.each(l, function(f, d) {
- var e = d.split("|");
- $.each(b, function(b, c) {
- e[0] == c.lang && null == a && (a = c.lang);
- });
- });
- return null == a ? "Non" : a;
- };
- function defaultLanguage() {
- if (localStorage.getItem("languages") == undefined || localStorage.getItem("languages") == '') {
- var l_lang,
- l_def = 'English';
- l_curr = '';
- l_cont = {};
- l_list = {};
- l_list.Czech = 'cz';
- l_list.Danish = 'da';
- l_list.Dutch = 'nl';
- l_list.English = 'en';
- l_list.French = 'fr';
- l_list.German = 'de';
- l_list.Hungarian = 'hu';
- l_list.Italian = 'it';
- l_list.Polish = 'pl';
- l_list.Russian = 'ru';
- l_list.Slovak = 'sk';
- l_list.Swedish = 'sv';
- if (navigator.userLanguage) {
- l_lang = navigator.userLanguage;
- } else if (navigator.language) {
- l_lang = navigator.language;
- } else {
- l_lang = 'en';
- }
- if (l_lang.indexOf("-") >= 0) {
- l_lang = l_lang.split('-');
- l_lang = l_lang[0];
- }
- $.getJSON("http://freecharging.sk/api/getLanguages/0", function(data) {
- if (data != '') {
- $.each(data, function(index, value) {
- l_cont[value.lang] = {};
- l_cont[value.lang].id = value.id;
- l_cont[value.lang].name = value.lang;
- l_cont[value.lang].code = l_list[value.lang] != undefined ? l_list[value.lang] : l_list[l_def];
- if (l_cont[value.lang].code == l_lang) {
- l_curr = value.lang;
- }
- })
- if (l_cont[l_curr].name != undefined) {
- localStorage.setItem("languages", l_cont[l_curr].name + '|' + l_cont[l_curr].id);
- } else {
- localStorage.setItem("languages", l_cont['English'].name + '|' + l_cont['English'].id);
- }
- }
- })
- }
- }
- function loadData(){$("body").removeClass("no-content");$("body").addClass("loading");$.getJSON("http://freecharging.sk/api/getNearestUnits/and/"+actualPosition.latitude+"/"+actualPosition.longitude+"/"+actualUnitPage,function(a){var d=$(document).find("ul.flip"),c="";""!=a&&(actualUnitPage++,$.each(a,function(b,d){-1==$.inArray(a[b].unitid,_loaded)&&(_loaded.push(a[b].unitid),c+='<li class="redirect" data-href="unit.html?jsonString='+encodeURIComponent(JSON.stringify(a[b]))+"&userlat="+actualPosition.latitude+
- "&userlon="+actualPosition.longitude+'"><div class="inner"><span><img src="img/main/icons/categories/'+a[b].categoryid+'.png" class="gyikon_'+a[b].categoryid+'"></span><div><h1>'+a[b].unitname+'</h1><ul class="icon-container"><li><a class="redirect-deprecated ui-link" href="javascript:;"><img class="park-ico ic'+checkAttrib(a[b].attributes,"Parking lot")+'" src="img/main/icons/park'+setNonAttribIcon(a[b].attributes,"Parking lot")+'.png"></a></li><li><a class="redirect-deprecated ui-link" href="javascript:;"><img class="wifi-ico ic'+
- checkAttrib(a[b].attributes,"Free wifi available")+'" src="img/main/icons/wifi'+setNonAttribIcon(a[b].attributes,"Free wifi available")+'.png"></a></li><li><a class="redirect-deprecated ui-link" href="javascript:;"><img class="cks-ico ic'+checkAttrib(a[b].attributes,"Barrier-free")+'" src="img/main/icons/cks'+setNonAttribIcon(a[b].attributes,"Barrier-free")+'.png"></a></li><li><a class="redirect-deprecated ui-link" href="javascript:;"><img class="foot-ico ic'+checkAttrib(a[b].attributes,"Pet friendly")+
- '" src="img/main/icons/foot'+setNonAttribIcon(a[b].attributes,"Pet friendly")+'.png"></a></li><li><a class="redirect-deprecated ui-link" href="javascript:;"><img class="smoke-ico ic'+checkAttrib(a[b].attributes,"Smoking area")+'" src="img/main/icons/smoke'+setNonAttribIcon(a[b].attributes,"Smoking area")+'.png"></a></li><li><a class="redirect-deprecated ui-link" href="javascript:;"><img class="card-ico ic'+checkAttrib(a[b].attributes,"Accepting credit cards")+'" src="img/main/icons/card'+setNonAttribIcon(a[b].attributes,
- "Accepting credit cards")+'.png"></a></li><li><a class="redirect-deprecated ui-link" href="javascript:;"><img class="eng-ico ic" src="img/main/icons/flags/'+getCommonLang(a[b].languages)+'.png"></a></li></ul><a class="redirect-deprecated ui-link" href="javascript:;"><img src="img/main/icons/arrow.png"></a><div class="inner-footer"><div>'+convertToDistance(a[b].distance)+'<div class="itbl"><div></div></div><div class="tbl"></div><div class="tbr"></div></div><h1>'+getEventName(a[b].events[0])+'</h1></div></div></div><div class="tbl"></div><div class="tbr"></div></li>')}));
- d.append(c);console.log(_loaded)}).always(function(a){$("body").removeClass("loading");404==a.status&&'"No units were found."'==a.responseText?$("body").addClass("no-content"):404!=a.status||200!=a.status&&console.log("Another error type: "+a.status+" response: "+a.responseText)})};
- function loadEvents(){$.getJSON("http://freecharging.sk/api/getNearestUnitsWithEvents/and/"+actualPosition.latitude+"/"+actualPosition.longitude+"/0",function(a){var f=$(document).find("ul.right-content"),g="";""!=a&&(console.log(a),$.each(a,function(b,f){$.each(a[b].events,function(c,f){var d=a[b].events[c].from.split(/[\-\+ :T]/),e=a[b].events[c].to.split(/[\-\+ :T]/);g+='<li class="redirect" data-href="unit.html?_ref=events&jsonString='+encodeURIComponent(JSON.stringify(a[b]))+'"><a href="javascript:;"><h1>'+
- a[b].events[c].name+"</h1><span>"+convertToDistance(a[b].distance)+"<time>"+d[2]+". "+months[parseInt(d[1])-1]+" "+d[3]+":"+d[4]+" - "+e[2]+". "+months[parseInt(e[1])-1]+" "+e[3]+":"+e[4]+'</time></span><img src="'+a[b].events[c].thumb+'"></a></li>'})}));f.html(g)}).fail(function(a){404==a.status&&isThereOtherUnits&&(isThereOtherUnits=!1)})};
- function headerImageCycle(){var a=new Date,a=a.getHours(),b=Math.floor(5*Math.random()+1),a=6<a&&18>a?"day":"night";$(document).find("#full-header").css("background","url(img/background/"+a+"/"+b+".jpg) no-repeat scroll center center / cover");"night"==a&&$(document).find("#full-header").addClass("whiteNav")};
- //Custom events
- $(window).scroll(function() {
- var a = $(window).scrollTop(), b = $(document).height(), c = $(window).height(), _top = $('html').hasClass('iOS') ? 35 : 0;
- .95 < a / (b - c) && loadData();
- _top < $(this).scrollTop() ? ($(document).find(".header-overlay").remove(), $(document).find(".nav-ico, .star-ico, #logo").css({position:"fixed", "z-index":2500}).addClass('moved'), $(document).find("#full-header").append('<div class="header-overlay"></div>'), $(document).find("#full-header h1").addClass("hide")) : ($(document).find(".nav-ico").css("position", "relative").removeClass('moved'), $(document).find(".star-ico, #logo").css("position", "absolute").removeClass('moved'), $(document).find(".header-overlay").remove(), $(document).find("#full-header h1").removeClass("hide"));
- });
- })
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement