Advertisement
BlueBear

index.html

Jan 7th, 2015
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2.     <html lang="sk">
  3.         <head>
  4.             <meta charset="UTF-8" />
  5.             <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" />
  6.             <!-- <meta name="viewport" content="width=device-width, initial-scale=0.5" /> -->
  7.  
  8.             <title>Freecharging</title>
  9.  
  10.             <link type="text/css" rel="stylesheet" href="css/reset.css" />
  11.             <link type="text/css" rel="stylesheet" href="css/style.css" />
  12.             <script type="text/javascript" src="cordova.js"></script>
  13.             <!--<script type="text/javascript" src="js/index.js"></script>-->
  14.             <script src="js/jquery.2.1.js"></script>
  15.             <script src="js/dragdealer.js"></script>
  16.             <script src="js/jquery.mobile-1.4.5.min.js"></script>
  17.             <script src="js/fastclick.js"></script>
  18.  
  19.             <script>
  20.             var counter = 0;
  21.             var lvl = 0;
  22.             var mustRun = true;
  23.             var actualLvl = 0;
  24.  
  25.             function onDeviceReady () {
  26.  
  27.                 if (device.platform != 'Android') {
  28.                     cordova.plugins.notification.badge.promptForPermission();
  29.                 }
  30.  
  31.                 actualLvl = localStorage.getItem('battery_life') * 50;
  32.  
  33.                 cordova.plugins.backgroundMode.ondeactivate = function () {
  34.                     clearInterval(timer);
  35.                     cordova.plugins.notification.badge.clear();
  36.                 };
  37.                 //alert("Calling onDeviceReady()");
  38.             }
  39.  
  40.             setTimeout(function () {
  41.                 document.addEventListener('deviceready', onDeviceReady, false);
  42.                 document.addEventListener("resume", function() {
  43.                     //alert("Aaaaaan we're back!!");
  44.                     clearInterval(timer);
  45.  
  46.                     cordova.plugins.backgroundMode.disable();
  47.                     document.location.href = 'index.html';
  48.                 });
  49.  
  50.                 document.addEventListener("pause", function() {
  51.                     cordova.plugins.backgroundMode.enable();
  52.                     cordova.plugins.notification.badge.clear();
  53.                     cordova.plugins.backgroundMode.configure({
  54.                         silent: true
  55.                     });
  56.  
  57.  
  58.                     actualLvl = localStorage.getItem('battery_life') * 50;
  59.  
  60.                     window.addEventListener("batterystatus", onBatteryStatus, false);
  61.  
  62.                     function onBatteryStatus(info) {
  63.                         // Handle the online event
  64.                         lvl = info.level;
  65.                         console.log("Level: " + info.level + " isPlugged: " + info.isPlugged);
  66.                     }
  67.  
  68.                     timer = setInterval(function () {
  69.  
  70.                         if (lvl <= actualLvl && mustRun == true) {
  71.  
  72.                             cordova.plugins.backgroundMode.configure({
  73.                                 silent: false
  74.                             });
  75.                             if (device.platform != 'Android') {
  76.                                 cordova.plugins.notification.badge.set(1);
  77.                             }
  78.                             cordova.plugins.backgroundMode.configure({
  79.                                 text: 'You should find a suitable charging place'
  80.                             });
  81.                             mustRun = false;
  82.                         }
  83.                     }, 1000);
  84.  
  85.  
  86.                 });
  87.             }, 5000);
  88.             </script>
  89.         </head>
  90.         <body class="loading">
  91.            
  92.             <!-- IOS BAR FIX -->
  93.                 <div id="ios-bar-fix"></div>
  94.             <!-- /IOS BAR FIX -->
  95.            
  96.             <nav data-role="panel" id="left-navigation" class="side-nav">
  97.                 <ul class="left-content">
  98.                     <li>
  99.                         <a href="search.html" class="redirect">
  100.                             <img src="img/main/icons/search.png" class="search">
  101.                             <span>Search</span>
  102.                         </a>
  103.                     </li>
  104.  
  105.                     <li>
  106.                         <a href="langs.html" class="redirect">
  107.                             <img src="img/main/icons/spll.png" class="spll">
  108.                             <span>Set preferred <br /> language list</span>
  109.                         </a>
  110.                     </li>
  111.  
  112.                     <li>
  113.                         <a href="javascript:;" id="battery-slider">
  114.                             <img src="img/main/icons/bln.png" class="bln">
  115.                             <span>Battery Level <br /> notification</span>
  116.                         </a>
  117.                     </li>
  118.  
  119.                     <li>
  120.                         <a href="legal.html" class="redirect">
  121.                             <img src="img/main/icons/legal.png" class="legal">
  122.                             <span>Legal</span>
  123.                         </a>
  124.                     </li>
  125.  
  126.                     <li>
  127.                         <a href="help.html" class="redirect">
  128.                             <img src="img/main/icons/help.png" class="help">
  129.                             <span>Help</span>
  130.                         </a>
  131.                     </li>
  132.  
  133.                     <li>
  134.                         <a href="about.html" class="redirect">
  135.                             <img src="img/main/icons/about.png" class="about">
  136.                             <span>About</span>
  137.                         </a>
  138.                     </li>
  139.                 </ul>
  140.             </nav>
  141.  
  142.             <!-- BATTERY LEVEL -->
  143.                 <section id="battery-level" class="battery-level-content">
  144.                     <h1>Battery Level notification: <span>0%</span></h1>
  145.  
  146.                     <div id="battery-slider-content">
  147.                         <div id="progress-lines">
  148.                             <span></span>
  149.                             <span>
  150.                                 <span class="handle">
  151.                                     <i>
  152.                                         <i>
  153.                                         0
  154.                                         <b></b>
  155.                                         </i>
  156.                                     </i>
  157.                                 </span>
  158.                             </span>
  159.                         </div>
  160.                     </div>
  161.  
  162.                     <div id="battery-footer">
  163.                         <button class="bcancel">Cancel</button>
  164.                         <button>OK</button>
  165.                     </div>
  166.                 </section>
  167.             <!-- /BATTERY LEVEL -->
  168.  
  169.             <nav data-role="panel" id="right-navigation" class="side-nav">
  170.                 <ul class="right-content">
  171.                     <!-- CONTENT LIST -->
  172.                 </ul>
  173.             </nav>
  174.  
  175.             <div id="blur-container" class="">
  176.                 <div class="container" data-role="page">
  177.                 <!-- HEADER -->
  178.                     <header id="full-header">
  179.                         <a href="javascript:;" class="nav-ico"></a>
  180.                         <a id="logo" href=""></a>
  181.                         <a href="javascript:;" class="star-ico"></a>
  182.  
  183.                         <h1 style="display:none">Closest charging places</h1>
  184.  
  185.                         <a id="header-map" class="redirect" href="map.html">
  186.                             <img src="img/main/icons/map.png">
  187.                         </a>
  188.                     </header>
  189.  
  190.                     <header id="static-header" class="hide">
  191.                         <a href="javascript:;" class="nav-ico"></a>
  192.                         <a id="logo" href=""></a>
  193.                         <a href="javascript:;" class="star-ico"></a>
  194.                     </header>
  195.                 <!-- /HEADER -->
  196.  
  197.                 <!-- CONTENT -->
  198.                     <ul class="flip">
  199.  
  200.                     </ul>
  201.  
  202.                     <!-- LOAD MORE BTN -->
  203.                         <button class="load-more-btn">Load more</button>
  204.                     <!-- /LOAD MORE BTN -->
  205.  
  206.                     <!-- LOADER FOR EVENTS -->
  207.                         <div class="event-loader">
  208.                             <img src="img/loaders/list-loader.gif">
  209.                         </div>
  210.                     <!-- /LOADER FOR EVENTS -->
  211.  
  212.                     <!-- NO MORE EVENTS -->
  213.                         <div class="no-more-content">No more venues to load</div>
  214.                     <!-- /NO MORE EVENTS -->
  215.  
  216.                 <!-- /CONTENT -->
  217.             </div>
  218.             </div>
  219.  
  220.         <script>
  221.  
  222.  
  223.             $(document).ready(function() {
  224.  
  225.                 var actualUnitPage = 0,
  226.                     isThereOtherUnits = true,
  227.                     actualPosition = null,
  228.                     battery_life = 0,           //By default
  229.                     battery_life_custom = -1,
  230.                     menuStatus = 'none',
  231.                     batteryStatus = 'none',
  232.                     dragbattery,
  233.                     _startPoint   = -1,
  234.                     _currPosition = -1;
  235.                     mustRun = true,
  236.                     months = ['jan', 'feb', 'mar', 'apr', 'may', 'june', 'july', 'aug', 'sep', 'oct', 'nov', 'dec'],
  237.                     _loaded = [];
  238.                
  239.                 //Default language
  240.                     defaultLanguage();
  241.                 //Detect OS
  242.                     getMobileOperatingSystem();
  243.  
  244.                 //Header image cycle
  245.                     headerImageCycle();
  246.  
  247.                 //For eliminating the 300ms delay between a physical tap and the firing of a click event on mobile browsers
  248.                     FastClick.attach(document.body);
  249.  
  250.                 navigator.geolocation.getCurrentPosition(onSuccess, onError);
  251.  
  252.                 // onSuccess Callback
  253.                 //   This method accepts a `Position` object, which contains
  254.                 //   the current GPS coordinates
  255.                 //
  256.                 function onSuccess(position) {
  257.                     actualPosition = position.coords;
  258.                     loadData();
  259.                     loadEvents();
  260.                    
  261.                     $('#header-map').attr('href', 'map.html?lat=' + actualPosition.latitude + '&long=' + actualPosition.longitude);
  262.                 }
  263.  
  264.                 // onError Callback receives a PositionError object
  265.                 //
  266.                 function onError(error) {
  267.                     alert('code: '    + error.code    + '\n' +
  268.                     'message: ' + error.message + '\n');
  269.                 }
  270.  
  271.                 if (typeof(Storage) !== "undefined") {
  272.                     if (localStorage.getItem('battery_life') != null) { battery_life = localStorage.getItem('battery_life'); }
  273.                     //Battery drag
  274.                         _initBatteryDrag();
  275.                 } else {
  276.                     alert('No storage support');
  277.                 }
  278.  
  279.                 //Battery ok
  280.                     $(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()});
  281.                 //Battery cancel
  282.                     $(document).on("click",".blur, .bcancel",function(){_battery_hide()});
  283.                 //Redirect
  284.                     $(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});
  285.                 //Swipeleft
  286.                     $("body").on("swipeleft",function(a){$("body").hasClass("battery")||_event(a)});
  287.                 //Swiperight
  288.                     $("body").on("swiperight",function(a){$("body").hasClass("battery")||_nav(a)});
  289.                 //Custom click events
  290.                     $(document).on("click",".nav-ico",function(a){_nav(a);return!1});
  291.                     $(document).on("click",".star-ico",function(a){_event(a);return!1});
  292.                     $(document).on("click",".event-overlay",function(){_event()});
  293.                     $(document).on("click",".nav-overlay",function(){_nav()});
  294.                     $(document).on("click","#battery-slider",function(){_nav();_battery()});
  295.                     //
  296.                     $(".load-more-btn").click(function(){null!=actualPosition?loadData():alert("No location data yet!")});
  297.                 //Custom functions
  298.                     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")};
  299.                     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()};
  300.                     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()};
  301.                     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")};
  302.                     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");
  303.                         $("#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)+"%")}})};
  304.                     function _battery_hide(){$("body").removeClass("battery");$("#blur-container").removeClass("blur");batteryStatus="none"};
  305.                     function convertToDistance(a){return 1E3>=a?Math.floor(a)+"m":(a/1E3).toFixed(1)+"km"};
  306.                     function checkAttrib(a,c){var b=!1;$.each(a,function(a,d){d.name===c&&(b=!0)});return 1==b?"":" non-exist"};
  307.                     function setNonAttribIcon(a,c){var b=!1;$.each(a,function(a,d){d.name===c&&(b=!0)});return 1==b?"":"-non"};
  308.                     function getEventName(a){return null!=a?a.name:""};
  309.                     function getCommonLang(b) {
  310.                                   var a = null;
  311.                                   l = "undefined" != localStorage.getItem("languages") || localStorage.getItem("languages") != '' ? localStorage.getItem("languages").split(",") : [];
  312.                                   l != [] && $.each(l, function(f, d) {
  313.                                     var e = d.split("|");
  314.                                     $.each(b, function(b, c) {
  315.                                       e[0] == c.lang && null == a && (a = c.lang);
  316.                                     });
  317.                                   });
  318.                                   return null == a ? "Non" : a;
  319.                                 };
  320.                     function defaultLanguage() {
  321.                         if (localStorage.getItem("languages") == undefined || localStorage.getItem("languages") == '') {
  322.                             var l_lang,
  323.                                 l_def = 'English';
  324.                                 l_curr = '';
  325.                                 l_cont = {};
  326.                                 l_list = {};
  327.                                 l_list.Czech = 'cz';
  328.                                 l_list.Danish = 'da';
  329.                                 l_list.Dutch = 'nl';
  330.                                 l_list.English = 'en';
  331.                                 l_list.French = 'fr';
  332.                                 l_list.German = 'de';
  333.                                 l_list.Hungarian = 'hu';
  334.                                 l_list.Italian = 'it';
  335.                                 l_list.Polish = 'pl';
  336.                                 l_list.Russian = 'ru';
  337.                                 l_list.Slovak = 'sk';
  338.                                 l_list.Swedish = 'sv';
  339.                            
  340.                             if (navigator.userLanguage) {
  341.                                 l_lang = navigator.userLanguage;
  342.                             } else if (navigator.language) {
  343.                                 l_lang = navigator.language;
  344.                             } else {
  345.                                 l_lang = 'en';
  346.                             }
  347.                            
  348.                             if (l_lang.indexOf("-") >= 0) {
  349.                                 l_lang = l_lang.split('-');
  350.                                 l_lang = l_lang[0];
  351.                             }
  352.                            
  353.                             $.getJSON("http://freecharging.sk/api/getLanguages/0", function(data) {
  354.                                 if (data != '') {
  355.                                     $.each(data, function(index, value) {
  356.                                         l_cont[value.lang]      = {};
  357.                                         l_cont[value.lang].id   = value.id;
  358.                                         l_cont[value.lang].name = value.lang;
  359.                                         l_cont[value.lang].code = l_list[value.lang] != undefined ? l_list[value.lang] : l_list[l_def];
  360.                                    
  361.                                         if (l_cont[value.lang].code == l_lang) {
  362.                                             l_curr = value.lang;
  363.                                         }
  364.                                     })
  365.                                    
  366.                                     if (l_cont[l_curr].name != undefined) {
  367.                                         localStorage.setItem("languages", l_cont[l_curr].name + '|' + l_cont[l_curr].id);
  368.                                     } else {
  369.                                         localStorage.setItem("languages", l_cont['English'].name + '|' + l_cont['English'].id);
  370.                                     }
  371.                                 }
  372.                             })
  373.                         }
  374.                     }
  375.                    
  376.                     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+
  377. "&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'+
  378. 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")+
  379. '" 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,
  380. "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>')}));
  381. 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)})};
  382.                     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>'+
  383. 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)})};
  384.                     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")};
  385.                 //Custom events
  386.                     $(window).scroll(function() {
  387.   var a = $(window).scrollTop(), b = $(document).height(), c = $(window).height(), _top = $('html').hasClass('iOS') ? 35 : 0;
  388.   .95 < a / (b - c) && loadData();
  389.   _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"));
  390. });
  391.             })
  392.         </script>
  393.  
  394.         </body>
  395.     </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement